# 零、序言 欢迎来到*学习 Python*渗透测试。本书采用了一种完全不同的方法来教授渗透测试和 Python 脚本编写,而不是强调如何创建与市场上当前工具做相同事情的脚本,或者强调可以编写的特定类型的漏洞利用。我们将探讨如何实现参与,并了解脚本在评估中的适用性,以及当前工具在哪里满足需求。此方法不仅将教您如何从构建介绍性脚本到多线程攻击工具,还将教您如何评估像专业人员这样的组织,而不管您的经验水平如何。 # 这本书涵盖的内容 [第 1 章](01.html#aid-F8901 "Chapter 1. Understanding the Penetration Testing Methodology")*理解渗透测试方法*,重点介绍了评估人员评估组织安全战略阻力时使用的具体策略、技术和程序。它还涵盖了模拟的恶意行为者和行业的常见工具。 [第 2 章](02.html#aid-KVCC1 "Chapter 2. The Basics of Python Scripting")*Python 脚本基础*帮助过渡程序员和新评估员提高 Python 语言技能,最终编写有用的评估员脚本。 [第 3 章](03.html#aid-147LC2 "Chapter 3. Identifying Targets with Nmap, Scapy, and Python")*使用 Nmap、Scapy 和 Python*识别目标,构建基础网络数据包和协议知识,然后直接转化为编写 Python 脚本,利用 Nmap 和 Scapy 库自动识别目标以进行利用。 [第 4 章](04.html#aid-190861 "Chapter 4. Executing Credential Attacks with Python")*使用 Python*执行凭证攻击,展示了攻击者在抵御网络钓鱼的情况下获得资源初始访问权的最常见方式。它专注于准确定位组织的行业领先实践。 [第 5 章](05.html#aid-1DOR01 "Chapter 5. Exploiting Services with Python")*使用 Python*开发服务,重点介绍如何识别利用漏洞以获得初始访问权,如何研究利用后技术以获得特权访问权,以及如何利用该访问权使用自动脚本访问其他系统。 [第 6 章](06.html#aid-1HIT81 "Chapter 6. Assessing Web Applications with Python")*使用 Python*评估 Web 应用,是以自动化分析 Web 应用弱点为中心的技术的高潮。在这里,可以使用 Python 改进对使用链式技术的复杂应用的评估。 [第 7 章](07.html#aid-1NA0K2 "Chapter 7. Cracking the Perimeter with Python")*用 Python*破解周界,强调了一些真正的恶意参与者和评估人员用来访问组织的半可信和可信网络的常见技术。这是使用包括 Python 在内的工具和技术完成的,并取决于当前的行业实践。 [第 8 章](08.html#aid-1T1401 "Chapter 8. Exploit Development with Python, Metasploit, and Immunity")*利用 Python、Metasploit 和 Immunition*开发漏洞,强调评估人员如何研究、编写和更新基本漏洞和 Metasploit 模块,以捕获在相关系统上使用开发不良、过时或不支持的软件的风险。 [第 9 章](09.html#aid-29DRA2 "Chapter 9. Automating Reports and Tasks with Python")*使用 Python*自动化报告和任务,强调评估人员需要尽可能节省评估时间,方法是创建 Python 脚本,自动分析安全工具结果和输出,包括可扩展标记语言(XML),努力提供可用的报告格式。 [第 10 章](10.html#aid-2C9D01 "Chapter 10. Adding Permanency to Python Tools")*为 Python 工具*添加永久性是最后一章。它提供了更新脚本的方法,以利用高级功能(如日志记录、多线程和多处理)来创建行业标准工具。 # 这本书你需要什么 你需要的最重要的东西是学习的意愿和提高能力的动力。为了支持这些功能,您需要一个能够支持在行业标准虚拟机监控程序中运行的多个虚拟机(VM)的系统,例如 VMware Workstation(最新版本)或 Virtual Box。首选的解决方案是在最新版本的 Windows(如 Windows 7)上运行的 VMware Workstation。必要时,您需要 Internet 连接才能下载支持库和软件包。每章的开头都将列出每个详细的软件包和库。 # 这本书是给谁的 如果您是一名安全专业人士或研究人员,了解不同的操作系统和渗透测试的概念,并且希望在 Python 中增长知识,那么本书非常适合您。 # 公约 在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。 文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“我们可以通过使用`include`指令来包含其他上下文。” 代码块设置如下: ``` try: import docx from docx.shared import Inches except: sys.exit("[!] Install the docx writer library as root or through sudo: pip install python-docx") ``` 任何命令行输入或输出的编写方式如下: ``` echo TEST > my_wordlist ``` **新术语**和**重要词语**以粗体显示。您在屏幕上(例如,在菜单或对话框中)看到的文字如下所示:“我们通过**攻击次数递减**来组织漏洞,以查找可攻击的漏洞。” ### 注 警告或重要注释显示在这样的框中。 ### 提示 提示和技巧如下所示。 # 读者反馈 我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。 要向我们发送总体反馈,只需发送电子邮件`<[feedback@packtpub.com](mailto:feedback@packtpub.com)>`,并在邮件主题中提及该书的标题。 如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南[www.packtpub.com/authors](http://www.packtpub.com/authors)。 # 客户支持 既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。 ## 下载示例代码 您可以从您的账户[下载示例代码文件 http://www.packtpub.com](http://www.packtpub.com) 对于您购买的所有 Packt 出版书籍。如果您在其他地方购买了本书,您可以访问[http://www.packtpub.com/support](http://www.packtpub.com/support) 并注册,将文件直接通过电子邮件发送给您。 ## 下载本书彩色图片 我们还为您提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。彩色图像将帮助您更好地了解输出中的更改。您可以从[下载此文件 https://www.packtpub.com/sites/default/files/downloads/2324OS.pdf](https://www.packtpub.com/sites/default/files/downloads/2324OS.pdf) 。 ## 勘误表 虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问[进行报告 http://www.packtpub.com/submit-errata](http://www.packtpub.com/submit-errata) ,选择您的书籍,点击**勘误表提交表**链接,输入您勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上载到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。 要查看之前提交的勘误表,请转至[https://www.packtpub.com/books/content/support](https://www.packtpub.com/books/content/support) 并在搜索字段中输入图书名称。所需信息将出现在**勘误表**部分下。 ## 盗版 在互联网上盗版版权材料是所有媒体都面临的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。 请致电`<[copyright@packtpub.com](mailto:copyright@packtpub.com)>`与我们联系,并提供可疑盗版材料的链接。 我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。 ## 问题 如果您对本书的任何方面有任何问题,可以通过`<[questions@packtpub.com](mailto:questions@packtpub.com)>`与我们联系,我们将尽力解决该问题。