在网络安全和 Python 编程领域,有这么多由才华横溢的人撰写的精彩书籍,这本书有什么不同之处?这是一个非常有效的问题,现在让我们来回答这个问题。
这本书试图简单地描述我在过去几年中使用 Python 和渗透测试领域所获得的实践经验。它是 Python、渗透测试/攻击性安全、防御性安全和机器学习用例在 pentesting 生态系统中的独特融合。这本书以温和的方式开始,涵盖了 Python 的所有关键概念,使读者能够在前四章结束时非常得体地掌握 Python,然后点击 gear 并深入研究渗透测试和网络安全用例的核心自动化。读者将了解如何从头开始开发行业标准漏洞扫描器,与 Nessus 和 Qualys 完全相同。然后,本书探讨了有关 web 应用漏洞及其利用的概念,以及通过定制的利用自动化 web 利用。它还提供了对 Windows 和 Linux 环境中的逆向工程、模糊化和缓冲区溢出漏洞的非常深入的了解,利用 Python 作为核心。有一节专门介绍自定义漏洞开发,重点是规避反病毒检测。本书还有一章专门介绍如何开发网络爬虫及其在网络安全领域的应用。这本书还提供了关于防御安全概念的深入见解,讨论了网络威胁情报,以及如何开发自定义威胁评分算法。本书最后介绍了 Python 的许多其他有益的用例,例如开发自定义键盘记录器。
如果您是一名安全顾问、开发人员或网络安全爱好者,对 Python 知之甚少或一无所知,并且需要深入了解 pentesting 生态系统和 Python 如何结合起来创建攻击性工具、利用漏洞、自动化网络安全用例等,那么本书适合您。使用 Python 进行动手渗透测试指导您了解 Python 在网络安全和 pentesting 方面的高级使用,帮助您更好地了解基础设施中的安全漏洞。
第一章Python 简介介绍了 Python 的基础知识,主要关注 Python 使用的数据类型、变量、表达式和程序结构。目的是让读者熟悉 Python 编程语言的基础知识,以便在接下来的章节中使用和利用它。
第 2 章构建 Python 脚本涵盖了构成编写 Python 脚本基础的 Python 的更多概念,同时还探讨了函数、模块、循环、包和导入等概念。
第 3 章概念处理向读者介绍了 Python 的其他相关概念,包括类、对象、IO 和目录访问、正则表达式、异常处理以及 CSV、JSON 和 XML 文件的解析。
第 4 章高级 Python 模块将学习过程提升到高级水平,并探索 Python 理解多处理和多线程概念以及 socket 编程的能力。
第 5 章漏洞扫描器 Python-第 1 部分探讨了制作微型漏洞扫描引擎所需的高级概念,该引擎将从基于 Nmap 构建的自定义端口扫描器中获取端口扫描结果,并应用各种开源脚本和 Metasploit 模块,以及 Python、Ruby 和 NSE 脚本。结果将被汇总,最后,将起草一份报告供分析师分析。本章在复杂性和代码行方面非常重要,分为两部分。本部分重点介绍使用 Python 实现端口扫描的自动化。
第 6 章漏洞扫描器 Python—第 2 部分探讨了制作微型漏洞扫描引擎所需的高级概念。本章是前一章的延续,读者将学习如何协调各种 Kali Linux 工具以协同工作,从而自动化漏洞评估的服务枚举阶段,从而完成自定义漏洞扫描器的开发。
第 7 章机器学习和网络安全试图将网络安全空间与数据科学联系起来,并阐明如何使用机器学习和自然语言处理自动化渗透测试的手动报告分析阶段。本章还将结合前面的所有部分,根据我们迄今为止获得的知识,制作一个小型渗透测试工具包。
第 8 章自动化 Web 应用扫描-第 1 部分向读者解释了如何使用 Python 自动化各种 Web 应用攻击类别,其中最著名的是 SQL 注入、XSS、CSRF 和点击劫持。
第 9 章自动 Web 应用扫描-第 2 部分是前一章的延续。在这里,读者将了解如何使用 Python 开发自定义的漏洞利用,从而利用 web 应用,并最终为使用 Python 的用户提供 shell 访问。
第 10 章构建自定义爬虫解释了如何构建一个用 Python 编码的自定义爬虫,以便在应用中爬行,有认证和无认证,同时列出测试中应用的注入点和网页。爬虫的功能可以根据需要进行扩展和定制。
第 11 章逆向工程 Linux 应用和缓冲区溢出解释了如何对 Linux 应用执行逆向工程。读者还将了解如何使用 Python 来帮助 Linux 环境中的缓冲区溢出漏洞。本章还针对缓冲区溢出漏洞,指导读者进行自定义攻击开发。
第 12 章逆向工程 Windows 应用解释了如何对 Windows 应用执行逆向工程,以及如何使用 Python 帮助解决 Windows 环境中的缓冲区溢出漏洞。本章还针对缓冲区溢出漏洞,指导读者进行自定义攻击开发。
第 13 章漏洞开发解释了读者如何创建自己用 Python 编写的漏洞,可以扩展为 Metasploit 模块的漏洞,还介绍了 Shell 的编码以避免检测。
第 14 章、网络威胁情报指导读者如何使用 Python 进行网络威胁情报、收集威胁源、威胁评分,以及如何利用获得的信息,例如 SIEMs、IPS、,IDS 系统由最新的威胁信息提供动力,以帮助早期检测。
第 15 章、Python 的其他奇迹介绍了如何使用 Python 提取 Google 浏览器保存的密码、开发自定义键盘记录器、解析 Nessus 和 Nmap 报告文件等。
要想从这本书中获得最大的收获,所需要的只是继续前进的愿望,并在继续之前详细理解每一个概念。
您可以从您的账户www.packt.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问www.packt.com/support并注册,将文件通过电子邮件直接发送给您。
您可以通过以下步骤下载代码文件:
- 登录或注册www.packt.com。
- 选择“支持”选项卡。
- 点击代码下载和勘误表。
- 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。
下载文件后,请确保使用以下最新版本解压或解压缩文件夹:
- WinRAR/7-Zip for Windows
- 适用于 Mac 的 Zipeg/iZip/UnRarX
- 适用于 Linux 的 7-Zip/PeaZip
该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Hands-On-Penetration-Testing-with-Python 。如果代码有更新,它将在现有 GitHub 存储库中更新。
我们的丰富书籍和视频目录中还有其他代码包,请访问**https://github.com/PacktPublishing/** 。看看他们!
我们还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。您可以在这里下载:http://www.packtpub.com/sites/default/files/downloads/9781788990820_ColorImages.pdf 。
本书中使用了许多文本约定。
CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“要使用 Python 终端,只需在终端提示符中键入python3命令。”
代码块设置如下:
a=44
b=33
if a > b:
print("a is greater")
print("End")
当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:
my_list=[1,"a",[1,2,3],{"k1":"v1"}]
my_list[0] -> 1
my_List[1] -> "a"
my_list[2] -> [1,2,3]
my_list[2][0] -> 1
my_list[2][2] -> 3
my_list[3] -> {"k1":"v1"}
my_list[3]["k1"] -> "v1"
my_list[3].get("k1") -> "v1
任何命令行输入或输出的编写方式如下:
import threading
>>> class a(threading.Thread):
... def __init__(self):
... threading.Thread.__init__(self)
... def run(self):
... print("Thread started")
...
粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个示例:“单击开始爬行按钮。”
警告或重要提示如下所示。
提示和技巧如下所示。
我们欢迎读者的反馈。
一般反馈:如果您对本书的任何方面有疑问,请在邮件主题中注明书名,并发送电子邮件至customercare@packtpub.com。
勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packt.com/submit-errata,选择您的书籍,点击 errata 提交表单链接,并输入详细信息。
盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packt.com与我们联系,并提供该材料的链接。
如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com。
请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。
有关 Packt 的更多信息,请访问Packt.com。
本书中的信息仅用于道德方面。如果没有设备所有者的书面许可,请勿使用本手册中的任何信息。如果你采取非法行动,你很可能会被逮捕,并在法律允许的范围内受到起诉。如果您滥用本书中包含的任何信息,Packt Publishing 将不承担任何责任。本文中的信息只能在测试环境时使用,并由相关负责人进行适当的书面授权。