提交 6982ce68 编写于 作者: W wizardforcel

2021-10-22 22:31:34

上级 97329e44
# 序言
# 零、序言
本书将为您提供在构建虚拟环境以实践渗透测试时要遵循的系统过程。在本书中,将创建网络体系结构,允许对几乎任何生产环境进行测试。
......@@ -20,11 +20,11 @@
[第 8 章](08.html "Chapter 8. Architecting an IDS/IPS Range")*构建了一个 IDS/IPS 范围*,调查了 Snort IDS 的部署和一些基于主机的安全保护。一旦部署,将探索许多规避技术来规避 IDS。
[第 9 章](09.html "Chapter 9. Assessment of Web Servers and Web Applications")*对 Web 服务器和 Web 应用程序的评估*探讨了 Web 服务器和应用程序的安装。您将遵循测试策略来评估服务器及其应用程序
[第 9 章](09.html "Chapter 9. Assessment of Web Servers and Web Applications")*对 Web 服务器和 Web 应用的评估*探讨了 Web 服务器和应用的安装。您将遵循测试策略来评估服务器及其应用
[第 10 章](10.html "Chapter 10. Testing Flat and Internal Networks")*测试平台和内部网络*探讨了测试平台和内部网络的过程。探讨了漏洞扫描程序的使用,并比较了使用或不使用凭据的扫描。
[第 11 章](11.html "Chapter 11. Attacking Servers")*攻击服务器*识别了我们用来攻击服务和服务器的方法。我们将看到的最常见的攻击向量是在 Web 服务器上运行的 Web 应用程序
[第 11 章](11.html "Chapter 11. Attacking Servers")*攻击服务器*识别了我们用来攻击服务和服务器的方法。我们将看到的最常见的攻击向量是在 Web 服务器上运行的 Web 应用。
[第 12 章](12.html "Chapter 12. Exploring Client-side Attack Vectors")*探索客户端攻击向量*,介绍了针对网络的主要攻击向量,即来自客户端的攻击向量。您将探索可用于欺骗客户端访问恶意站点的方法。
......
# 第 1 章:渗透测试介绍
# 一、渗透测试介绍
在本章中,我们将讨论 pen 测试在专业安全测试框架中扮演的角色。我们将讨论以下主题:
......
# 第二章虚拟环境的选择
# 二、虚拟环境的选择
在本章中,我们将讨论可供选择的不同虚拟环境平台。我们将介绍现有的大多数主要虚拟技术平台。我们将讨论以下主题:
......@@ -46,7 +46,7 @@ OracleVirtualBox 是一个非常强大的工具,在选择虚拟化解决方案
![VirtualBox](graphics/477-1_02_08.jpg)
我们需要一个 ISO 映像来用于我们的虚拟机。为此,我们将使用优秀的工具 Samurai**Web 测试框架****WTF**。这是一个 web 应用程序测试框架,它是一个实时 Linux 环境,已预配置为 web 测试框架。这张 CD 包含了一些最好的开源和免费工具,可以用来测试和攻击网站。您可以从[下载 ISO 图像 http://www.samurai-wtf.org/](http://www.samurai-wtf.org/)
我们需要一个 ISO 映像来用于我们的虚拟机。为此,我们将使用优秀的工具 Samurai**Web 测试框架****WTF**。这是一个 web 应用测试框架,它是一个实时 Linux 环境,已预配置为 web 测试框架。这张 CD 包含了一些最好的开源和免费工具,可以用来测试和攻击网站。您可以从[下载 ISO 图像 http://www.samurai-wtf.org/](http://www.samurai-wtf.org/)
要开始创建虚拟机,请单击**新建**开始该过程。在打开的创建虚拟机窗口中,在名称字段中输入`Samurai`并选择**Linux**作为操作系统。然后,选择所需版本并点击**下一步**
......@@ -209,11 +209,11 @@ Citrix 的团队已经开发出了一个强大的竞争对手,可以与 VMware
6. 唯一要做的就是打开虚拟机的电源。点击**打开此虚拟机**电源,您的机器将启动。
现在,我们将为本书其他章节中使用的其中一台机器创建一个虚拟机。我们将要使用的机器已经创建,并且可以作为 VMware VMDK 文件格式的虚拟机使用。我们将在本章后面介绍虚拟硬盘驱动器的不同格式。我们想从[www.OWASP.org](http://www.owasp.org)上的**开放式 Web 应用安全组****OWASP**)下载破碎的 Web 应用项目虚拟机。该虚拟机由 Mandiant 赞助,是实践 web 应用程序测试的优秀教程。您可以从[下载虚拟机 http://sourceforge.net/projects/owaspbwa/files/](http://sourceforge.net/projects/owaspbwa/files/)
现在,我们将为本书其他章节中使用的其中一台机器创建一个虚拟机。我们将要使用的机器已经创建,并且可以作为 VMware VMDK 文件格式的虚拟机使用。我们将在本章后面介绍虚拟硬盘驱动器的不同格式。我们想从[www.OWASP.org](http://www.owasp.org)上的**开放式 Web 应用安全组****OWASP**)下载破碎的 Web 应用项目虚拟机。该虚拟机由 Mandiant 赞助,是实践 web 应用测试的优秀教程。您可以从[下载虚拟机 http://sourceforge.net/projects/owaspbwa/files/](http://sourceforge.net/projects/owaspbwa/files/)
下载虚拟机后,将虚拟机解压缩到计算机上的文件夹中。一旦文件被提取,我们需要启动 VMware Workstation 并启动访问过程。以下是需要执行的步骤:
1. 点击**打开虚拟机**。导航到提取文件的文件夹,并找到已损坏的 Web 应用程序项目 VM 的配置文件。
1. 点击**打开虚拟机**。导航到提取文件的文件夹,并找到已损坏的 Web 应用项目 VM 的配置文件。
2. Once you have located the file, select it and click on **Open** to open the file. This will open the VM and you should be in the configuration screen, as shown in the following screenshot:
![VMware Workstation](graphics/477-1_02_14.jpg)
......@@ -225,11 +225,11 @@ Citrix 的团队已经开发出了一个强大的竞争对手,可以与 VMware
![VMware Workstation](graphics/477-1_02_15.jpg)
这里我们需要的信息是分配给虚拟机的 IP 地址,这样我们就可以访问并查看它!打开您选择的浏览器,输入显示的 IP 地址,并打开断开的 web 应用程序项目 VM 的 web 界面。呈现给您的网页示例如以下屏幕截图所示:
这里我们需要的信息是分配给虚拟机的 IP 地址,这样我们就可以访问并查看它!打开您选择的浏览器,输入显示的 IP 地址,并打开断开的 web 应用项目 VM 的 web 界面。呈现给您的网页示例如以下屏幕截图所示:
![VMware Workstation](graphics/477-1_02_16.jpg)
如屏幕截图所示,在这个 VM 发行版中有许多工具,任何测试人员都可以从中受益。此处包含的教程和应用程序允许用户练习他们的技能和挑战,这些技能和挑战设置在不同的技能级别。我们鼓励你花很多时间在这里,并经常回来。当情况需要时,我们将在整本书中使用它。同样,自 Mandiant 赞助以来,VM 增加了许多额外的挑战。阅读本书的一些人可能熟悉 OWASP 的优秀教程 Web Goat。这个项目只是本教程的一个扩展,它还添加了 Irongeek 工具 Mutillidae。你可以在[上阅读更多关于水母科的信息 http://www.irongeek.com/i.php?page=mutillidae/mutillidae-故意-vulnerable-php-owasp-top-10](http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberately-vulnerable-php-owasp-top-10)甚至在[www.irongeek.com](http://www.irongeek.com)上观看一些信息视频。
如屏幕截图所示,在这个 VM 发行版中有许多工具,任何测试人员都可以从中受益。此处包含的教程和应用允许用户练习他们的技能和挑战,这些技能和挑战设置在不同的技能级别。我们鼓励你花很多时间在这里,并经常回来。当情况需要时,我们将在整本书中使用它。同样,自 Mandiant 赞助以来,VM 增加了许多额外的挑战。阅读本书的一些人可能熟悉 OWASP 的优秀教程 Web Goat。这个项目只是本教程的一个扩展,它还添加了 Irongeek 工具 Mutillidae。你可以在[上阅读更多关于水母科的信息 http://www.irongeek.com/i.php?page=mutillidae/mutillidae-故意-vulnerable-php-owasp-top-10](http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberately-vulnerable-php-owasp-top-10)甚至在[www.irongeek.com](http://www.irongeek.com)上观看一些信息视频。
在继续本章之前,我们还有一个主题要看;它是 VMware Workstation 内联网的强大功能。这是我购买并继续购买 VMware Workstation 的主要原因之一。在 VMware 工作站中,导航到**编辑****虚拟网络编辑器**。当窗口打开时,您将看到在 VMware 中配置的当前交换机。默认情况下,VMware 配置三个虚拟交换机,它们是 Vmnet0(用于桥接接口)、Vmnet1(用于仅主机接口)和 Vmnet8(用于 NAT 接口)。我们在此不作详细介绍,因为我们可以从许多来源了解有关网络及其含义的更多信息,其中最好的一个来源是我们在本章前面提到的《VMware Workstation 用户指南》。VMware Workstation 的强大功能是我们最多可以拥有 10 个虚拟交换机!这意味着我们可以有效地构建 10 个不同的网段。VMware 网络配置允许我们设置所需的 IP 地址范围,并提供 DHCP 服务器。在大多数情况下,10 超出了我们的需要,对于 10x 及更高版本,我们现在可以在 Windows 和 Linux 主机上分别拥有 20 个和 255 个网段。这是一个很大的网络!正是这一点和其他因素使它成为我们的首选软件。当我们构建分层和分段的体系结构时,我们需要交换能力。我的机器上的网络配置示例如以下屏幕截图所示:
......@@ -249,7 +249,7 @@ Citrix 的团队已经开发出了一个强大的竞争对手,可以与 VMware
这里需要注意的是:根据我的经验,该工具并不完美,但它已将大多数 VMDK 文件转换为 Hyper-V 的 VHD 格式,没有任何问题。只有“FreeBSD”操作系统在转换过程中出现问题,然后让它在 Hyper-V 上运行。具有讽刺意味的是,版本 9x 之前的 FreeBSD 版本似乎工作正常。
您可以从[下载软件 http://www.starwindsoftware.com/converter](http://www.starwindsoftware.com/converter) 。请注意,您需要注册并且应用程序在 Windows 中运行。下载软件后,安装软件,然后运行程序。这是一个易于使用的工具;您可以通过导航到文件图像来选择要转换的文件图像。随后,该工具将显示格式输出的选项。以下屏幕截图显示了一个示例:
您可以从[下载软件 http://www.starwindsoftware.com/converter](http://www.starwindsoftware.com/converter) 。请注意,您需要注册并且应用在 Windows 中运行。下载软件后,安装软件,然后运行程序。这是一个易于使用的工具;您可以通过导航到文件图像来选择要转换的文件图像。随后,该工具将显示格式输出的选项。以下屏幕截图显示了一个示例:
![Image conversion](graphics/477-1_02_18.jpg)
......@@ -265,7 +265,7 @@ Citrix 的团队已经开发出了一个强大的竞争对手,可以与 VMware
在本章中,我们讨论了不同类型的虚拟化,其中类型 1(也称为裸机虚拟化)提供可直接访问并安装在硬件中的虚拟机监控程序,类型 2(安装在操作系统中的虚拟机监控程序)。类型 1 解决方案的优点之一是,直接安装在硬件中的虚拟机监控程序提供了改进的性能;这样做的一个缺点是,硬件必须与产品的虚拟机监控程序集成,并且您必须确保检查它是否这样做。
我们研究了各种可能的开源虚拟化产品,并在许多工具中安装、配置了基本设置和创建了虚拟机。我们下载并使用 ISO 映像来创建虚拟机,并在虚拟机创建后启动它。此外,我们下载了 OWASP 断开的 Web 应用程序项目虚拟机,并使用现有配置运行该机器。
我们研究了各种可能的开源虚拟化产品,并在许多工具中安装、配置了基本设置和创建了虚拟机。我们下载并使用 ISO 映像来创建虚拟机,并在虚拟机创建后启动它。此外,我们下载了 OWASP 断开的 Web 应用项目虚拟机,并使用现有配置运行该机器。
我们还介绍了一些与虚拟化相关的商业产品,正是在这里,我们解释了从现在开始我们将使用虚拟化产品 VMware Workstation 的原因。此外,我们还讨论了 XenServer 和 vSphere 产品的强大功能。
......
# 第三章规划范围
# 三、规划范围
在本章中,我们将开始规划测试环境所需的过程。我们将讨论搜索和查找要测试的漏洞的过程,并为测试一种类型的漏洞创建一个实验室环境。我们将讨论以下问题:
......@@ -13,7 +13,7 @@
## 我们想要实现什么?
我们是在测试 web 应用程序、应用程序、设备还是其他东西?这就是我们开始确定虚拟化环境需要什么的地方;此外,我们还将确定如何配置和构建所需的组件。
我们是在测试 web 应用、应用、设备还是其他东西?这就是我们开始确定虚拟化环境需要什么的地方;此外,我们还将确定如何配置和构建所需的组件。
## 我们必须在什么时候完成?
......@@ -117,7 +117,7 @@
我们希望能够进一步探索我们的漏洞,因此我们现在将通过一个示例来实现这一点。当我们在前面的屏幕截图中查看此漏洞列表时,我们看到 Cisco 有一个漏洞。由于我们喜欢了解这些流行产品的最新信息,思科就是其中之一,因此我们将进一步探索。请根据您的结果使用您自己的漏洞,或者查看 2013 年 11 月 12 日结果中的 Cisco 数据。
单击该漏洞后,将打开另一个页面,其中包含有关该漏洞的更多详细信息。我们看到这是一个输入验证问题,这是我们经常看到的。程序员在开发应用程序时没有很好地清理他们的输入。以下屏幕截图显示了该漏洞的详细信息示例:
单击该漏洞后,将打开另一个页面,其中包含有关该漏洞的更多详细信息。我们看到这是一个输入验证问题,这是我们经常看到的。程序员在开发应用时没有很好地清理他们的输入。以下屏幕截图显示了该漏洞的详细信息示例:
![Vulnerability sites](graphics/477-1_03_08.jpg)
......
# 第 4 章识别靶场架构
# 四、识别靶场架构
在本章中,我们将介绍创建机器来创建测试实验室架构基础的过程。我们将讨论以下主题:
......@@ -156,7 +156,7 @@
我们以前提到过,但值得重复;您必须在平面网络上攻击目标,并验证其是否有效。否则,安装过滤器只会浪费时间。
我们现在来看一个简单的例子。在 VMware 工作站中的 Kali 虚拟机中,单击**打开此虚拟机的电源**以启动虚拟机。机器加载后,点击**其他**登录。这将打开机器的登录页面。输入`root`作为用户名,输入`toor`作为密码。打开桌面后,导航至**应用程序****附件****终端**打开终端窗口。在窗口中,输入`ifconfig eth1`查看连接到交换机的接口的 IP 地址信息。
我们现在来看一个简单的例子。在 VMware 工作站中的 Kali 虚拟机中,单击**打开此虚拟机的电源**以启动虚拟机。机器加载后,点击**其他**登录。这将打开机器的登录页面。输入`root`作为用户名,输入`toor`作为密码。打开桌面后,导航至**应用****附件****终端**打开终端窗口。在窗口中,输入`ifconfig eth1`查看连接到交换机的接口的 IP 地址信息。
在我们做任何其他事情之前,我们将更新 Kali 发行版。这里需要注意的是:更新有时会出错,所以在我们执行更新之前,强烈建议我们拍下机器的快照。在 VMware Workstation 中,导航到**VM****拍摄快照**。在打开的窗口中,输入快照的名称,然后单击**拍摄快照**
......@@ -208,7 +208,7 @@
Dynamips 软件可以从 Ubuntu 的软件库中获得;在 Ubuntu 机器中,点击屏幕左侧菜单栏上的终端图标,打开终端窗口。如果没有看到终端图标,可以点击**Ubuntu 软件中心**进行搜索。
在终端窗口中,输入`sudo apt-get install dynamips`。这将获取 Dynamips 软件并安装它。安装完成后,我们将为该工具安装前端应用程序。在终端窗口中输入`sudo apt-get install dynagen`
在终端窗口中,输入`sudo apt-get install dynamips`。这将获取 Dynamips 软件并安装它。安装完成后,我们将为该工具安装前端应用。在终端窗口中输入`sudo apt-get install dynagen`
要停止为每个命令键入`sudo`,请输入`sudo –i`。我们用来配置路由器的配置文件被复制到一个相当长的路径,我们现在将修复这个问题。我们将使用示例配置文件`simple1.net`。输入`cp /usr/share/doc/dynagen/examples/sample_labs/simple1/simple1.net /opt/config.net`
......@@ -338,13 +338,13 @@ Debian 发行版使用一个配置文件来设置网卡启动后所需的参数
[www.rapid7.com/metasploit](http://www.rapid7.com/metasploit)
您必须注册才能下载应用程序。下载后,打开虚拟机并添加连接到 VMnet1 接口的网络适配器。与大多数虚拟机一样,默认情况下,网络适配器设置在 VMnet8 接口上,我们可以将其用于直接测试。每当我们想将 web 服务器移动到架构的另一个位置时,我们只需更改适配器所连接的交换机。此外,我们可以拍摄一个快照,并为要使用机器测试的每个位置创建一个快照;此外,我们可以克隆机器,并在我们的体系结构周围进行克隆。我们怎么做真的无关紧要。其目的是让机器测试我们的技能,然后在我们和目标之间设置障碍,并学习克服障碍的方法。
您必须注册才能下载应用。下载后,打开虚拟机并添加连接到 VMnet1 接口的网络适配器。与大多数虚拟机一样,默认情况下,网络适配器设置在 VMnet8 接口上,我们可以将其用于直接测试。每当我们想将 web 服务器移动到架构的另一个位置时,我们只需更改适配器所连接的交换机。此外,我们可以拍摄一个快照,并为要使用机器测试的每个位置创建一个快照;此外,我们可以克隆机器,并在我们的体系结构周围进行克隆。我们怎么做真的无关紧要。其目的是让机器测试我们的技能,然后在我们和目标之间设置障碍,并学习克服障碍的方法。
机器运行后,使用用户名`msfadmin`和密码`msfadmin`登录机器。登录后,记下 IP 地址,打开浏览器并连接到计算机上的 web 服务器。下一个屏幕截图显示了机器主页的示例:
![Web server](graphics/477-1_04_37.jpg)
如前一屏幕截图所示,metasploitable 虚拟机为我们提供了多个测试站点;我们有 Mutillidae,该死的易受攻击的 Web 应用程序,还有很多其他的。这将为我们提供多种技术在网络上进行测试。
如前一屏幕截图所示,metasploitable 虚拟机为我们提供了多个测试站点;我们有 Mutillidae,该死的易受攻击的 Web 应用,还有很多其他的。这将为我们提供多种技术在网络上进行测试。
就目前而言,元可编程机器与我们下载的虚拟机相结合就足够了。我们仍然需要在我们的网络架构中构建许多组件,我们将在本书后面的章节中介绍它们。
......
# 第 5 章:确定方法
# 五、确定方法
在本章中,我们将介绍一些与测试方法有关的不同参考文献。在[第一章](01.html "Chapter 1. Introducing Penetration Testing")*介绍渗透测试*中,我们讨论了一种抽象的方法,但在本章中,我们将更详细地研究它。这是因为现在我们已经为设计设定了初始目标范围环境,我们希望为我们的测试实践研究一个系统化的过程。如果没有合适的方法,我们会被归类为**特设**测试组,这是专业测试人员应该避免的。我们将讨论以下主题:
......@@ -318,9 +318,9 @@ NIST 还定义了其他存在的方法,因此,专业安全测试人员关注
有许多不同的技术评估技术可用,我们将关注 NIST 出版物本节中具体讨论的技术,而不是解决这些技术。本出版物介绍了以下评估方法:
* **审查技术**:这些是用于评估系统、应用程序、网络、策略和程序以发现漏洞的检查技术。评审技术一般采用人工方式进行。
* **审查技术**:这些是用于评估系统、应用、网络、策略和程序以发现漏洞的检查技术。评审技术一般采用人工方式进行。
* **目标识别和分析技术**:识别系统、端口、服务和潜在漏洞。这些可以手动执行;然而,更常见的情况是,使用自动化工具完成这些任务。
* **目标漏洞验证技术**:在此过程中,我们可以手动或使用工具对漏洞进行验证。这里的技术,如密码破解、渗透测试、社会工程和应用程序安全测试,都是模拟攻击者的技术。
* **目标漏洞验证技术**:在此过程中,我们可以手动或使用工具对漏洞进行验证。这里的技术,如密码破解、渗透测试、社会工程和应用安全测试,都是模拟攻击者的技术。
正如我们多次指出的那样,没有任何方法能够显示完整的画面,因此专业安全测试人员将使用多种不同的技术来获得所需的信息。
......
# 第六章创建外部攻击架构
# 六、创建外部攻击架构
在本章中,我们将构建一个外部体系结构,在攻击的不同阶段进行时使用该体系结构。我们将在本章中讨论以下主题:
* 建立分层体系结构
* 配置防火墙体系结构
* 部署 IDS/IP 和负载平衡器
* 集成 web 应用程序防火墙
* 集成 web 应用防火墙
本章将为我们提供一个外部攻击体系结构,该体系结构将提供模拟多种不同测试环境的能力。在本章中,我们将完成配置范围核心设备的过程,这些设备是路由器、交换机和防火墙机器等体系结构的连接设备。因此,我们可以轻松地构建目标机器或设备,并将其插入到我们的体系结构中,然后立即开始测试。
......@@ -60,7 +60,7 @@ apt-get dist-upgrade
![Establishing layered architectures](graphics/477-1_06_5.jpg)
既然我们有了连接,我们就可以添加我们的下一台机器,这就是我们的 web 服务器。正如我们在[第 4 章](04.html "Chapter 4. Identifying Range Architecture")*识别范围架构*中提到的,我们在添加 web 服务器时有很多选择,这确实是个人偏好的问题。正如我们所知,我们将在体系结构中有两个 web 服务器;我们可以为第二台机器选择与第一台机器不同的 web 服务器。对于本书中的第一个 web 服务器,我们将从 OWASP 和 Mandiant 中选择**已损坏的 web 应用程序 VM**。由于这将连接到 DMZ 交换机,我们只需确保网络适配器连接到 VMnet2 交换机。
既然我们有了连接,我们就可以添加我们的下一台机器,这就是我们的 web 服务器。正如我们在[第 4 章](04.html "Chapter 4. Identifying Range Architecture")*识别范围架构*中提到的,我们在添加 web 服务器时有很多选择,这确实是个人偏好的问题。正如我们所知,我们将在体系结构中有两个 web 服务器;我们可以为第二台机器选择与第一台机器不同的 web 服务器。对于本书中的第一个 web 服务器,我们将从 OWASP 和 Mandiant 中选择**已损坏的 web 应用 VM**。由于这将连接到 DMZ 交换机,我们只需确保网络适配器连接到 VMnet2 交换机。
以下屏幕截图显示了此配置的示例:
......@@ -168,7 +168,7 @@ apt-get dist-upgrade
# 配置防火墙架构
我们在 Smoothwall 防火墙中配置了一条规则,这是我们唯一配置的过滤。虽然我们希望从外部位置进行测试,而没有任何过滤,这将有效地为我们提供一个平坦的网络,但事实上,这种情况很少发生。因此,我们希望在我们的体系结构中设置一组最小的过滤器,这些过滤器将类似于我们在典型网络体系结构中看到的东西。这里有一点很重要:如果我们运行在一个配置良好的分层和受保护的体系结构中,我们将只通过它们必须允许进入其服务的端口。这就是测试的现实;一个配置良好的体系结构不会为我们提供很多向量,除了它们必须允许的向量之外。因此,这并不是一件坏事,因为我们知道会有空缺,我们几乎总是有一个 web 服务器和 web 应用程序可以使用。
我们在 Smoothwall 防火墙中配置了一条规则,这是我们唯一配置的过滤。虽然我们希望从外部位置进行测试,而没有任何过滤,这将有效地为我们提供一个平坦的网络,但事实上,这种情况很少发生。因此,我们希望在我们的体系结构中设置一组最小的过滤器,这些过滤器将类似于我们在典型网络体系结构中看到的东西。这里有一点很重要:如果我们运行在一个配置良好的分层和受保护的体系结构中,我们将只通过它们必须允许进入其服务的端口。这就是测试的现实;一个配置良好的体系结构不会为我们提供很多向量,除了它们必须允许的向量之外。因此,这并不是一件坏事,因为我们知道会有空缺,我们几乎总是有一个 web 服务器和 web 应用可以使用。
根据当前的架构配置,我们在第一层防御上没有设置过滤,读到这篇文章,你们中的一些人(如果不是的话)可能知道,即使我们的外围设备用作路由器,路由器的核心功能之一就是过滤流量。传统的路由器过滤被认为是无状态的,除了它正在处理的当前数据包之外,没有任何内存。如今,周边的路由器和过滤功能通常是有状态的,其运行方式与传统防火墙基本相同。出于本书的目的,我们将保持传统的无状态过滤方法。这是为我们提供我们想要测试的弱点所必需的,并且它仍然是非常可行的,因为许多管理员将以传统方式配置路由器。因此,即使在今天的测试中,我们仍然会遇到弱过滤配置,您需要知道如何在测试的早期阶段进行测试和识别。
......@@ -335,7 +335,7 @@ ip access-group External in .
## 集成 web 应用防火墙
在撰写本书时,您遇到的越来越多的体系结构开始部署对其 web 服务器的保护。此外,web 应用程序防火墙的部署(通常称为 WAF)正变得越来越普遍。因此,我们需要在我们的体系结构中部署它们,以测试和确定如何通过它们。我们将在后面的部分中介绍这方面的细节。现在,我们将考虑在我们的体系结构中添加 WAF 功能。ModSecurity 是最流行的免费开源 WAF 之一。我们将在后面的章节中重新讨论这一点;现在,我们将向我们在早期架构中使用的现有 metasploitable VM 添加一个 WAF。
在撰写本书时,您遇到的越来越多的体系结构开始部署对其 web 服务器的保护。此外,web 应用防火墙的部署(通常称为 WAF)正变得越来越普遍。因此,我们需要在我们的体系结构中部署它们,以测试和确定如何通过它们。我们将在后面的部分中介绍这方面的细节。现在,我们将考虑在我们的体系结构中添加 WAF 功能。ModSecurity 是最流行的免费开源 WAF 之一。我们将在后面的章节中重新讨论这一点;现在,我们将向我们在早期架构中使用的现有 metasploitable VM 添加一个 WAF。
在安装和配置 WAF 之前,我们将克隆机器并为我们的体系结构创建 WAF 设备。这将允许我们将 WAF 机器连接到我们范围内的任何点,以便我们可以测试我们通过它的能力。这将为我们提供如下图所示的配置:
......@@ -347,7 +347,7 @@ ip access-group External in .
![Integrating web application firewalls](graphics/477-1_06_40.jpg)
我们现在准备开始安装过程。输入`./dotDefender-5.12.Linux.i386.deb.bin`开始安装过程。遵循默认设置,直到必须输入 Apache 可执行文件的路径为止。输入`/usr/sbin/apache2`作为 Apache 服务器的位置,并继续安装默认值,直到您可以输入 URI 来访问应用程序。输入`dotDefender`。然后,输入管理员访问的密码;同样,您可以输入您选择的任何密码,但在测试环境中,我希望保持简单,因此我们将使用密码`adminpw`并继续安装。在更新选项中,选择**或**选项并继续安装。如果提示您输入更新周期选项,请选择任意一个选项,然后单击**下一步**。选择第一个选项从网站获取更新,然后选择**下一个**继续安装。
我们现在准备开始安装过程。输入`./dotDefender-5.12.Linux.i386.deb.bin`开始安装过程。遵循默认设置,直到必须输入 Apache 可执行文件的路径为止。输入`/usr/sbin/apache2`作为 Apache 服务器的位置,并继续安装默认值,直到您可以输入 URI 来访问应用。输入`dotDefender`。然后,输入管理员访问的密码;同样,您可以输入您选择的任何密码,但在测试环境中,我希望保持简单,因此我们将使用密码`adminpw`并继续安装。在更新选项中,选择**或**选项并继续安装。如果提示您输入更新周期选项,请选择任意一个选项,然后单击**下一步**。选择第一个选项从网站获取更新,然后选择**下一个**继续安装。
如果一切顺利,您将看到一条成功安装完成消息,如以下屏幕截图所示:
......@@ -373,6 +373,6 @@ ip access-group External in .
在我们构建了防火墙并测试了配置之后,接下来我们承担了向范围中添加监控功能的任务。我们在所有三个子网上构建并配置了 Snort,以支持我们对入侵检测能力的需求。然后,我们讨论了向配置中添加 IP 和负载平衡的过程。
最后,我们在本章结尾讨论了 web 应用程序防火墙的集成。我们安装并配置了 web 应用程序防火墙 dotDefender。一旦我们构建了这台机器,我们就克隆了它,这样我们现在就有了一台 WAF 机器,可以连接到架构中的任何位置。完成克隆过程后,我们使用 nikto 工具测试 WAF 是否检测到 web 应用程序类型的攻击。
最后,我们在本章结尾讨论了 web 应用防火墙的集成。我们安装并配置了 web 应用防火墙 dotDefender。一旦我们构建了这台机器,我们就克隆了它,这样我们现在就有了一台 WAF 机器,可以连接到架构中的任何位置。完成克隆过程后,我们使用 nikto 工具测试 WAF 是否检测到 web 应用类型的攻击。
本章到此结束。现在,您有了一个完整的分层体系结构来包含路由需求。现在,只需将所需的目标连接到此体系结构,并进行测试,以查看哪些对目标有效,哪些对目标无效。从这一点上讲,这个过程将着眼于我们可能遇到的潜在目标,然后进行实验,看看我们能发现什么。建立范围的基础和核心,现在是添加目标的时候了。我们将遇到的第一个保护目标是某种形式的装置;因此,这是我们将在下一章开始的地方。
\ No newline at end of file
# 第 7 章设备评估
# 七、设备评估
在本章中,我们将学习评估不同类型设备的技术。在测试过程中,我们还将研究测试弱过滤器的方法。我们将讨论以下主题:
......@@ -148,7 +148,7 @@ show access-lists
由于 Kali 发行版是一个渗透测试工具包,而且很可能以前有人遇到过 Cisco 路由器,因此我们可以求助于它,看看它可能有什么帮助我们继续测试路由器。事实上,思科发行版中不仅有工具,而且还有自己的菜单项!
在 Kali Linux 中,导航到**应用程序****Kali Linux****漏洞分析****Cisco 工具**,并显示适用于 Cisco 路由器的发行版中可能包含的工具。以下屏幕截图显示了一个示例:
在 Kali Linux 中,导航到**应用****Kali Linux****漏洞分析****Cisco 工具**,并显示适用于 Cisco 路由器的发行版中可能包含的工具。以下屏幕截图显示了一个示例:
![Assessing routers](graphics/477-1_07-19.jpg)
......@@ -279,7 +279,7 @@ tcp.flags.syn == 1 and tcp.flags.ack == 1
在数年的时间里,我们享受着能够使用名为**macof**的优秀工具对开关进行洪水淹没的奢侈。您可以在[上了解更多信息 http://linux.die.net/man/8/macof](http://linux.die.net/man/8/macof) 。使用 macof 工具,您可能仍然取得了一些成功,但它通常只在您遇到 2006 年之前的切换时起作用。我们想让交换机洪水泛滥,将其变成一个集线器,这样我们就可以拦截潜在攻击的流量。
如果您遇到较旧的开关,macof 可以在 70 秒内溢出平均**内容可寻址内存****CAM**表)。由于遇到较旧的开关是很常见的,因此至少要了解该工具的使用方式。我们在 Kali Linux 发行版中提供了 macof 工具。在 Kali 机器中,导航到**应用程序****Kali Linux****压力测试****网络压力测试****macof**打开 macof 工具,如下图所示:
如果您遇到较旧的开关,macof 可以在 70 秒内溢出平均**内容可寻址内存****CAM**表)。由于遇到较旧的开关是很常见的,因此至少要了解该工具的使用方式。我们在 Kali Linux 发行版中提供了 macof 工具。在 Kali 机器中,导航到**应用****Kali Linux****压力测试****网络压力测试****macof**打开 macof 工具,如下图所示:
![MAC attacks](graphics/477-1_07-34.jpg)
......
# 第 8 章:构建 IDS/IPS 范围
# 八、构建 IDS/IPS 范围
在本章中,我们将学习在我们的网络范围内设计和构建各种 IDS/IPS 功能的技术。我们还将介绍典型主机和端点安全配置的部署。我们将讨论以下主题:
......@@ -11,7 +11,7 @@
# 部署基于网络的 IDS
正如我们之前在[第 6 章](06.html "Chapter 6. Creating an External Attack Architecture")*创建外部攻击架构*中所讨论的,当我们部署基于网络的**入侵检测系统(IDS)**时,我们在网络的每个部分上放置一个传感器。传感器由一个网络卡组成,该卡处于混杂模式,这将关闭 MAC 地址过滤。所有通信量都向上传递到堆栈,并传递到监控传感器的应用程序。我们还讨论了在交换机上部署传感器的挑战,因为流量不是从所有端口发送的,这可能会对向传感器提供数据造成挑战。
正如我们之前在[第 6 章](06.html "Chapter 6. Creating an External Attack Architecture")*创建外部攻击架构*中所讨论的,当我们部署基于网络的**入侵检测系统(IDS)**时,我们在网络的每个部分上放置一个传感器。传感器由一个网络卡组成,该卡处于混杂模式,这将关闭 MAC 地址过滤。所有通信量都向上传递到堆栈,并传递到监控传感器的应用。我们还讨论了在交换机上部署传感器的挑战,因为流量不是从所有端口发送的,这可能会对向传感器提供数据造成挑战。
对于基于网络的 IDS,IDS 的功能是在数据包级别处理网络流量,然后分析其特征或模式,这些特征或模式可能是攻击的迹象。考虑到这一点,请记住网络传感器正在捕获数据包;那么,一次有多少数据包通过网络?这是基于网络的 IDS(如何以不断提高的网络速度处理流量)面临的挑战之一。然而,我们正在超越自己。我们要做的第一件事是设计我们的体系结构,以便能够很好地表示在客户端网络上可能看到的典型 ID。我们将使用下图:
......@@ -103,7 +103,7 @@ snort –A –c snort.conf
![Deploying a network-based IDS](graphics/477-1_08-14.jpg)
这已经获取了工具结果的输出,并将其写入 HTML 文件。导航至**应用程序****互联网****Iceweasel 网络浏览器**打开**Iceweasel**。浏览器打开时,打开已创建的文件并查看结果。您将看到输出更易于阅读,如以下屏幕截图所示:
这已经获取了工具结果的输出,并将其写入 HTML 文件。导航至**应用****互联网****Iceweasel 网络浏览器**打开**Iceweasel**。浏览器打开时,打开已创建的文件并查看结果。您将看到输出更易于阅读,如以下屏幕截图所示:
![Deploying a network-based IDS](graphics/477-1_08-15.jpg)
......@@ -213,7 +213,7 @@ snort –A –c snort.conf
## 压力测试
我们可能需要对 IDS 传感器执行的另一种测试类型是压力测试。通过这种技术,我们会产生大量噪声,看看攻击是否能被噪声掩盖,或者传感器是否会被淹没并停止工作。在 Kali 发行版中,有许多用于此的工具,欢迎您试用。您可以通过导航到**应用程序****Kali Linux****压力测试**并查看其中的程序来找到它们。我们将把这个测试留给你做家庭作业。您将发现 IDS 工具已经存在了足够长的时间,不会被这些攻击淹没。话虽如此,但总有机会,这就是我们报道它的原因。
我们可能需要对 IDS 传感器执行的另一种测试类型是压力测试。通过这种技术,我们会产生大量噪声,看看攻击是否能被噪声掩盖,或者传感器是否会被淹没并停止工作。在 Kali 发行版中,有许多用于此的工具,欢迎您试用。您可以通过导航到**应用****Kali Linux****压力测试**并查看其中的程序来找到它们。我们将把这个测试留给你做家庭作业。您将发现 IDS 工具已经存在了足够长的时间,不会被这些攻击淹没。话虽如此,但总有机会,这就是我们报道它的原因。
## 外壳代码混淆
......@@ -253,4 +253,4 @@ snort –A –c snort.conf
最后,我们在结束这一章时讨论了回避问题。我们解释说,在专业测试范围内很少要求这样做,但有可能这样做。正如本章所讨论的,在这方面没有保证,因为我们只有在配置设备的管理员允许的情况下才能取得成功。话虽如此,当我们使用已知包含加密数据的端口时,成功率最高。此外,我们通过扫描端口 443 上的网络安全工具包虚拟机来验证这一点,但当我们在端口 80 上运行攻击时,我们被检测到。
本章到此结束。现在,您已经在靶场环境中部署了 IDS/IP,并且已经看到了逃避检测的方法。在下一章中,我们将研究如何将 web 服务器和 web 应用程序添加到我们的系列体系结构中。
\ No newline at end of file
本章到此结束。现在,您已经在靶场环境中部署了 IDS/IP,并且已经看到了逃避检测的方法。在下一章中,我们将研究如何将 web 服务器和 web 应用添加到我们的系列体系结构中。
\ No newline at end of file
# 第 9 章 Web 服务器和 Web 应用程序的评估
# 九、Web 服务器和 Web 应用的评估
在本章中,您将学习评估 web 服务器和 web 应用程序的技术,它们是我们可能遇到的绝大多数环境的一部分。我们将讨论以下主题:
在本章中,您将学习评估 web 服务器和 web 应用的技术,它们是我们可能遇到的绝大多数环境的一部分。我们将讨论以下主题:
* 分析 OWASP 十大攻击
* 识别 web 应用程序防火墙
* 穿透 web 应用程序防火墙
* 识别 web 应用防火墙
* 穿透 web 应用防火墙
* 工具
本章将提供关于最流行的攻击向量和攻击向量的信息,这些向量实际上是在任何环境下都可以访问的。几乎所有的组织都需要某种形式的在线存在。因此,我们很有可能会有一个 web 服务器,可能还有一些 web 应用程序,我们可以用它们来尝试破坏客户端系统和/或网络。
本章将提供关于最流行的攻击向量和攻击向量的信息,这些向量实际上是在任何环境下都可以访问的。几乎所有的组织都需要某种形式的在线存在。因此,我们很有可能会有一个 web 服务器,可能还有一些 web 应用,我们可以用它们来尝试破坏客户端系统和/或网络。
# 分析 OWASP 十大攻击
**开放式 Web 应用程序安全项目****OWASP**组)是中最好的资源之一,我们不仅可以用来收集关于不同类型的攻击的信息,还可以用来收集防范这些攻击的方法和安全的编码指导。由于我们处于测试模式,我们将专注于攻击。OWASP 十大攻击是一个很好的参考。您可以在[下载最新版本 https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project](https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project)
**开放式 Web 应用安全项目****OWASP**组)是中最好的资源之一,我们不仅可以用来收集关于不同类型的攻击的信息,还可以用来收集防范这些攻击的方法和安全的编码指导。由于我们处于测试模式,我们将专注于攻击。OWASP 十大攻击是一个很好的参考。您可以在[下载最新版本 https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project](https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project)
OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更多信息,请访问[https://www.owasp.org/index.php/OWASP/Training/OWASP_WebGoat_Project](https://www.owasp.org/index.php/OWASP/Training/OWASP_WebGoat_Project)
选择 OWASP 断开的 Web 应用程序虚拟机的一个优点是它附带的工具。启动 OWASP 虚拟机后,将为我们需要连接的接口分配一个地址。对于本书中的这个示例,已为接口分配了 10.2.0.132 的 IP 地址,因此所有示例都将使用此地址。
选择 OWASP 断开的 Web 应用虚拟机的一个优点是它附带的工具。启动 OWASP 虚拟机后,将为我们需要连接的接口分配一个地址。对于本书中的这个示例,已为接口分配了 10.2.0.132 的 IP 地址,因此所有示例都将使用此地址。
机器启动后,我们将从 web 浏览器访问它。因此,我们打开我们选择的浏览器并输入`http://10.1.0.132`以打开机器的主页。
......@@ -31,9 +31,9 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
## 注射缺陷
注入缺陷一直是众多版本的 OWASP 前十名的头号攻击,并且它继续处于领先地位。最流行的注入类型是臭名昭著的 SQL 注入。尽管警告开发人员并提供了大量资源,以便他们能够设计安全的应用程序,但我们仍然看到这种攻击仍然是成功的。对于注入攻击,这只是众多方法中的一种。我们可以执行 HTML、XML 和 LDAP 注入。所有这些攻击的主要组成部分是让应用程序执行非预期的操作,或者在未经授权的情况下访问数据。
注入缺陷一直是众多版本的 OWASP 前十名的头号攻击,并且它继续处于领先地位。最流行的注入类型是臭名昭著的 SQL 注入。尽管警告开发人员并提供了大量资源,以便他们能够设计安全的应用,但我们仍然看到这种攻击仍然是成功的。对于注入攻击,这只是众多方法中的一种。我们可以执行 HTML、XML 和 LDAP 注入。所有这些攻击的主要组成部分是让应用执行非预期的操作,或者在未经授权的情况下访问数据。
我们将使用 WebGoat 工具来了解如何做到这一点。在 OWASP 断开的 Web 应用程序主页上,单击**OWASP WebGoat**打开登录页面。在登录页面中,输入用户名`guest`和密码`guest`进入教程。以下屏幕截图显示了本教程首页的示例:
我们将使用 WebGoat 工具来了解如何做到这一点。在 OWASP 断开的 Web 应用主页上,单击**OWASP WebGoat**打开登录页面。在登录页面中,输入用户名`guest`和密码`guest`进入教程。以下屏幕截图显示了本教程首页的示例:
![Injection flaws](graphics/477-1_09-2.jpg)
......@@ -51,7 +51,7 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
![Injection flaws](graphics/477-1_09-5.jpg)
那么,上一张截图中的显示了什么?它告诉我们,我们现在有了一个证据,证明我们输入的字符是通过前端应用程序输入的,因为它被放入了查询中!如果前端能够捕获它,那么它就不会成为查询的一部分。我们看到的错误是因为这不是有效的 SQL 查询。因此,现在需要输入将计算为 true 的字符串。我们在 SQL 注入攻击中使用的最常见字符串是`' OR 1=1 --`在数据输入未正确清理时转储数据库内容。使用此常见攻击字符串时返回的结果输出如以下屏幕截图所示:
那么,上一张截图中的显示了什么?它告诉我们,我们现在有了一个证据,证明我们输入的字符是通过前端应用输入的,因为它被放入了查询中!如果前端能够捕获它,那么它就不会成为查询的一部分。我们看到的错误是因为这不是有效的 SQL 查询。因此,现在需要输入将计算为 true 的字符串。我们在 SQL 注入攻击中使用的最常见字符串是`' OR 1=1 --`在数据输入未正确清理时转储数据库内容。使用此常见攻击字符串时返回的结果输出如以下屏幕截图所示:
![Injection flaws](graphics/477-1_09-6.jpg)
......@@ -59,31 +59,31 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
## 身份验证和会话管理中断
当设计应用程序时,设计者必须保护用于身份验证的令牌和会话密钥。不幸的是,从安全角度来看,这是一个经常被忽视或实施不力的领域,因此,为我们提供了一个优秀的攻击向量。这种攻击通常涉及某种形式的身份验证令牌捕获,然后破解该令牌或使用该令牌冒充某人的身份。在我们的 WebGoat 工具中,我们有两个部分来了解这些攻击,它们是身份验证缺陷和会话管理缺陷。我们将查看身份验证缺陷。在 WebGoat 教程中,在屏幕左侧,导航到**身份验证缺陷**|**基本身份验证**以打开课程。以下屏幕截图显示了一个示例:
当设计应用时,设计者必须保护用于身份验证的令牌和会话密钥。不幸的是,从安全角度来看,这是一个经常被忽视或实施不力的领域,因此,为我们提供了一个优秀的攻击向量。这种攻击通常涉及某种形式的身份验证令牌捕获,然后破解该令牌或使用该令牌冒充某人的身份。在我们的 WebGoat 工具中,我们有两个部分来了解这些攻击,它们是身份验证缺陷和会话管理缺陷。我们将查看身份验证缺陷。在 WebGoat 教程中,在屏幕左侧,导航到**身份验证缺陷**|**基本身份验证**以打开课程。以下屏幕截图显示了一个示例:
![Broken authentication and session management](graphics/477-1_09-7.jpg)
当您通读本课程的信息时,很明显,我们需要拦截来自应用程序和客户端的通信量,以查看它是如何编码的。最常见的方法是使用代理,您可以使用很多代理。我们将使用一个简单的插件,它是 Firefox 的插件**篡改数据**
当您通读本课程的信息时,很明显,我们需要拦截来自应用和客户端的通信量,以查看它是如何编码的。最常见的方法是使用代理,您可以使用很多代理。我们将使用一个简单的插件,它是 Firefox 的插件**篡改数据**
一旦您将插件添加到浏览器中,我们就可以从服务器捕获流量。在 Firefox 浏览器中,导航至**工具****篡改数据**以打开该工具。以下屏幕截图显示了一个示例:
![Broken authentication and session management](graphics/477-1_09_8.jpg)
要启动使用代理捕获数据,请单击**启动篡改**。下一步您要做的是返回 WebGoat 课程,点击**提交**按钮将查询发送到应用程序。当工具收到请求时,您将收到一条消息,如果您收到多条消息,请确保您选择要篡改的消息具有 OWASP 虚拟机的 URL。以下屏幕截图显示了所需请求的示例:
要启动使用代理捕获数据,请单击**启动篡改**。下一步您要做的是返回 WebGoat 课程,点击**提交**按钮将查询发送到应用。当工具收到请求时,您将收到一条消息,如果您收到多条消息,请确保您选择要篡改的消息具有 OWASP 虚拟机的 URL。以下屏幕截图显示了所需请求的示例:
![Broken authentication and session management](graphics/477-1_09_9.jpg)
当您查看截取的信息时,您将看到我们有**Cookie****授权**字段,我们将重点关注这些字段。我们还将关注**授权**字段中的值。这是 Base64 编码的,有很多方法可以解码值。有关此的网站,请访问[http://base64-decode.com](http://base64-decode.com) ,其中将获取值并为您解码。解码后的值显示为`guest:guest`
我们现在有了完成课程所需的信息;至少看起来是这样。我们将返回到 WebGoat 课程,输入身份验证字段的名称,即**授权**,编码字符串的值为`guest:guest`,然后点击**提交**将值加载到应用程序中。以下屏幕截图显示了预期结果的示例:
我们现在有了完成课程所需的信息;至少看起来是这样。我们将返回到 WebGoat 课程,输入身份验证字段的名称,即**授权**,编码字符串的值为`guest:guest`,然后点击**提交**将值加载到应用中。以下屏幕截图显示了预期结果的示例:
![Broken authentication and session management](graphics/477-1_09_10.jpg)
正如前面的截图所示,我们取得了成功。然而,我们还有更多的事情要做;这不是一个简单的一课。我们现在需要尝试让应用程序接受我们的登录名为`basic:basic`。为了实现这一点,我们需要破坏数据,并在破坏后强制应用程序进行身份验证。当您按照课程的说明进行操作时,您会看到显示选择**基本身份验证**课程继续挑战。当您这样做时,您将看到**篡改数据**中的页面:点击**篡改**打开页面,您可以对其进行修改。这里的关键是,我们需要通过从每个字段中删除一个字符来破坏这两个字段,**Cookie****授权**。一旦应用程序检测到损坏,它将再次提示输入凭据,当它检测到损坏时,输入`basic`作为用户名,`basic`作为密码,如以下屏幕截图所示:
正如前面的截图所示,我们取得了成功。然而,我们还有更多的事情要做;这不是一个简单的一课。我们现在需要尝试让应用接受我们的登录名为`basic:basic`。为了实现这一点,我们需要破坏数据,并在破坏后强制应用进行身份验证。当您按照课程的说明进行操作时,您会看到显示选择**基本身份验证**课程继续挑战。当您这样做时,您将看到**篡改数据**中的页面:点击**篡改**打开页面,您可以对其进行修改。这里的关键是,我们需要通过从每个字段中删除一个字符来破坏这两个字段,**Cookie****授权**。一旦应用检测到损坏,它将再次提示输入凭据,当它检测到损坏时,输入`basic`作为用户名,`basic`作为密码,如以下屏幕截图所示:
![Broken authentication and session management](graphics/477-1_09_11.jpg)
输入凭证后,单击**确定**向应用程序提交数据。检查截获的查询,您会注意到您的密码现在是`basic`并且是 Base64 编码的。我们现在已经以用户身份验证了`basic`,但是我们还没有完成。
输入凭证后,单击**确定**向应用提交数据。检查截获的查询,您会注意到您的密码现在是`basic`并且是 Base64 编码的。我们现在已经以用户身份验证了`basic`,但是我们还没有完成。
我们必须让 WebGoat 工具相信我们是用户`basic`,我们已经在服务器端做到了这一点。因此,我们现在需要说服 WebGoat 工具。最简单的方法是破坏你截获的**JSSessionID**,如下截图所示:
......@@ -95,16 +95,16 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
单击基本身份验证链接后的屏幕(剪切的文本不重要)
这是 web 应用程序测试的过程;有很多不同的方法来编写代码,您必须分析和解释代码所做的事情。在本课中,我们必须首先拦截查询,以确定我们需要与交互的参数的名称。完成此操作后,我们必须先损坏服务器端,然后损坏客户端,才能成功完成本课程的要求。这里有许多课程,您练习的越多,就越能更好地识别身份验证和会话管理的特征。
这是 web 应用测试的过程;有很多不同的方法来编写代码,您必须分析和解释代码所做的事情。在本课中,我们必须首先拦截查询,以确定我们需要与交互的参数的名称。完成此操作后,我们必须先损坏服务器端,然后损坏客户端,才能成功完成本课程的要求。这里有许多课程,您练习的越多,就越能更好地识别身份验证和会话管理的特征。
## 跨站点脚本
另一个经受时间考验的攻击是**跨站点脚本****XSS**攻击。这是一个过程,在该过程中,应用程序获取不受信任的数据,并在未经适当验证的情况下将其发送到 web 浏览器。有两种类型的验证,反射验证和存储验证,它们已经被非常成功地使用。
另一个经受时间考验的攻击是**跨站点脚本****XSS**攻击。这是一个过程,在该过程中,应用获取不受信任的数据,并在未经适当验证的情况下将其发送到 web 浏览器。有两种类型的验证,反射验证和存储验证,它们已经被非常成功地使用。
在使用 WebGoat 工具之前,我们将了解可以在 OWASP 机器中使用的另一种方法:
1. 在机器主页面上向下滚动,直到看到**测试工具应用程序**
2. 点击**OWASP-ZAP-WAVE**打开我们要测试的应用程序
1. 在机器主页面上向下滚动,直到看到**测试工具应用**
2. 点击**OWASP-ZAP-WAVE**打开我们要测试的应用。
3. 导航到表单参数中的**活动漏洞****跨站点脚本****简单 XSS**,为我们提供一个表单来测试 XSS。
4. In the form field, enter `<script>alert("Hello")</script>` and click on **Submit** to test for XSS. An example is shown in the following screenshot:
......@@ -123,7 +123,7 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
我们只显示弹出框,说明一旦发现弱点,您还可以做更多的事情。一旦找到向量,就可以使用许多 Java 调用。
按照的说明,以 Tom 的身份登录应用程序
按照的说明,以 Tom 的身份登录应用:
1. 一旦您以 Tom 身份登录,您将导航至**查看个人资料****编辑个人资料**以访问 Tom 的个人资料。
2. 访问后,您将在地址字段中输入脚本标记。在**街**字段中,输入`<script>alert("Hello")</script>`,点击**上传档案**上传档案。
......@@ -145,24 +145,24 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
**阶段 5**中,我们将使用反射型 XSS,如下所示:
1. 点击**第 5 阶段:反射 XSS**打开课程并阅读本阶段所需的说明。正如 directions 所述,您必须在应用程序的搜索函数中嵌入 XSS 字符串。
2. 我们需要做的第一件事是作为用户之一登录。由于我们已经在应用程序中列出了用户`Larry`,我们将使用此用户。
1. 点击**第 5 阶段:反射 XSS**打开课程并阅读本阶段所需的说明。正如 directions 所述,您必须在应用的搜索函数中嵌入 XSS 字符串。
2. 我们需要做的第一件事是作为用户之一登录。由于我们已经在应用中列出了用户`Larry`,我们将使用此用户。
3. 以用户`Larry`登录,点击**SearchStaff**打开申请代码的搜索部分。
4. In the **Name** field, enter `<script>alert("You are Hacked")</script>` and then click on the **FindProfile** button to run the script. An example of the result is shown in the following screenshot:
![Cross-Site Scripting](graphics/477-1_09_18.jpg)
就这样!您已经进行了许多不同的 XSS 攻击,它们确实相对容易防范。然而,我们继续在 Web 应用程序中看到这些,并且它们将作为一个可行的攻击向量保持一段时间。
就这样!您已经进行了许多不同的 XSS 攻击,它们确实相对容易防范。然而,我们继续在 Web 应用中看到这些,并且它们将作为一个可行的攻击向量保持一段时间。
## 不安全的直接对象引用
通过直接对象引用,开发人员引用文件或其他对象,而不使用任何形式的身份验证或访问控制检查。当我们发现这一点时,我们可以操纵数据并在不提供任何授权的情况下访问它。
我们将再次参考 WebGoat 工具来处理针对应用程序的这种攻击。您希望关注的 OWASP WebGoat 中的区域是**访问控制缺陷**。一旦你扩展了它,你会发现有很多经验供我们学习。课程列表显示在以下屏幕截图中:
我们将再次参考 WebGoat 工具来处理针对应用的这种攻击。您希望关注的 OWASP WebGoat 中的区域是**访问控制缺陷**。一旦你扩展了它,你会发现有很多经验供我们学习。课程列表显示在以下屏幕截图中:
![Insecure direct object references](graphics/477-1_09_19.jpg)
我们想打开的课是清单上的第二课。点击**绕过基于路径的访问控制方案**,阅读本课程的说明。任何基于路径的控制保护的关键是,我们可以突破预定目录,访问位于另一个区域的文件。本课程应用程序的第一页显示在以下屏幕截图中:
我们想打开的课是清单上的第二课。点击**绕过基于路径的访问控制方案**,阅读本课程的说明。任何基于路径的控制保护的关键是,我们可以突破预定目录,访问位于另一个区域的文件。本课程应用的第一页显示在以下屏幕截图中:
![Insecure direct object references](graphics/477-1_09_20.jpg)
......@@ -174,7 +174,7 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
![Insecure direct object references](graphics/477-1_09_22.jpg)
以下过程是使用篡改数据工具截取查询,然后将路径粘贴到包含我们试图从应用程序上载的文件的字段中:
以下过程是使用篡改数据工具截取查询,然后将路径粘贴到包含我们试图从应用上载的文件的字段中:
1. We will navigate to **OffByOne.html** | **View File** and intercept the query. An example of the query that is intercepted is shown in the following screenshot:
......@@ -190,11 +190,11 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
![Insecure direct object references](graphics/477-1_09_25.jpg)
我们终于成功,打破了基于路径的访问控制。这可能是一个耗时的过程,这就是为什么我们通常使用 web 应用程序测试工具来确定需要进一步调查的领域。
我们终于成功,打破了基于路径的访问控制。这可能是一个耗时的过程,这就是为什么我们通常使用 web 应用测试工具来确定需要进一步调查的领域。
## 安全配置错误
一种常见的攻击方法是查找由管理员设置的默认配置或名称,或者只是处于安装状态。对于 web 应用程序,几乎总是可以使用某种形式的配置访问来配置或管理站点。我们在 WebGoat 工具中得到了一个教训。导航至**不安全配置****强制浏览**打开课程。正如您在说明中所读到的,通常有某种形式的配置可用于执行维护。我们可以尝试一些不同的文件名,但是由于 OWASP 机器是 Linux 机器,这些机器最常见的配置文件是`conf`文件。因此,在浏览器中,将 URL 更改为`http://10.2.0.132/WebGoat/conf`以查看此处是否有配置文件。以下屏幕截图显示了该结果的示例:
一种常见的攻击方法是查找由管理员设置的默认配置或名称,或者只是处于安装状态。对于 web 应用,几乎总是可以使用某种形式的配置访问来配置或管理站点。我们在 WebGoat 工具中得到了一个教训。导航至**不安全配置****强制浏览**打开课程。正如您在说明中所读到的,通常有某种形式的配置可用于执行维护。我们可以尝试一些不同的文件名,但是由于 OWASP 机器是 Linux 机器,这些机器最常见的配置文件是`conf`文件。因此,在浏览器中,将 URL 更改为`http://10.2.0.132/WebGoat/conf`以查看此处是否有配置文件。以下屏幕截图显示了该结果的示例:
![Security misconfiguration](graphics/477-1_09_26.jpg)
......@@ -202,7 +202,7 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
## 敏感数据曝光
大多数 web 应用程序都不能正确保护它们使用或存储的数据。发现数据不受加密保护或编码不当是很常见的。此外,当应用程序处理数据时,它在许多情况下都是公开的。
大多数 web 应用都不能正确保护它们使用或存储的数据。发现数据不受加密保护或编码不当是很常见的。此外,当应用处理数据时,它在许多情况下都是公开的。
在 WebGoat 工具中,有一个教训可以让我们更加熟悉不同的编码技术。导航至**不安全存储****编码基础**打开课程;以下屏幕截图显示了一个示例:
......@@ -216,11 +216,11 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
## 跨站点请求伪造
**跨站点请求伪造****CSRF**攻击中,我们需要一个用户登录到一个使用 cookie 建立会话的站点。当满足这些参数时,攻击获取包含的身份验证信息并将其提交给易受攻击的应用程序。由于应用程序存储了身份验证信息,因此请求被视为合法的。
**跨站点请求伪造****CSRF**攻击中,我们需要一个用户登录到一个使用 cookie 建立会话的站点。当满足这些参数时,攻击获取包含的身份验证信息并将其提交给易受攻击的应用。由于应用存储了身份验证信息,因此请求被视为合法的。
在 WebGoat 工具中,我们有许多关于 CSRF 的课程。它们位于跨站点脚本 XSS 部分。在 WebGoat 工具中,导航到**跨站点脚本(XSS)****跨站点请求伪造**打开课程并查看课程说明。
对于这种攻击,我们需要向嵌入式 URL 添加一个传递函数,以获取要传递的用户身份验证信息,然后用于验证我们的事务。我们将把代码附加到 URL 以转移资金。按照说明,我们可以通过右键单击页面左侧的课程标题并将其保存到剪贴板来复制 URL。我们想使用`<IMG>`标记来存储我们的 URL。这个过程将是发送一封电子邮件,让用户在登录到我们用于传输的应用程序时单击一个链接。
对于这种攻击,我们需要向嵌入式 URL 添加一个传递函数,以获取要传递的用户身份验证信息,然后用于验证我们的事务。我们将把代码附加到 URL 以转移资金。按照说明,我们可以通过右键单击页面左侧的课程标题并将其保存到剪贴板来复制 URL。我们想使用`<IMG>`标记来存储我们的 URL。这个过程将是发送一封电子邮件,让用户在登录到我们用于传输的应用时单击一个链接。
我们需要在两个方面输入信息。第一个是**标题**,第二个是**消息**。现在,让我们以以下方式执行此操作:
......@@ -236,32 +236,32 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
输入代码的 CSRF 屏幕(剪切的文本不重要)
2. 一旦您验证了该命令,点击**提交**按钮上的。这将把你的标题放在应用程序的底部。
2. 一旦您验证了该命令,点击**提交**按钮上的。这将把你的标题放在应用的底部。
3. Before you click on it, start your Tamper Data proxy and intercept the request. An example of the intercepted request is shown in the following screenshot:
![Cross-Site Request Forgery](graphics/477-1_09_29.jpg)
当您查看了截获的查询中的信息后,单击**确定**并让查询发送到应用程序。如果需要,请刷新 WebGoat 课程。您现在应该看到显示您成功的绿色复选标记,如以下屏幕截图所示:
当您查看了截获的查询中的信息后,单击**确定**并让查询发送到应用。如果需要,请刷新 WebGoat 课程。您现在应该看到显示您成功的绿色复选标记,如以下屏幕截图所示:
![Cross-Site Request Forgery](graphics/477-1_09_30.jpg)
还有几个课程可供您练习 CSRF,我们鼓励您通过这些课程来完善您的技能、知识和对 web 应用程序攻击的理解。
还有几个课程可供您练习 CSRF,我们鼓励您通过这些课程来完善您的技能、知识和对 web 应用攻击的理解。
## 使用已知的易损部件
在应用程序开发中,使用现有库和函数来创建代码是一种常见做法,最近在攻击中也使用了这种做法。如果我们可以感染一个库、框架或其他流行组件,那么使用它的每一个应用程序都将受到攻击。这是传播漏洞最有效的方法之一,也是越来越常见的一种方式,基于此,它在 2013 年被添加到顶级攻击列表中。
在应用开发中,使用现有库和函数来创建代码是一种常见做法,最近在攻击中也使用了这种做法。如果我们可以感染一个库、框架或其他流行组件,那么使用它的每一个应用都将受到攻击。这是传播漏洞最有效的方法之一,也是越来越常见的一种方式,基于此,它在 2013 年被添加到顶级攻击列表中。
## 无效的重定向和转发
在这次攻击中,我们利用了这一事实,即许多 web 应用程序将在未经适当验证的情况下使用重定向和转发,这可能导致流量重定向到恶意软件和其他恶意网站。
在这次攻击中,我们利用了这一事实,即许多 web 应用将在未经适当验证的情况下使用重定向和转发,这可能导致流量重定向到恶意软件和其他恶意网站。
# 识别 web 应用程序防火墙
# 识别 web 应用防火墙
在测试时,我们很可能会遇到**web 应用程序防火墙****WAF**)。这些旨在识别我们在本章中介绍的大多数攻击(以及大多数基于 URL 的攻击)。我们将再次使用 Kali Linux 发行版来识别 WAF。您将需要我们在[第 6 章](06.html "Chapter 6. Creating an External Attack Architecture")*创建外部攻击架构*中创建的 Kali Linux 机器和 WAF 机器。
在测试时,我们很可能会遇到**web 应用防火墙****WAF**)。这些旨在识别我们在本章中介绍的大多数攻击(以及大多数基于 URL 的攻击)。我们将再次使用 Kali Linux 发行版来识别 WAF。您将需要我们在[第 6 章](06.html "Chapter 6. Creating an External Attack Architecture")*创建外部攻击架构*中创建的 Kali Linux 机器和 WAF 机器。
一旦机器启动并运行,我们要做的第一件事就是确定我们有一个受 web 应用程序防火墙保护的网站。我们有几种方法可以做到这一点,每种方法都取得了不同的成功。我们将尝试的第一种方法是**Nmap**工具。
一旦机器启动并运行,我们要做的第一件事就是确定我们有一个受 web 应用防火墙保护的网站。我们有几种方法可以做到这一点,每种方法都取得了不同的成功。我们将尝试的第一种方法是**Nmap**工具。
在您的 Kali Linux 机器中,打开终端窗口并输入`nmap –p 80 -–script –http-waf-detect <target IP address>`。此脚本引擎将尝试确定是否存在 web 应用程序防火墙。以下屏幕截图显示了一个示例:
在您的 Kali Linux 机器中,打开终端窗口并输入`nmap –p 80 -–script –http-waf-detect <target IP address>`。此脚本引擎将尝试确定是否存在 web 应用防火墙。以下屏幕截图显示了一个示例:
![Identifying web application firewalls](graphics/477-1_09_31.jpg)
......@@ -269,7 +269,7 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
![Identifying web application firewalls](graphics/477-1_09_32.jpg)
如前一个屏幕截图所示,它检测到脚本正在运行,但不幸的是,没有告诉我们是否有 WAF 正在运行。因此,我们将研究另一种工具。在卡利,我们有一个工具。导航至**应用程序****卡利****IDS/IPS 标识****Wafw00f**,如下图所示:
如前一个屏幕截图所示,它检测到脚本正在运行,但不幸的是,没有告诉我们是否有 WAF 正在运行。因此,我们将研究另一种工具。在卡利,我们有一个工具。导航至**应用****卡利****IDS/IPS 标识****Wafw00f**,如下图所示:
![Identifying web application firewalls](graphics/477-1_09_33.jpg)
......@@ -311,28 +311,28 @@ OWASP 小组还有一个名为 WebGoat 的优秀教程。有关本教程的更
![Penetrating web application firewalls](graphics/477-1_09_40.jpg)
再次我们成功了。现在我们有了一个未检测到的 XSS 和 SQL 注入字符串。当然,事实是我们已经提交了这些字符串,所以有人可能会做他们的家庭作业,然后当您阅读本书时,我们会被检测到。如果发生这种情况,我们的工作就是继续处理不同的事情,直到找到一个可行的。此外,这可能会让我们通过 WAF,这取决于应用程序开发人员是否使用了安全编码准则或最佳实践。欢迎来到专业安全测试的世界!
再次我们成功了。现在我们有了一个未检测到的 XSS 和 SQL 注入字符串。当然,事实是我们已经提交了这些字符串,所以有人可能会做他们的家庭作业,然后当您阅读本书时,我们会被检测到。如果发生这种情况,我们的工作就是继续处理不同的事情,直到找到一个可行的。此外,这可能会让我们通过 WAF,这取决于应用开发人员是否使用了安全编码准则或最佳实践。欢迎来到专业安全测试的世界!
# 工具
到目前为止,在这本书中,我们还没有专门设置工具的主题点。在大多数情况下,我们仍然以流程为中心,并在每章中讨论了一些工具。对于 web 应用程序测试,这是另一回事。正如您在本章中所看到的,与 web 应用程序交互的输入和方式多种多样,这就是这种测试形式的挑战。因此,通常最好使用工具获取批量数据,然后手动调查批量数据的感兴趣区域。那里有大量的工具,我们将不在这里讨论它们。
到目前为止,在这本书中,我们还没有专门设置工具的主题点。在大多数情况下,我们仍然以流程为中心,并在每章中讨论了一些工具。对于 web 应用测试,这是另一回事。正如您在本章中所看到的,与 web 应用交互的输入和方式多种多样,这就是这种测试形式的挑战。因此,通常最好使用工具获取批量数据,然后手动调查批量数据的感兴趣区域。那里有大量的工具,我们将不在这里讨论它们。
我们喜欢使用的一个既有免费版本又有商业版本的工具是**Burp Suite**。我们喜欢它,因为它允许我们在测试时做各种各样的事情,我们也喜欢商业版的价格非常合理。您可以在[找到关于该工具的信息 http://www.portswigger.net](http://www.portswigger.net) 。免费版本也可以在 Kali Linux 发行版中找到。要访问该工具,请导航到**应用程序****Web 应用程序****Web 应用程序 Fuzzers****burpsuite**打开该工具。以下屏幕截图显示了工具菜单的示例:
我们喜欢使用的一个既有免费版本又有商业版本的工具是**Burp Suite**。我们喜欢它,因为它允许我们在测试时做各种各样的事情,我们也喜欢商业版的价格非常合理。您可以在[找到关于该工具的信息 http://www.portswigger.net](http://www.portswigger.net) 。免费版本也可以在 Kali Linux 发行版中找到。要访问该工具,请导航到**应用****Web 应用****Web 应用 Fuzzers****burpsuite**打开该工具。以下屏幕截图显示了工具菜单的示例:
![Tools](graphics/477-1_09_41.jpg)
正如前面的屏幕截图所示,该工具具有许多特性,可以在 web 应用程序测试方面为我们提供帮助。
正如前面的屏幕截图所示,该工具具有许多特性,可以在 web 应用测试方面为我们提供帮助。
# 总结
在本章中,我们讨论了 web 服务器和 web 应用程序的评估。本章以讨论 OWASP 前十名开始。在讨论之后,我们使用了 WebGoat 工具,并执行了一些课程,展示了 web 应用程序测试的概念和技术。
在本章中,我们讨论了 web 服务器和 web 应用的评估。本章以讨论 OWASP 前十名开始。在讨论之后,我们使用了 WebGoat 工具,并执行了一些课程,展示了 web 应用测试的概念和技术。
在使用 OWASP 前十名之后,我们研究了在我们和目标之间识别 web 应用程序防火墙的方法。我们使用 wafw00f 工具来潜在地检测所部署的保护类型。
在使用 OWASP 前十名之后,我们研究了在我们和目标之间识别 web 应用防火墙的方法。我们使用 wafw00f 工具来潜在地检测所部署的保护类型。
一旦我们了解了如何检测 WAF,我们就讨论了如何穿透它。我们研究了模糊处理的方法,我们可以使用这些方法来尝试通过 WAF 提供的保护。我们将示例字符串提交到 ModSecurity 演示站点,并使用 SQL 注入字符串和 XSS 字符串成功地规避了检测。
最后,我们在本章结尾讨论了 web 测试,特别是 web 应用程序测试时对工具的需求。
最后,我们在本章结尾讨论了 web 测试,特别是 web 应用测试时对工具的需求。
本章到此结束。您现在已经练习了 web 应用程序攻击以及检测和规避防火墙的方法。
本章到此结束。您现在已经练习了 web 应用攻击以及检测和规避防火墙的方法。
在下一章中,我们将介绍平面网络和内部网络的测试。
\ No newline at end of file
# 第 10 章测试平面和内部网络
# 十、测试平面和内部网络
在本章中,您将学习在网络平坦时评估网络的技术,也就是说,我们与目标之间没有任何关系。这使我们的任务容易得多;此外,网络内部通常是最受信任的位置,因此,它提供的阻力最小,尤其是在第二层和物理**媒体访问控制(MAC)**地址的分配方面。在本章中,我们将讨论以下主题:
......@@ -70,7 +70,7 @@ ovaldi –m –a xml –x test.html
```
如果你得到了一个应用程序初始化错误,那么你必须下载正确的 Visual C++平台来为你的 OS 版本和可能的.NET 4 包下载。这是使用 Windows 的缺点之一,尤其是在开源工具方面。当然,在 UNIX 和 Linux 中,您可能会遇到与库依赖性和其他挑战相同的问题。更多信息,请参阅`README`文件。该命令使用散列验证定义文件是否已损坏。
如果你得到了一个应用初始化错误,那么你必须下载正确的 Visual C++平台来为你的 OS 版本和可能的.NET 4 包下载。这是使用 Windows 的缺点之一,尤其是在开源工具方面。当然,在 UNIX 和 Linux 中,您可能会遇到与库依赖性和其他挑战相同的问题。更多信息,请参阅`README`文件。该命令使用散列验证定义文件是否已损坏。
以下屏幕截图显示了运行命令时的初始结果示例:
......@@ -98,11 +98,11 @@ ovaldi –m –a xml –x test.html
## 无凭证扫描
当我们在内部测试中使用漏洞扫描器时,第一次扫描将没有凭证,因此我们将研究 Kali Linux 中的工具来实现这一点。通过导航到**应用程序****Kali Linux****漏洞分析**位置,可以找到 Kali Linux 中的漏洞扫描程序。在这个位置,我们可以使用许多工具进行漏洞扫描。以下屏幕截图显示了一个示例:
当我们在内部测试中使用漏洞扫描器时,第一次扫描将没有凭证,因此我们将研究 Kali Linux 中的工具来实现这一点。通过导航到**应用****Kali Linux****漏洞分析**位置,可以找到 Kali Linux 中的漏洞扫描程序。在这个位置,我们可以使用许多工具进行漏洞扫描。以下屏幕截图显示了一个示例:
![Scanning without credentials](graphics/477-1_10_13.jpg)
我们将使用的扫描仪是 OpenVAS 扫描仪。当您第一次开始使用 OpenVAS 时,需要执行许多步骤。第一步是导航到**应用程序****卡利 Linux****漏洞分析****OpenVAS****初始设置**。这将下载所需的所有插件,并需要一段时间才能完成。加载工具后,将要求您输入密码;默认用户为`admin`,您可以输入自己选择的密码。
我们将使用的扫描仪是 OpenVAS 扫描仪。当您第一次开始使用 OpenVAS 时,需要执行许多步骤。第一步是导航到**应用****卡利 Linux****漏洞分析****OpenVAS****初始设置**。这将下载所需的所有插件,并需要一段时间才能完成。加载工具后,将要求您输入密码;默认用户为`admin`,您可以输入自己选择的密码。
接下来需要做的是打开浏览器并连接到工具的界面。在浏览器中,输入`https://127.0.0.1:9392`打开 OpenVAS。以下屏幕截图显示了一个示例:
......@@ -321,20 +321,20 @@ netsh firewall show allowedprogram
![Enhanced Mitigation Experience Toolkit](graphics/477-1_10_34.jpg)
如之前的屏幕截图所示,在此配置中,有三个应用程序已添加到 EMET 工具中。这些应用程序将在加垫片的环境中运行,以防止它们受到危害。EMET 工具还有许多应用程序已设置为监视。
如之前的屏幕截图所示,在此配置中,有三个应用已添加到 EMET 工具中。这些应用将在加垫片的环境中运行,以防止它们受到危害。EMET 工具还有许多应用已设置为监视。
以下屏幕截图显示了其中一些示例:
![Enhanced Mitigation Experience Toolkit](graphics/477-1_10_35.jpg)
您还可以添加需要受 EMET 工具保护的应用程序。要查看用户添加了哪些应用程序,可以在命令提示窗口中键入以下内容:
您还可以添加需要受 EMET 工具保护的应用。要查看用户添加了哪些应用,可以在命令提示窗口中键入以下内容:
```
C:\Program Files (x86)\EMET\EMET_conf --list
```
此命令将显示已添加且当前受 EMET 工具保护的应用程序。以下屏幕截图显示了一个示例:
此命令将显示已添加且当前受 EMET 工具保护的应用。以下屏幕截图显示了一个示例:
![Enhanced Mitigation Experience Toolkit](graphics/477-1_10_36.jpg)
......
# 第 11 章攻击服务器
# 十一、攻击服务器
在本章中,我们将确定用于攻击服务和服务器的方法。这样做的好处是,我们知道服务器必须让服务运行,更重要的是,让套接字处于侦听状态,准备好接受连接。此外,这意味着服务器坐在那里,等待我们攻击它。这对我们有好处,因为我们已经在[第 9 章](09.html "Chapter 9. Assessment of Web Servers and Web Applications")*Web 服务器和 Web 应用程序评估*中介绍了这一点。我们将要看到的最常见的攻击向量是在 Web 服务器上运行的 Web 应用程序。我们不打算在这里再次讨论这一点;相反,我们将重点关注在我们遇到的服务器平台上可以攻击的其他东西。在本章中,我们将讨论以下主题:
在本章中,我们将确定用于攻击服务和服务器的方法。这样做的好处是,我们知道服务器必须让服务运行,更重要的是,让套接字处于侦听状态,准备好接受连接。此外,这意味着服务器坐在那里,等待我们攻击它。这对我们有好处,因为我们已经在[第 9 章](09.html "Chapter 9. Assessment of Web Servers and Web Applications")*Web 服务器和 Web 应用评估*中介绍了这一点。我们将要看到的最常见的攻击向量是在 Web 服务器上运行的 Web 应用。我们不打算在这里再次讨论这一点;相反,我们将重点关注在我们遇到的服务器平台上可以攻击的其他东西。在本章中,我们将讨论以下主题:
* 服务器的通用协议和应用程序
* 服务器的通用协议和应用
* 数据库评估
* 操作系统平台细节
本章将为我们提供有关如何瞄准并希望穿透测试时遇到的服务器的信息。由于目标是服务器,我们可能通过操作系统漏洞或漏洞获得访问权限。不幸的是,这种情况越来越少见。微软和其他供应商已经做好了准备,针对操作系统的攻击载体并没有死亡,但它们可以被视为生命支持。因此,我们希望将重点放在服务器上运行的协议和应用程序上,因为它们通常会为我们提供成功攻击的最佳机会。
本章将为我们提供有关如何瞄准并希望穿透测试时遇到的服务器的信息。由于目标是服务器,我们可能通过操作系统漏洞或漏洞获得访问权限。不幸的是,这种情况越来越少见。微软和其他供应商已经做好了准备,针对操作系统的攻击载体并没有死亡,但它们可以被视为生命支持。因此,我们希望将重点放在服务器上运行的协议和应用上,因为它们通常会为我们提供成功攻击的最佳机会。
# 服务器通用协议及应用
在本节中,我们将介绍服务器上常见的一些更常见的协议和应用程序
在本节中,我们将介绍服务器上常见的一些更常见的协议和应用。
## 网络
同样,我们已经介绍了这一点,但它仍然是服务器上最常见的应用程序之一,也是我们潜在的攻击载体之一。当涉及到 web 应用程序时,由于应用程序编码中的常见错误,我们可以攻击更多的潜在领域。
同样,我们已经介绍了这一点,但它仍然是服务器上最常见的应用之一,也是我们潜在的攻击载体之一。当涉及到 web 应用时,由于应用编码中的常见错误,我们可以攻击更多的潜在领域。
## 文件传输协议
......@@ -103,7 +103,7 @@ nc –l –p 2048 > trophy.txt.
如前一个屏幕截图所示,我们已成功传输了一个文件。重要的是要记住,这可能是任何文件。要求是找到弱过滤规则,然后利用它为我们带来好处。
在本书中,我们讨论了如何识别漏洞,并在许多场合讨论了如何识别漏洞,这一点在这里也适用。FTP 服务器是一个软件,因此确实存在漏洞。事实上,我们使用的 FTP 服务器版本 3com Daemon 中确实存在可利用的漏洞。然而,由于这是我们的测试实验室,我们在很大程度上控制着机器上发生的事情以及在这些机器上运行的应用程序
在本书中,我们讨论了如何识别漏洞,并在许多场合讨论了如何识别漏洞,这一点在这里也适用。FTP 服务器是一个软件,因此确实存在漏洞。事实上,我们使用的 FTP 服务器版本 3com Daemon 中确实存在可利用的漏洞。然而,由于这是我们的测试实验室,我们在很大程度上控制着机器上发生的事情以及在这些机器上运行的应用。
我们可以访问漏洞数据库站点([http://www.exploit-db.com](http://www.exploit-db.com) )看看我们指的是什么。一旦我们到达该站点,我们将对发现在端口 21 上运行的所有漏洞进行搜索。以下屏幕截图显示了搜索结果的示例:
......@@ -320,7 +320,7 @@ WindowsServer 2008 和 2012 服务器代表了微软安全的不同方法,因
![Windows Server 2008 and 2012](graphics/477-1_11_40.jpg)
正如前面的截图所示,在漏洞数据库中搜索 64 位漏洞时,只返回了六个结果。这是一个很好的迹象,表明微软最新版本在编写漏洞攻击代码方面面临挑战;因此,破坏这些操作系统的更常见方法是通过配置错误或计算机上运行的应用程序
正如前面的截图所示,在漏洞数据库中搜索 64 位漏洞时,只返回了六个结果。这是一个很好的迹象,表明微软最新版本在编写漏洞攻击代码方面面临挑战;因此,破坏这些操作系统的更常见方法是通过配置错误或计算机上运行的应用。
## Unix
......
# 第 12 章探索客户端攻击向量
# 十二、探索客户端攻击向量
在本章中,我们将确定用于攻击客户端的方法。与我们的服务器不同,客户端不提供服务;因此,让客户机等待我们攻击它并不是一项简单的任务。相反,我们将使用技术让客户来找我们。在本章中,我们将讨论以下主题:
......@@ -23,7 +23,7 @@
## 诱饵
使用诱饵概念,我们仍在试图诱骗客户来找我们,但我们不会只是等待他们来取某种形式的诱饵。相反,我们向客户发送某种形式的通信,然后等待,看看他们是否被诱骗而跟随我们的钩子。在这个场景中,我们有三种主要方法,它们是电子邮件、web 和 USB 媒体。这也是网络钓鱼和鱼叉式网络钓鱼中使用的方法。在每种方法中,我们都会向潜在的受害者发送一封电子邮件,看看他们是否会点击我们发送给他们的链接。如果他们真的点击了链接,我们会让他们来找我们,或者在他们的系统上运行应用程序,并利用这些来发动我们的攻击。由于我们正在虚拟笔测试环境中工作,因此我们可以控制攻击的客户端。因此,这是一个在我们的范围内进行试验的问题,看看什么有效,什么无效。如果允许我们在工作范围内进行客户端测试,我们可以尝试发送网络钓鱼电子邮件和其他社会工程方法,看看是否能够诱使员工落入我们的陷阱。
使用诱饵概念,我们仍在试图诱骗客户来找我们,但我们不会只是等待他们来取某种形式的诱饵。相反,我们向客户发送某种形式的通信,然后等待,看看他们是否被诱骗而跟随我们的钩子。在这个场景中,我们有三种主要方法,它们是电子邮件、web 和 USB 媒体。这也是网络钓鱼和鱼叉式网络钓鱼中使用的方法。在每种方法中,我们都会向潜在的受害者发送一封电子邮件,看看他们是否会点击我们发送给他们的链接。如果他们真的点击了链接,我们会让他们来找我们,或者在他们的系统上运行应用,并利用这些来发动我们的攻击。由于我们正在虚拟笔测试环境中工作,因此我们可以控制攻击的客户端。因此,这是一个在我们的范围内进行试验的问题,看看什么有效,什么无效。如果允许我们在工作范围内进行客户端测试,我们可以尝试发送网络钓鱼电子邮件和其他社会工程方法,看看是否能够诱使员工落入我们的陷阱。
这最好用一个例子来说明,所以我们现在就来做。我们需要 Kali Linux 机器和受害者机器。对于本书中的示例,我们将使用 Windows7 机器作为受害者机器。我们将使用的工具是 Dave Kennedy 开发的社会工程工具包;您可以从[下载 http://www.trustedsec.com](http://www.trustedsec.com) 。这是一个特殊的工具,有助于客户端攻击。我们将为第一个示例探索 java 攻击向量。
......
# 第 13 章建立完整的网络范围
# 十三、建立完整的网络范围
在本章中,我们将把所有组件放在一起,并讨论可以支持本书中所述场景的体系结构。在本章中,我们将讨论以下主题:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册