为高级渗透测试构建虚拟渗透实验室(三)
原文:
annas-archive.org/md5/5AF1EAA721331A5C7E465DF911DFDC6C译者:飞龙
第十三章:构建完整的网络范围
在本章中,我们将把所有组件放在一起,并讨论可以支持我们在整本书中涵盖的场景的架构。在本章中,我们将讨论以下主题:
-
创建分层架构
-
集成诱饵和蜜罐
-
攻击网络范围
-
记录攻击数据以进行进一步的培训和分析
本章将为我们提供一个完整的架构,我们可以用来进行测试。这个设计将允许我们插入可能需要的任何组件。此外,它将为您提供测试可能需要的所有类型的测试的能力。
创建分层架构
正如我们在整本书中讨论的那样,我们创建的范围的目标是提供能力,以磨练和提高我们的技能,这样当我们上线时,我们已经在客户可能拥有的许多类似环境中进行了练习。
架构交换
利用 VMware Workstation,我们可以利用其创建多个不同交换机的能力,这将允许我们在构建或测试范围时执行各种场景。
分割架构
我们的方法是创建一个分段架构,利用虚拟化框架内的交换机选项。此外,我们希望构建不同类型的段,以便我们可以测试平面和分层网络的组合。我们在整本书中多次讨论了这些架构。我们提出的架构范围的示例如下图所示:
公共 DMZ
对前面的图表进行审查,我们可以看到我们的设计可以探索多种不同的架构。我们将讨论的第一个是公共 DMZ;当我们的内部网络和外部互联网之间有一个缓冲区时,就会创建这种情况。我们认为它是公共的,因为大部分时间都可以让任何想使用那里运行的服务的人访问。公共 DMZ 的位置位于周界或筛选路由器和通常运行我们防火墙软件的堡垒主机之间。对于我们的示例,这将连接到 VMnet2 子网。
此配置的示例如下图所示:
这种方法的问题在于公共 DMZ 只受筛选路由器保护,因此容易受到攻击;因此,解决这个问题的一个潜在解决方案是移动 DMZ。
私人 DMZ
作为解决公共 DMZ 保护问题的解决方案,我们可以使用私人 DMZ 或单独的子网 DMZ,有时也称为。拥有单独子网 DMZ 的概念是为公共 DMZ 提供额外的保护层。此外,这种配置还有一个额外的好处;如果在 DMZ 中通信被 compromise,那么被 compromise 的只是通过该 DMZ 传递的数据。在公共 DMZ 中情况并非如此,因为内部和外部网络之间的通信经过公共 DMZ,因此如果在该 DMZ 中有任何问题,那么数据也会受到影响。
此配置的示例如下图所示:
如前面的图表所示,我们现在有两层防御来保护放置在私人 DMZ 中的机器。话虽如此,这种方法也有一个缺点,那就是我们允许我们的公共服务通过防火墙进入。因此,带宽被所有来自互联网的流量共享。我们将在下一节中探讨这个问题的潜在解决方案。
诱饵 DMZ
正如我们之前提到的,对于私有或独立服务的子网配置,我们必须允许流量进入我们的第二层防御。现在我们将讨论诱饵 DMZ 的概念。通过这个概念,我们将公共 DMZ 保持原样,然后只在该段内放置监控设备,因为我们希望配置规则以警报我们接收到的任何不需要的流量。例如,如果我们看到任何 80 端口的目标流量,那么我们知道这是恶意的,因此我们会生成警报。
这种配置的另一个好处是,我们可以在防火墙内部为用户绑定端口,然后只在外部接口上绑定最少的端口。这种示例如下图所示:
前面图表中的架构的一个优势是,由于与公共 DMZ 中的服务之间的流量不与来自互联网的主要流量共享,因此网络的性能往往会提高。正如我们在整本书中都集中攻击一样,我们不会从防御的角度来讨论这些优势。然而,对于那些想要了解更多的人,可以查看我创建的高级安全培训中心部分中的高级网络防御课程。您可以在以下链接阅读更多:www.eccouncil.org/Training/advanced-security-training/courses/cast-614。
集成诱饵和蜜罐
在网络上部署蜜罐和诱饵的流行度不断增长。因此,我们希望在我们的架构中部署这些,以便我们可以看到它们的反应以及我们在遇到它们时可以使用的指示。
我们可能会遇到许多不同的蜜罐,因此我们需要查看它们所表现出的特征。最好的想法是,将会有一些端口显示为打开;然而,当您连接到它们时,它们将不会如预期般响应。
我们将要看的第一个蜜罐是由Marcus Ranum多年前创建的,当时 Back Orifice 工具正在感染互联网上的机器。该工具现在已不再可用,但您可以在互联网上搜索,应该能够找到它。该工具称为BackOfficer Friendly,它的占用空间很小,但在蜜罐的角色中非常有效。该工具允许您选择一些端口,它将监听连接。这些选项的示例如下截图所示:
正如前面的截图所示,我们已经将所有端口设置为蜜罐监听。我们没有选择Fake Replies选项;这是因为如果设置了此选项,横幅将暴露蜜罐。现在我们已经让蜜罐监听这一系列端口,我们将扫描它并看看在扫描时它是什么样子。
使用 Nmap 扫描机器后的结果示例如下截图所示:
正如前面的截图所示,我们在机器上打开了这些端口,因此我们希望进一步探索。首选的方法是手动连接到端口并获取这些端口的横幅,因为如果我们扫描这些端口,它们将报告为tcpwrapped;因此,我们将手动查看这些端口。我们有许多方法可以用来连接到这个端口,在本书的示例中,我们将使用netcat。在终端窗口中,输入nc <target> 21以连接到 FTP 服务器;这个结果的示例如下截图所示:
如前面的屏幕截图所示,netcat命令什么也没做,只是返回一个命令提示符,这意味着连接不成功;然而,当我们使用 telnet 时,连接建立然后立即关闭。这些都是您在测试中要寻找的类型,也就是说,寻找那些表现不正常的事物。当我们扫描机器时,我们看到有开放的端口;然而,当我们尝试连接到这些已识别的开放端口时,我们并不成功。这不应该发生,因此是可疑的。重要的是要记住,如果它即使有开放的端口也不表现正常,那么您很有可能遇到了一个蜜罐。那蜜罐本身呢?以下屏幕截图显示了一个示例:
如前面的屏幕截图所示,该工具显示了连接尝试;即使用户没有获得连接,蜜罐仍然记录了它。
我们将看一下的下一个蜜罐是Labrea蜜罐。Labrea 提供了许多机制,可用于恶意软件与机器通信。Labrea 工具作为 Debian 软件包提供。由于我们在本书中多次使用了 Debian,因此我们现在将使用它来配置和设置 Labrea 蜜罐,以便在测试时识别它的外观。
在 Debian 机器的终端窗口中,输入apt-get install labrea来安装软件包。软件安装完成后,您可以查看配置文件。由于安装软件包后可能不在同一位置,您可以输入find / -name labrea.conf来定位文件,然后在您选择的编辑器中打开它。无需更改任何配置,因为一旦安装软件包,它就已经设置好并准备运行了。
注意
需要注意的是,Labrea 工具将占用网络上未使用的任何 IP 地址。因此,您可能希望将一系列 IP 地址配置为在配置文件中排除的 IP 地址。
当您准备在终端窗口中运行该工具时,输入labrea –v –i eth0 -sz -d -n <target> -o。我们不会复习这些选项,但鼓励您自行复习。我们已将输出设置为写入屏幕,因此我们将看到 Labrea 工具拦截的任何输出。以下屏幕截图显示了该命令的输出的一个示例:
在前面的屏幕截图中需要注意的一点是,配置文件已设置为只响应1-3000端口。接下来,我们需要看一下蜜罐在网络上的响应。我们将使用 Kali Linux 机器;在 Kali 的终端窗口中,输入ping –c 7 <target>,其中目标是您的目标网络的任何 IP 地址。
例如,对于192.168.177网络的示例如下屏幕截图所示:
如前面的屏幕截图所示,第一个 ping 请求返回为不可达。因此,那里没有主机。机器在第四个 ping 时做出响应;这是来自 Labrea 蜜罐的响应。我们可以通过查看我们启动程序的终端窗口来验证这一点。以下屏幕截图显示了一个示例:
为了看到 Labrea 蜜罐的真正威力,我们将使用 Kali Linux 发行版中的一个工具来 ping 一系列 IP 地址。在 Kali Linux 终端中,输入fping –g <target IP block>。以下屏幕截图显示了该命令部分结果的一个示例:
这表明 Labrea 蜜罐已经在192.168.177子网上创建了所有可能机器的诱饵存在;这些机器将看起来是活动的机器。这是为了引诱对这些 IP 地址的连接,因为它们可能是恶意的。
Labrea 蜜罐使用一种称为tarpitting的技术,这会导致连接花费很长时间。正如我们已经展示的,有许多诱饵机器,我们现在将扫描其中一个。在 Kali 机器上,输入nmap –sS <目标 IP 地址> -Pn。
扫描其中一个诱饵机器的结果示例如下截图所示:
我们想要注意的另一个反应是使用netcat连接到机器;我们现在将尝试这样做。在 Kali 机器上,输入nc <目标 IP 地址> 445。当我们手动连接时的结果示例如下截图所示:
正如前面的截图所示,每个连接都被蜜罐检测到并放入了 tarpit,使其花费更多时间并将通信困住。要了解更多关于 Labrea 的信息,请参考sourceforge.net/projects/labrea/。
我们将要查看的下一个蜜罐是商业产品KFSensor。您可以在www.keyfocus.net/kfsensor/了解更多信息。该网站将要求您在上面注册以下载该工具。下载后,您需要将其安装在 Windows 系统上。该工具的界面示例如下截图所示:
正如前面的截图所示,我们有许多端口通过蜜罐是开放的,所以下一步是检查并查看一旦被扫描会返回什么。记住,我们希望进行测试,以便在遇到这个蜜罐的网络时知道可以期待什么。此外,我们希望确保记录可以帮助我们确定网络上是否部署了 KFSensor 的工件。
针对蜜罐的Nmap扫描的示例如下截图所示:
正如前面的截图所示,我们有端口开放,但Nmap报告它们为tcpwrapped。这是我们进行Nmap扫描时的情况,那么在目标上是什么样子呢?此外,蜜罐显示的又是什么样子呢?这方面的示例如下截图所示:
该工具的另一个好处是它还有许多 UDP 端口开放,因此提供了一个非常有效的蜜罐。UDP 端口的示例如下截图所示:
这只是一些可用的许多不同蜜罐的样子,因此,您应该在测试范围内练习不同的蜜罐,并记录它们部署后的行为。
攻击网络范围
正如我们之前提到的,建立我们的渗透测试范围的目标是练习我们的技能。因此,我们需要以攻击我们创建的架构的每个位置和入口为目标。此外,非常重要的是我们练习直接攻击目标,也就是说,在一个扁平的网络上。一旦我们攻击并确定了来自不同类型攻击的目标的反应,我们改变方法,通过分层架构进行攻击,看看反应是什么,并比较不同位置的结果。
记录攻击数据以进行进一步的培训和分析
一旦您建立并攻击了范围,强烈建议您记录攻击,以便您可以用它们来练习,更重要的是用于培训目的。每次进行攻击时,您都在创建非常有价值的数据,应该捕获并再次使用。捕获数据的最简单方法之一是使用 Wireshark。一旦捕获了数据,请保存它,然后您可以使用工具重放捕获的流量。有多种方法可以实现这一点。其中最简单的方法之一是使用tcpreplay工具;它是 Kali Linux 发行版的一部分。此外,如果您不想创建自己的数据,还可以下载许多不同攻击的数据包跟踪。以下是用于重放来自早期 DEFCON 会议之一的文件的命令的示例截图:
对于那些想要使用 GUI 工具的人,有许多选择。一个非常好用的免费工具是 Colasoft 的 Colasoft Packet Player;您可以从www.colasoft.com下载。以下是使用该工具重放 DEFCON 数据包捕获的示例截图:
如前面的截图所示,您可以设置多种不同的播放速度,在Burst模式下,播放速度将尽可能快地处理网络卡的速度。
总结
在本章中,我们讨论了分层架构的创建以及在我们的测试中构建分段网络的必要性。在讨论创建分层架构之后,我们看了一下如何集成诱饵和蜜罐,包括 BackOfficer Friendly 工具,Labrea tarpit 和 KFSensor。
接下来,我们看了一下攻击我们架构的过程,并表达了在添加保护和层之前直接攻击目标的技术,以及在扁平网络上渗透它们的技术。
最后,我们结束了本章,并讨论了记录攻击数据以及使用 tcpreplay 命令行工具和 Colasoft Packet Player GUI 工具在我们的网络上重放我们创建或从互联网上下载的文件。
这结束了本章和本书。请记住,您所做的测试都是为了做好准备。当您建立您的渗透测试实验室时,您正在创建一个可以多年使用来练习技能的环境。一旦架构建立,只需向架构添加不同的设备,作为您练习的目标。祝您在攻陷网络和系统方面好运!