[第 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 改进对使用链式技术的复杂应用程序的评估。
[第 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 在内的工具和技术完成的,并取决于当前的行业实践。
在快速切入之前,在本章中,我们将实际定义什么是渗透测试,什么不是,**渗透测试执行标准**(**PTES**)是什么,以及将使用的工具。这些信息将有助于指导您可能参与的未来业务。本章将帮助指导新的评估员和组织,他们希望建立自己的业务。如果你想直接进入代码和细节,我建议你跳到[第 2 章](02.html#aid-KVCC1"Chapter 2. The Basics of Python Scripting"),*Python 脚本的基础*。我提醒你,阅读本章的好处在于,它将提供一个框架和思维方式,帮助你将脚本儿童与专业人士区分开来。那么,让我们从什么是渗透测试开始。
...
...
@@ -38,9 +38,9 @@
## 逆向工程项目
倒车可以是渗透测试的一部分,但今天比过去难得多。[第 8 章](08.html#aid-1T1401"Chapter 8. Exploit Development with Python, Metasploit, and Immunity")、*利用 Python、Metasploit 和免疫*进行的漏洞开发将更详细地讨论这一点,因为这里将描述实际的漏洞开发。当前的渗透测试可能包括漏洞开发,但其目的是创建与国产代码相关的概念证明,并获得对数据可能驻留的关键系统的访问权。
倒车可以是渗透测试的一部分,但今天比过去难得多。[第 8 章](08.html#aid-1T1401"Chapter 8. Exploit Development with Python, Metasploit, and Immunity")、*利用 Python、Metasploit 和Immunity*进行的漏洞开发将更详细地讨论这一点,因为这里将描述实际的漏洞开发。当前的渗透测试可能包括漏洞开发,但其目的是创建与国产代码相关的概念证明,并获得对数据可能驻留的关键系统的访问权。
有多种与渗透测试相关的评估方法。一些方法的例子包括**开源安全测试方法手册**(**OSSTMM**),用于 Web 评估的**开放 Web 应用程序安全项目**(**OWASP**),以及**国家标准与技术研究所**(**NIST**特别出版物 800-115《信息安全测试和评估技术指南》和 PTES。本书中我们将重点介绍的方法是 PTES,因为它是新评估人员的可靠资源。
有多种与渗透测试相关的评估方法。一些方法的例子包括**开源安全测试方法手册**(**OSSTMM**),用于 Web 评估的**开放 Web 应用安全项目**(**OWASP**),以及**国家标准与技术研究所**(**NIST**特别出版物 800-115《信息安全测试和评估技术指南》和 PTES。本书中我们将重点介绍的方法是 PTES,因为它是新评估人员的可靠资源。
Burp Suite 是透明代理的标准,或者是用于直接交互和处理从浏览器发送到浏览器的 web 流量流的工具。该工具有一个 pro 版本,它添加了一个体面的 web 漏洞扫描器。使用时应小心,因为它可能会导致论坛、电子邮件和交互的多次提交。
同样的道理也可以用它的 Spider 工具来解释,它与范围广泛的 web 应用程序进行交互,并将它们映射为类似于 Google 和 Bing 这样的网络爬虫。确保当您使用这些工具时,您首先禁用自动提交和登录,直到您更好地理解应用程序。更多关于 Burp 和类似 web 工具的信息将在[第 6 章](06.html#aid-1HIT81"Chapter 6. Assessing Web Applications with Python")*使用 Python 评估 web 应用程序*中介绍。其他类似工具包括**Zed 攻击代理**(**ZAP**),该工具现在还包含名为 DirBuster 的未链接文件夹和文件研究工具。
同样的道理也可以用它的 Spider 工具来解释,它与范围广泛的 web 应用进行交互,并将它们映射为类似于 Google 和 Bing 这样的网络爬虫。确保当您使用这些工具时,您首先禁用自动提交和登录,直到您更好地理解应用。更多关于 Burp 和类似 web 工具的信息将在[第 6 章](06.html#aid-1HIT81"Chapter 6. Assessing Web Applications with Python")*使用 Python 评估 web 应用*中介绍。其他类似工具包括**Zed 攻击代理**(**ZAP**),该工具现在还包含名为 DirBuster 的未链接文件夹和文件研究工具。
这在编写漏洞利用时非常重要,因为可以使用此运算符将多个十六进制值附加到同一个字符串,如前面的字符串连接示例所示,其中两个字符串被添加到一起。[第 8 章](08.html#aid-1T1401 "Chapter 8. Exploit Development with Python, Metasploit, and Immunity")*利用 Python、Metasploit 和免疫*开发漏洞,当您开发**远程代码执行**n(**RCE**漏洞时,将涵盖更多内容。在此之前,请考虑此表以查看不同的赋值运算符及其使用情况:
这在编写漏洞利用时非常重要,因为可以使用此运算符将多个十六进制值附加到同一个字符串,如前面的字符串连接示例所示,其中两个字符串被添加到一起。[第 8 章](08.html#aid-1T1401 "Chapter 8. Exploit Development with Python, Metasploit, and Immunity")*利用 Python、Metasploit 和Immunity*开发漏洞,当您开发**远程代码执行**n(**RCE**漏洞时,将涵盖更多内容。在此之前,请考虑此表以查看不同的赋值运算符及其使用情况:
今天,渗透测试和利用服务的一个重大误解是,普遍存在可利用的**远程代码执行**(**RCE**漏洞。事实是,找到数百个只需要一个**互联网协议**(**IP**地址就可以插入工具的容易利用的服务的日子已经一去不复返了。您仍然会发现可以通过溢出堆栈或堆来利用的漏洞,它们只是显著减少或更复杂。我们将在[第 8 章](08.html#aid-1T1401"Chapter 8. Exploit Development with Python, Metasploit, and Immunity")中解释为什么在今天的软件中更难利用这些漏洞,*使用 Python、Metasploit 和免疫进行漏洞开发*,不用担心,我们会说到这一点。
今天,渗透测试和利用服务的一个重大误解是,普遍存在可利用的**远程代码执行**(**RCE**漏洞。事实是,找到数百个只需要一个**互联网协议**(**IP**地址就可以插入工具的容易利用的服务的日子已经一去不复返了。您仍然会发现可以通过溢出堆栈或堆来利用的漏洞,它们只是显著减少或更复杂。我们将在[第 8 章](08.html#aid-1T1401"Chapter 8. Exploit Development with Python, Metasploit, and Immunity")中解释为什么在今天的软件中更难利用这些漏洞,*使用 Python、Metasploit 和Immunity进行漏洞开发*,不用担心,我们会说到这一点。
因此,如果您希望每次都进入网络并利用 Microsoft 安全公告 MS08-067、MS03-024 或 MS06-40 获得立足点,那么您就大错特错了。不要担心,它们仍然存在,但不是在每个主机上都能找到它,而是在网络中可能有一个系统与它在一起。更糟糕的是,对于我们这些模拟的恶意参与者来说,它甚至可能无法让我们进入一个盒子,让我们能够继续参与。通常,它是一个遗留系统或供应商产品,甚至没有使用不同的凭据集连接到域。现在,这并不是说,情况总是这样。
从安全工程师多年来提出的评估、妥协和建议来看,如今公开服务的主要例子是 web 应用程序。这些应用程序可以位于多种端口上,包括非标准端口。它们通常是负载平衡的,并且可能通过复杂的**内容交付网络**(**CDN**)提供服务,这些网络可以有效地为请求用户群附近的服务器提供的材料的缓存版本提供服务。此外,这些应用程序可以通过虚拟化平台提供服务,虚拟化平台是提供商环境中其他系统的沙盒。因此,即使您破解了 web 应用程序,也可能无法访问目标网络。如果您想知道为什么在破解 web 应用程序系统后无法取得任何进展,请记住这一点。还要确保您有权测试不受客户端控制的网络。
从安全工程师多年来提出的评估、妥协和建议来看,如今公开服务的主要例子是 web 应用。这些应用可以位于多种端口上,包括非标准端口。它们通常是负载平衡的,并且可能通过复杂的**内容交付网络**(**CDN**)提供服务,这些网络可以有效地为请求用户群附近的服务器提供的材料的缓存版本提供服务。此外,这些应用可以通过虚拟化平台提供服务,虚拟化平台是提供商环境中其他系统的沙盒。因此,即使您破解了 web 应用,也可能无法访问目标网络。如果您想知道为什么在破解 web 应用系统后无法取得任何进展,请记住这一点。还要确保您有权测试不受客户端控制的网络。
## 加密远程访问服务
...
...
@@ -48,7 +48,7 @@
# 使用打嗝套件破解收件箱
在[第 6 章](06.html#aid-1HIT81"Chapter 6. Assessing Web Applications with Python")*中,我们重点介绍了如何使用 Burp Suite 运行密码喷雾,并使用 Python*评估 Web 应用程序。Burp 套件的最佳目标之一是面向互联网的**Outlook Web Access**(**OWA**接口。这是您可以执行的最简单的攻击之一,但也是最响亮的攻击之一。如前几章所述,您应该始终减少点击收件箱的时间,并使用符合 Active Directory 复杂性要求的非常常见的密码。
在[第 6 章](06.html#aid-1HIT81"Chapter 6. Assessing Web Applications with Python")*中,我们重点介绍了如何使用 Burp Suite 运行密码喷雾,并使用 Python*评估 Web 应用。Burp 套件的最佳目标之一是面向互联网的**Outlook Web Access**(**OWA**接口。这是您可以执行的最简单的攻击之一,但也是最响亮的攻击之一。如前几章所述,您应该始终减少点击收件箱的时间,并使用符合 Active Directory 复杂性要求的非常常见的密码。
在研究过程中或在罕见的参与中,您可能需要开发或修改漏洞利用以满足您的需求。Python 是一种非常棒的语言,它可以快速生成代码原型,用于测试漏洞,或者帮助将来修改 Metasploit 模块。本章重点介绍编写利用漏洞的方法,而不是如何为这些软件产品创建特定的利用漏洞,以便需要更多的测试来提高可靠性。首先,我们需要了解**中央处理单元**(**CPU**)如何注册,以及 Windows 内存在可执行文件运行时的结构。在此之前,在 Windows XP 运行模式**虚拟机****虚拟机**上,您需要一些工具来测试这一点。
### 注
在 Windows XP Run 上下载并安装以下组件:模式 VM、Python 2.7、Notepad++、免疫调试器、MinGW(包含所有基本软件包)和免费 MP3 CD 裂土器版本 1.0。还可以使用您当前的 Kali 构建来帮助生成我们将在本章中重点介绍的相关细节。
在 Windows XP Run 上下载并安装以下组件:模式 VM、Python 2.7、Notepad++、Immunity调试器、MinGW(包含所有基本软件包)和免费 MP3 CD 裂土器版本 1.0。还可以使用您当前的 Kali 构建来帮助生成我们将在本章中重点介绍的相关细节。
如果您回顾[第 8 章](08.html#aid-1T1401"Chapter 8. Exploit Development with Python, Metasploit, and Immunity")、*利用 Python、Metasploit 和免疫*进行开发,并查看 Windows 内存的定义区域,您将更好地了解线程和进程在 Windows 内存结构中的工作方式。请记住,其他**操作系统****操作系统**处理这些内存位置的方式是不同的。
如果您回顾[第 8 章](08.html#aid-1T1401"Chapter 8. Exploit Development with Python, Metasploit, and Immunity")、*利用 Python、Metasploit 和Immunity*进行开发,并查看 Windows 内存的定义区域,您将更好地了解线程和进程在 Windows 内存结构中的工作方式。请记住,其他**操作系统****操作系统**处理这些内存位置的方式是不同的。
我们将使用之前在[第 6 章](06.html#aid-1HIT81"Chapter 6. Assessing Web Applications with Python")中创建的`head_request.py`脚本,*使用 Python*评估 Web 应用程序,并将其作为一个新脚本进行成熟。此脚本将使用队列来保存所有需要处理的任务,这些任务将在执行期间动态分配。该队列是通过从文件中读取值并存储这些值以供以后处理而构建的。我们将合并新的记录器库,以便在脚本执行时将详细信息输出到`results.log` 文件。以下屏幕截图显示了此新脚本执行后的结果:
我们将使用之前在[第 6 章](06.html#aid-1HIT81"Chapter 6. Assessing Web Applications with Python")中创建的`head_request.py`脚本,*使用 Python*评估 Web 应用,并将其作为一个新脚本进行成熟。此脚本将使用队列来保存所有需要处理的任务,这些任务将在执行期间动态分配。该队列是通过从文件中读取值并存储这些值以供以后处理而构建的。我们将合并新的记录器库,以便在脚本执行时将详细信息输出到`results.log` 文件。以下屏幕截图显示了此新脚本执行后的结果:
![Creating a multithreaded script in Python](../Images/image00435.jpeg)
...
...
@@ -78,7 +78,7 @@ class Agent(threading.Thread):
target_secure = "https://" + host
```
从这里开始,我们将处理主机潜在网站的不安全和安全版本。以下代码用于网站的不安全部分,其工作类似于[第 6 章](06.html#aid-1HIT81"Chapter 6. Assessing Web Applications with Python")、*使用 Python*评估 Web 应用程序中突出显示的脚本。唯一的区别在于,我们添加了新的记录器功能,以将详细信息打印到结果日志文件中。正如您在下面的代码中所看到的,将详细信息写入记录器与写入 print 语句几乎相同。您还将注意到,我们使用了`with`语句来锁定线程进程,以便打印详细信息。这对于 I**/O**是不必要的,但如果不是这样,则很难阅读:
从这里开始,我们将处理主机潜在网站的不安全和安全版本。以下代码用于网站的不安全部分,其工作类似于[第 6 章](06.html#aid-1HIT81"Chapter 6. Assessing Web Applications with Python")、*使用 Python*评估 Web 应用中突出显示的脚本。唯一的区别在于,我们添加了新的记录器功能,以将详细信息打印到结果日志文件中。正如您在下面的代码中所看到的,将详细信息写入记录器与写入 print 语句几乎相同。您还将注意到,我们使用了`with`语句来锁定线程进程,以便打印详细信息。这对于 I**/O**是不必要的,但如果不是这样,则很难阅读: