00.md 12.1 KB
Newer Older
W
wizardforcel 已提交
1
# 零、前言
W
wizardforcel 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Python 是一种动态的解释语言,属于高级编程语言。由于其清晰的语法和广泛的库,它被用作通用语言。基于 Python 的解释性质,它通常被认为是一种脚本语言。Python 在信息安全方面占主导地位,因为它不太复杂,拥有无限的库和第三方模块。安全专家更喜欢使用 Python 作为开发信息安全工具包(如 w3af、sqlmap 等)的语言。Python 的模块化设计有助于重用代码和代码可读性,使 Python 套件成为安全研究人员和专家编写脚本和构建安全测试工具的首选。

信息安全工具,包括模糊器、代理、扫描仪,甚至漏洞攻击都是用 Python 编写的。此外,Python 是当前几种开源渗透测试工具的语言,从 volatility for memory analysis 到 libPST,再到抽象检查电子邮件的过程。它是信息安全研究人员学习的正确语言,因为有大量的逆向工程和开发库可供您使用。因此,在需要扩展或调整这些工具的困难情况下,学习 Python 可能会对您有所帮助。

在本书中,我们将讨论安全研究人员如何使用这些工具和库来帮助他的日常工作。以下页面将帮助您学习如何检测和利用各种类型的漏洞,同时通过实用方法增强您对无线应用程序和信息收集概念的了解。继续阅读,探索使用 Python 进行渗透测试的实用方法,以构建高效代码并节省时间。

# 这本书涵盖的内容

[第 1 章](01.html#NQU20-bd4c944abdad4225b537745237f99b1b)*为什么使用 Python 进行渗透测试?*首先介绍 Python 在安全测试中的重要性,并向读者展示如何配置基本环境。

[第 2 章](02.html#181NK0-bd4c944abdad4225b537745237f99b1b)*设置 Python 环境*介绍如何在不同的操作系统中设置环境,以启动渗透测试。

[第 3 章](03.html#1LCVG0-bd4c944abdad4225b537745237f99b1b)*Python 抓取网页*解码了如何使用 Python 脚本下载网页,并向您提供了抓取网页的基础知识,随后详细介绍了如何使用正则表达式从下载的 Python 脚本网页中获取信息,以及,如何请求和下载动态网站页面以抓取其中的数据。

[第 4 章](04.html#27GQ60-bd4c944abdad4225b537745237f99b1b)*Python 数据解析*展示了如何借助 Python 模块解析 HTML 表格,从网站下载表格中的数据,从 HTML 文档中提取数据,并借助脚本生成.csv/Excel 表格。

[第 5 章](05.html#2I0GC0-bd4c944abdad4225b537745237f99b1b)*使用 Scrapy and Beautiful 进行网页抓取*是您将学习如何使用 Python Scrapy 模块构建和运行网络爬行器以爬行到网页的地方。此外,还将解释如何使用 Scrapy 的交互式 shell,您可以尝试在终端中快速调试您的刮码。它还涉及如何从 Scrapy 抓取的网页中提取链接,并使用这些链接从网站中获取更多页面。了解如何使用 Scrapy 模块检测和遍历到其他页面的链接,并从这些页面获取数据。

[第 6 章](06.html#2TEN40-bd4c944abdad4225b537745237f99b1b)*用 Python*进行网络扫描,讲解如何创建一个扫描程序来扫描 IP 的开放端口以获取详细信息,以及如何在 Scapy 的帮助下创建一个隐形扫描脚本。此外,还将介绍如何创建一个脚本来使用 Python 扫描一系列 IP,以及如何使用 LanScan Python 3 模块来帮助扫描网络。通过 LAN can,我们可以收集有关本地网络上主机和设备的信息。

[第 7 章](07.html#3GH2C0-bd4c944abdad4225b537745237f99b1b)*Python 网络嗅探*详细介绍了如何编写基本的包嗅探器,如何编写脚本用 Python 解析嗅探到的包,如何用 Python 模块解析和格式化 MAC 地址,如何借助 Python 模块解码嗅探到的包,以及如何使用 Pyshark,TShark 的 Python 包装器。

[第 8 章](08.html#3Q2800-bd4c944abdad4225b537745237f99b1b)*Scapy Basics*介绍如何使用 Scapy Python 模块创建数据包,该模块有助于定制数据包,以及如何使用 Scapy 发送数据包和接收答案。此外,还介绍了如何编写可以从 pcap 文件读取并使用 Scapy 模块写回的脚本。Scapy 是关于将协议分层在一起以生成自定义数据包的。本节将帮助读者更清楚地了解使用 Scapy 分层数据包以及如何使用 Scapy 嗅探网络数据包。

[第 9 章](09.html#48C0E0-bd4c944abdad4225b537745237f99b1b)*Wi-Fi 嗅探*介绍了如何编写脚本,在 Python 模块的帮助下扫描并获取可用 Wi-Fi 设备的列表。您还将学习如何在 Python 模块的帮助下编写脚本以查找隐藏的 Wi-Fi SSID,以及如何编写脚本以使用 Scapy 公开隐藏的 SSID。此外,还介绍了如何编写脚本,使用 Scapy 对隐藏的 Wi-Fi SSID 进行字典攻击,以及如何使用 Scapy 设置假接入点。

[第 10 章](10.html#4MLOS0-bd4c944abdad4225b537745237f99b1b)*第 2 层攻击*探讨了如何编写脚本来监视网络中所有新连接到该特定网络的设备,以及如何编写脚本来运行地址解析协议(ARP)缓存中毒攻击。您还将学习编写脚本来使用 Python Scapy 模块创建 MAC 洪泛攻击,以及编写 Python 脚本来创建 VLAN 跳跃攻击。此外,我们还将介绍如何编写一个脚本,该脚本可以通过 VLAN 跳转使用 Python 欺骗 ARP。

[第 11 章](11.html#56SIE0-bd4c944abdad4225b537745237f99b1b)*TCP/IP 攻击*重点介绍如何编写脚本,使用 Python 模块欺骗 IP。您还将学习如何编写脚本来使用 Python 创建 SYN 洪泛攻击,以及如何编写能够通过局域网嗅探密码的 Python 脚本。

W
wizardforcel 已提交
33
[第 12 章](12.html#5EGMU0-bd4c944abdad4225b537745237f99b1b)*利用开发简介*将帮助您学习 CPU 寄存器的基础知识及其重要性,并解释内存转储技术以及 CPU 指令的基础知识。
W
wizardforcel 已提交
34

W
wizardforcel 已提交
35
[第 13 章](13.html#5P0D40-bd4c944abdad4225b537745237f99b1b)*Windows 利用开发*将帮助您了解 Windows 内存布局的细节,这将有助于利用开发。您还将学习如何使用保存的返回指针覆盖为缓冲区溢出攻击编写 Python 脚本,以及如何编写脚本以利用 Python 的结构化异常处理(SEH)。此外,我们还将详细了解如何使用 Python 编写脚本来利用 Windows 应用程序。
W
wizardforcel 已提交
36

W
wizardforcel 已提交
37
[第 14 章](14.html#6C2OC0-bd4c944abdad4225b537745237f99b1b)*Linux 利用开发*介绍了如何编写脚本,使用 Python 运行 Linux 格式字符串漏洞,以及如何使用 Python 在 Linux 环境中利用缓冲区溢出漏洞。
W
wizardforcel 已提交
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

# 这本书你需要什么

基本上是一台安装了 Python 的计算机。可以使用虚拟机模拟易受攻击的机器并进行测试。

# 这本书是给谁的

这本书非常适合那些熟悉 Python 或类似语言,不需要基本编程概念帮助,但想了解渗透测试的基础知识和笔式测试人员面临的问题的人。

# 小节

在这本书中,你会发现几个经常出现的标题(准备和如何做…)。为了明确说明如何完成配方,我们使用以下章节:

# 准备

本节告诉您配方中的预期内容,并介绍如何设置配方所需的任何软件或任何初步设置。

# 怎么做…

本节包含遵循配方所需的步骤。

# 习俗

在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“它将被提取到`Python-3.6.2`文件夹”

代码块设置如下:

```
import urllib.request
import urllib.parse
import re
from os.path import basename 
```

任何命令行输入或输出的编写方式如下:

```
$ sudo apt-get install python 
```

**新术语****重要词语**以粗体显示。您在屏幕上(例如,在菜单或对话框中)看到的文字将显示在文本中,如:“这将显示一个选项包控件:安装包。”

警告或重要提示如下所示。

提示和技巧如下所示。

# 读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。要向我们发送总体反馈,只需发送电子邮件`feedback@packtpub.com`,并在邮件主题中提及该书的标题。如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南[www.packtpub.com/authors](http://www.packtpub.com/authors)

# 客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

# 下载示例代码

您可以从您的帐户[下载本书的示例代码文件 http://www.packtpub.com](http://www.packtpub.com) 。如果您在其他地方购买了本书,您可以访问[http://www.packtpub.com/support](http://www.packtpub.com/support) 并注册,将文件直接通过电子邮件发送给您。您可以通过以下步骤下载代码文件:

1.  使用您的电子邮件地址和密码登录或注册我们的网站。
2.  将鼠标指针悬停在顶部的“支持”选项卡上。
3.  点击代码下载和勘误表。
4.  在搜索框中输入图书的名称。
5.  选择要下载代码文件的书籍。
6.  从您购买本书的下拉菜单中选择。
7.  点击代码下载。

您也可以通过点击 Packt Publishing 网站上书籍网页上的“代码文件”按钮下载代码文件。可以通过在搜索框中输入图书名称来访问此页面。请注意,您需要登录到您的 Packt 帐户。下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

*   WinRAR/7-Zip for Windows
*   适用于 Mac 的 Zipeg/iZip/UnRarX
*   适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的[https://github.com/PacktPublishing/Python-Penetration-Testing-Cookbook](https://github.com/PacktPublishing/Python-Penetration-Testing-Cookbook) 。我们的丰富书籍和视频目录中还有其他代码包,请访问**[https://github.com/PacktPublishing/](https://github.com/PacktPublishing/)** 。看看他们!

# 下载本书的彩色图像

我们还为您提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。彩色图像将帮助您更好地了解输出中的更改。您可以从[下载此文件 https://www.packtpub.com/sites/default/files/downloads/PythonPenetrationTestingCookbook_ColorImages.pdf](https://www.packtpub.com/sites/default/files/downloads/PythonPenetrationTestingCookbook_ColorImages.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`与我们联系,并提供可疑盗版材料的链接。我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。

# 问题

如果您对本书的任何方面有任何问题,可以通过`questions@packtpub.com`与我们联系,我们将尽力解决该问题。