一个新手试图通过打开和关闭电源的方式修复损坏的 Lisp 机器。Knight 当时看到了学生所作所为,严厉地说:“你不能只通过切断电源来修理机器,但是不知道问题出在哪里。”
Knight 关闭了机器,然后重新启动。机器就正常工作了。
——AI Koan
在过去的半个世纪中,麻省理工学院(MIT)是在学习和创造方面具有深厚黑客文化底蕴的地方之一,特别是它的人工智能实验室。麻省理工学院的黑客形成了一种独特的语言文化,创造了一些特殊的术语和幽默感。前面引用的是一个 AI 公案,模仿自禅宗的公案,旨在激发心智,使人顿悟。顺便提一下,上文中的 Knight 指的是麻省理工学院 AI 实验室备受尊敬的程序员 TomKnight。
本书旨在通过安全测试的镜头向读者介绍 Kali Linux 的功能。这是为了帮助你更好的理解事物的运作方式和工作原理。 Kali Linux 是一款面向安全的Linux 发行版软件,因此最终受到那些因为兴趣或职业需要而进行安全测试或渗透测试的人们的欢迎。虽然它确实可以当作通用的 Linux 发行版并用于取证和其他相关任务,但它的设计考虑了安全性测试。因此,本书的大部分内容将侧重于使用 Kali 提供的工具。其他 Linux 发行版中的许多工具不一定很容易地获得。虽然可以安装这些工具,有时可以根据源代码进行编译构建,但是如果软件包位于发行版的版本库中,那么安装会更容易。
本书概要
鉴于本书的目的是通过安全测试的角度介绍 Kali,将包含以下主题:
Kali Linux 入门
Linux 有着悠久的历史,最早可以追溯到 20 世纪 60 年代的 UNIX。本章介绍了一些 UNIX 的背景知识,以便读者更好地理解 Linux 中的工具是如何以它们自己的方式进行运作,以及如何有效地使用它们。我们还将介绍命令行,因为本书的其余部分将会经常用到它,同时还会介绍一些桌面系统,以便为用户提供更好的工作环境。如果你不熟悉 Linux,本章将有助于你更顺畅地阅读本书的其他章节,以便我们开始深入介绍那些实用工具时,不会让读者感到不知所措。
网络安全测试基础
大家耳熟能详的很多服务都是通过网络获取的。但是,连接到网络的系统可能容易受到攻击。为了更好地对网络进行测试,我们将介绍一些网络协议工作原理的基础知识。当你深入了解安全测试时,会发现正在使用的协议是一项非常宝贵的资产。我们还将介绍可用于网络堆栈和应用程序压力测试的工具。
侦察
在进行安全测试或渗透测试时,一般的做法首先是对目标进行侦察。你可以使用很多开源工具来收集目标的相关信息。这不仅有助于你的后续测试,还可以提供许多详细信息,将它们和正在执行测试的团队成员信息进行共享。这可以帮助他们正确地判定系统到达外部世界的足迹。毕竟,关于组织及其成员的信息可以成为攻击者的垫脚石。
寻找漏洞
对组织的攻击通常来自其漏洞。我们将介绍能够深入了解目标组织中存在技术漏洞(非人为)的漏洞扫描器。这将为如何着手测试提供线索,因为安全测试的目的是为被测试的组织提供存在潜在漏洞和威胁的建议。识别漏洞将帮助你达到上述目的。
自动化漏洞利用
虽然 Metasploit 可能是执行安全测试和渗透测试的基础,但是也可以使用其他工具。我们将介绍使用 Metasploit 的基础知识,还会提及一些用于发现漏洞的工具,本书其他章节将会对它们进行详细介绍。
Metasploit 进阶
Metasploit 是一款复杂的软件。熟练使用它可能需要很长时间。 Metasploit提供接近 2000 种漏洞利用,以及 500 多个有效载荷。当你对它们排列组合时,将获得与远程系统交互的数千种可能性。此外,你还可以创建自己的模块。在介绍 Metasploit 时,我们将不会仅局限于阐述其用于常见漏洞的基础知识。
无线安全测试
当前每个人都拥有无线网络。这就是手机和平板电脑等移动设备(更不用说大量的笔记本电脑)连接到企业网络的方式。但是,并非所有无线网络都采用了最佳设置。 Kali Linux 提供了可用于执行无线安全测试的工具。其中包括扫描无线网络、注入帧和密码破解。
Web 应用测试
大量的商业行为是通过 Web 界面完成的。此外,通过 Web 界面可以获得许多敏感信息。企业需要关注他们的重要 Web 应用的易受攻击性。 Kali加载了可以帮助你对 Web 应用进行评估的工具。我们将介绍基于代理的测试,以及可用于自动化测试的其他工具。目的是帮助你更好地了解这些应用程序对你正在测试的组织的安全状况。
破解密码
这并不是一项经常性的需求,但你可能会被要求测试远程系统和本地密码数据库的复杂度,以及远程访问的难度——破解密码哈希(比如密码文件),以及强制登录远程服务(比如 SSH, VNC 和其他远程访问协议)。
高级技术
你可以使用 Kali 工具库中的所有工具进行大量测试。但是在某些时候,现成的工具并不能满足需要,所以你需要开发自己的工具。这可能包括创建自己的漏洞利用或编写自己的工具。更好地理解漏洞利用的工作原理,以及开发自己的工具,将为你指明正确的方向。我们还将介绍如何对 Kali的一些工具进行功能扩展,以及流行脚本语言的基础知识。
报告
在完成测试之后,最重要的事情是生成测试报告。 Kali 有很多工具可以帮助你在测试结束后生成报告。我们将介绍在测试过程中添加笔记的技巧,以及生成报告的一些策略。
读者对象
虽然我希望本书的某些内容可供大部分读者阅读,但本书的主要受众是那些拥有一些 Linux 或 UNIX 经验,但是想了解 Kali 所有功能的人。本书也适合那些希望通过 Kali Linux 提供的工具来更好地处理安全测试的人。如果你已经熟悉 Linux,那么可以直接跳过第 1 章。你也可能是使用某些常用工具完成Web 应用程序测试的人员,但希望进一步提高自己的水平。
道德忠告
对于道德这个词,即使你对它已经司空见惯,但是这里还是需要着重强调一下,因为它很重要。安全测试需要你获得相应的许可。在大多数地方,可能你做的某些事情都是非法的。在未经许可的情况下探测远程系统会给你带来很多麻烦。首先提及合法性往往会引起人们的注意。
道德的要求往往高于法律。获得认证的安全专业人士必须遵守与其道德操守相关的誓言。这里最重要的一点就是不滥用信息资源。 CISSP 认证有一个与之相关的道德准则,要求你同意不做任何非法或者不道德的事情。
对你无权测试的任何系统进行测试不仅可能是非法的,而且根据我们的行业守则来说肯定是不道德的。仅知道目标组织中的某些人并获得他们的许可是不够的。你必须获得企业负责人或具有相应责任级别人员的同意才能授予你该权限。最好以书面形式获得许可。这可以确保双方在同一层面达成共识。
预先确认测试范围也很重要。你正在测试的组织可能会限制你可以执行的操作,可以触摸的系统和网络,以及可以执行测试的时间。以书面形式获得所有这些。事先准备好这些。它们是你避免牢狱之灾的强力保障。记下测试范围,然后照章办事。
当然,交流!交流!交流!请帮自己一个忙。不要只是以书面形式获得许可,然后无故消失,而客户无法知道你在做什么。沟通和协作将为你正在测试的组织带来良好的结果。这通常也是正确的做法。
在道德的界限内,尽情施展你的才华。
排版约定
本书使用的排版约定如下所示:
斜体(Italic)
表示新术语, URL, 电子邮件地址,文件和文件扩展名。在段落中用于指代程序元素,比如变量名或函数名称,数据库,数据类型,环境变量,语句和关键字。
等宽字体(Constant width)
用于表示程序列表和代码示例。
代码示例
本书中的代码可以帮助你完善工作。一般而言,本书中的源代码,不需要得到我们的许可就可以应用到你自己的程序或文档中,除非你希望重新发布了这些代码的副本。举例来说,一个程序中用到本书中的若干代码块不需要许可授权。销售或发布包含 O’Reilly 图书中的代码样例的 CD-Rom 不需要授权许可。回答一个问题引用本书中的内容或代码不需要授权许可。在你的产品文档中加入大量的本书代码样例需要授权许可。
我们建议,但非强制要求标明出处。出处通常包括标题,作者,出版社和ISBN。比如:“Learning Kali Linux by Ric Messier (O’Reilly). Copyright2018 Ric Messier, 978-1-492-02869-7”。
如果你觉得使用代码样例超出了上述许可范围,请通过 permissions@oreilly.com 与我们取得联系。
O’Reilly 在线学习平台(O’Reilly Online Learning)
近 40 年来, O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。 O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和 200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问 http://oreilly.com。
联系我们
请将关于本书的意见和问题通过以下地址提供给出版商:
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
我们为本书提供了一个网页,上面有勘误表、示例和其他相关的信息,请访问:http://bit.ly/learning-kali-linux。
有关本书的建议或者技术问题,请发邮件到 bookquestions@oreilly.com。
有关其他图书、讲座、会议、新闻的信息,请访问我们的网站: http://www.oreilly.com。
我们的 Facebook: http://facebook.com/oreilly。
我们的 Twitter: http://twitter.com/oreillymedia。
我们的 YouTube: http://www.youtube.com/oreillymedia。
致谢
特别感谢 Courtney Allen,他是 O’Reilly 出版社的优秀联络员。还要感谢我的编辑 Virginia Wilson,当然还有我的技术审稿人帮助改进了这本书——Brandon Noble, Kathleen Hyde,尤其是 Megan Daudelin !