今天,我们将学习使用 Kali Linux 的 Firewalk 教程。但首先,我们需要了解 Firewalk 的作用以及为什么它对黑客和渗透测试人员很重要。基本上,Firewalk 是一种渗透工具,可用于通过帮助渗透测试人员或黑客发现哪些 IP 协议允许通过网络设备来进行侦察。所讨论的网络设备几乎可以是任何东西,包括(但当然不限于)家用无线路由器、企业级路由器,或者几乎任何带有硬件或软件防火墙的东西。
当然,我相信您会看到能够使用侦察工具戳穿防火墙以查看可以通过的东西的价值。它通过使用指定的协议和端口号发送 TCP 和 UDP 数据包来工作,但它的 TTL(生存时间)值比相关设备多一跳。例如,如果我正在测试距离 3 跳远的防火墙,则数据包的 TTL 将设置为 4。
作为旁注,请了解 TTL 是数据包在被丢弃之前可以由计算机和网络设备转发的跃点数。每次数据包通过设备(例如路由器)时,TTL 值减 1。TTL 机制有助于防止 TCP/IP 模型中的循环缺陷和各种攻击。许多这些缺陷(类似于广播风暴)超出了本指南的范围,但要知道存在一些奇怪的循环错误,这些错误基本上允许永久数据包成倍增加并完全破坏整个网络。TTL 值可以解决这些问题。虽然最大 TTL 值为 255,但大多数操作系统使用的值远小于该值(通常在 32-64 跳范围内)。
无论如何,目标是接收 ICMP 消息。您可能知道,ICMP(Internet 控制消息传递协议)通过 echo-request 和 echo-reply 操作促进 ping。但是,今天我们对 ICMP_TIME_EXCEEDED 消息更感兴趣。你看,如果我们正在测试的设备(例如防火墙)允许流量,我们只会收到这个消息,然后数据包在防火墙的另一端超过了它们的 TTL 值并死掉。另一方面,如果我们根本没有收到任何消息,我们就会知道防火墙是否阻止了我们正在测试的流量类型。
识别网络设备
此时,您可能想知道究竟我们应该如何知道路由器或防火墙是否在我们通往 Internet 的路径中。首先,如果您从专用网络访问公共 Internet,其中一个必须在您的路径中。无论如何,您可能希望在本地网络上测试各种网络设备。考虑一个可以访问公司网络的黑客或渗透测试人员。
测试的第一阶段可能涉及放置“感应器”以感知网络上的其他设备。例如,黑客或渗透测试人员很可能会使用各种类型的扫描仪来识别其他活动主机。也许他们会使用 NMAP 来定位其他设备并查看它们是什么类型的设备。然而,使用 NMAP 作为端口扫描器和 Firewalk 之间有一个主要区别。
区别非常重要,所以要记下。当使用像 NMAP 这样的端口扫描器时,您正在测试查看哪些服务正在单个主机或子网上运行。例如,我可以查看主机 192.168.1.254 是否正在接受端口 20 和 21 上的连接,这表明 FTP 服务正在运行。
但是,当使用 Firewalk 时,您实际上是在测试可以通过设备的流量;不是有问题的设备上实际打开了哪些端口。因此,它是比 NMAP 测试防火墙更有用的工具。
此外,在某些情况下,可能不需要使用 NMAP 来识别设备。此外,请注意,甚至不需要到达最终目的地,因为此工具的最终目标只是查看网络设备是否会转发单个协议。如果您愿意,您可以简单地运行 traceroute 来查看您与最终目的地之间的所有第 3 层转发设备的列表。
什么是第 4 层协议,为什么它们对渗透测试人员很重要?
我希望,作为想要成为黑客和渗透测试员的 IT 和网络工程师,您已经牢牢掌握了 OSI 模型。如果您不这样做,请继续花时间研究一下,因为我们今天无法深入研究它,因为它远远超出了本指南的范围,非常复杂。
不过,我想提请您注意 OSI 模型的第 4 层。我已经提到过 Firewalk 测试以查看哪些第 4 层协议可以通过网络设备,例如防火墙。那么......所有更高级别的协议呢?请记住,OSI 模型的第 4 层是传输层,包括流行的传输协议,例如 TCP、UDP、IPX/SPX、光纤通道、RTP 和 SCTP。
当然,TCP 和 UDP 是最流行和广泛使用的第 4 层协议。不过,我想指出 Firewalk 确实有工具和机制可以在 IP 标头中设置不同的标志,因此您可以测试更高级别的协议。也就是说,它不仅会检查第 4 层协议(如 TCP)是否被转发,还会检查 TCP 是如何转发的,以及允许哪些不同类型的 TCP 数据。
因此,很自然地,您可以测试单个端口或整个端口范围。这使您可以戳防火墙并查看哪些常用服务被阻止,哪些是允许的,例如 HTTP、HTTPS、FTP、TFTP、DNS、SSH、TelNET 以及您能想到的任何其他服务。
Firewalk 语法和选项
Firewalk 有一个相当基本的命令结构,如下所示:
-
firewalk [选项] firewall_or _device_address 指标
此外,您可以附加到命令的选项如下:
-d 1-65535 (34434) –该值表示在渐变阶段的初始目标端口,此时 Firewalk 试图确定为 TTL 设置什么值。
-h -查看帮助屏幕。
-i interface_name –指定在哪个接口上运行 Firewalk。但是,如果您只有一个活动接口,则无需提供此信息。
-n -告诉 Firewalk 不使用 DNS 将主机名解析为 IP 地址。这样做可以通过规避长度 DNS 超时来大大加快扫描速度。
-P 1-2000 (0) -在扫描阶段建立一个“暂停”,这很好,因为它可以防止扫描淹没网络并引起对自己的过多关注——这对于黑客保持低调至关重要。
-p TCP, UDP (UDP) –指定您要测试的协议。
-r - RFC 793 支持。这个标志实际上是相当复杂的,并且在扫描过程中在后台发生了很多事情,所以我们今天将忽略这个选项。当然,我们鼓励您进一步研究它,但要知道它处理的是 SYN/ACK 的内部工作。
-S 1-65535 -此选项可帮助您在一次扫描中指定多个端口,因此您不必运行数十次甚至数百次扫描来测试所有必要的端口。您可以输入端口列表或范围。范围由破折号分隔,而端口列表由逗号分隔。
-s 1-65535 (53) –此值指定扫描的源端口。
-T 1-2000 (2) –设置读取数据包的超时值。将此设置为较低的值可以加快扫描过程,因为它决定了 Firewalk 在超时之前等待的时间。
-t 1-25 (1) –该值表示初始 TTL。如果您已经知道距离目标有多少跳,则可以设置一个 TTL 值,而不需要运行斜坡阶段。
-v -转储程序版本并退出。
-x expire vector (1) – expire vector 是扫描探针将过期的跃点数,超过网关主机。绑定跳数是网关的跳数+过期向量。
使用教程
所以现在我们了解了 Firewalk 是什么,它做了什么,以及它是如何工作的。终于到了查看语法示例的时候了,看看我们如何戳和刺探防火墙,看看哪些流量是允许的,哪些流量是被阻止的。考虑以下示例:
-
firewalk -S1-53 -i eth0 -n -pTCP 10.10.1.1 10.10.0.1
我知道当我们把它们放在一起时,它看起来有点吓人。所以,让我们来看看这个命令一次只做一个选项。首先,请注意,此操作将扫描以查看端口 1-53 是否允许通过地址为 10.10.1.1 的主机接口。在我们的示例中,10.10.1.1 是被扫描的设备,例如防火墙。
另外,请注意该命令指定 TCP 流量。最后,我们要检查主机 10.10.0.1 是否能够通过防火墙发送流量(在端口 1-53 上)。如果您想检查新环境中可用的公共端口,您只需指定您的端口范围(可能是 1-1024,因为这些是众所周知的端口),并将最后一个 IP 地址设置为您的子网中的一个。
最后的想法
Firewalk 是一个非常有用的信息收集工具,它可以消除大量猜测您的流量是否到达正确的目标或服务器的猜测。例如,如果您想使用 Dotdotpwn 对 HTTP 服务器进行模糊测试,但不断收到错误或超时,这可能是因为防火墙或路由器阻止了您的流量。您可以简单地使用 Firewalk 来验证该数据是否允许通过网络设备。
最后,从渗透测试的角度来看,这个工具对于验证和验证非常有用。例如,公司经常针对哪些流量类型不应该被允许通过防火墙策略。此工具将帮助仔细检查防火墙规则是否配置正确。
本文由 华域联盟 原创撰写:华域联盟 » 如何在 Kali 上使用 Firewalk
转载请保留出处和原文链接:https://www.cnhackhy.com/157353.htm