我一直想知道如何使用类似 nmap 的东西准确映射网络并发现网络上的主机,如果这些主机设置了状态防火墙,根据源 IP 地址、端口和传入的序列号过滤数据包数据包。您可以通过使用 Wireshark 或 TCPdump 之类的数据包嗅探器监视网络来获取源端口和 IP 地址,但序列号是不断变化的,您必须正确且准确地计时,这意味着您必须发送一个发现数据包,其序列号恰好比主机收到的最后一个数据包的序列号大 1。当然,您可以对序列号进行暴力破解(不确定如何使用 nmap 执行此操作),但您也希望透明地执行此操作,并且' 事实是,如果您的发现数据包成功到达主机,它的防火墙将过滤掉他们打算接收的更多流量,从而导致他们的一端出现错误并使您的存在至少在某种程度上可见。有没有办法避免这个问题?近年来,nmap 和其他网络扫描仪是否考虑了状态防火墙?
如果设置了状态防火墙,您将如何发现网络上的主机?
如果您可以访问路由器和交换机等设备,或者与神秘设备位于同一子网上的主机,则无论它是否有防火墙,您都可以轻松识别它。
使用上述设备,您可以监控 VLAN 的流量,从而识别其上的所有主机,而无需使用 nmap 等工具探测其中的任何主机。原因是神秘主机最终会发送数据,因此会在此过程中显示其 MAC 和 IP 地址,因此您现在知道它存在,即使它没有响应您之前的探测。
此外,在您的监控过程中,您可以通过查看其网络流量的内容(前提是未加密)来密切关注神秘用户的行为。这可以帮助您识别用户是谁。例如,如果他们使用 telnet,您可以获得他们的用户名(和密码,尽管密码最好别管)。如果流量被加密,您仍然可以查看他们正在访问的站点的目标 IP 地址,然后您可以查找这些地址。
最后,您还可以通过查看捕获的流量来查看他们使用的协议(前提是您用于查看捕获的软件,例如 Wireshark,具有用于所用协议的解码器)。除非神秘用户自定义编写了协议,否则这应该不是问题。
防火墙的好处之一是它们可以使主机或整个网络不可见。这背后的想法是防火墙的所有者可以阻止或允许所需的任何流量。如果主机的防火墙不允许,外部工具将无法让主机响应。该工具不仅需要找到用于流量流的端口,而且还需要欺骗源 IP 地址和允许通过该端口的流量的端口,因为防火墙为特定流量流(IP地址 + 端口号)。
这会使端口扫描之类的事情变得无用。根据您的嗅探器在网络上的位置,您可能能够嗅探网络流量以发现网络上的设备,但这也可能是不可能的。
如果网络所有者这样做是为了防止某人发现网络,那么尝试这样做就是试图绕过网络安全或特别偏离主题的策略。
尽管 nmap 可以做一些事情来“绕过”有状态的防火墙,但它的基本用途是识别正在运行的服务。
是的,我知道它被称为 nmap 是有原因的,但我不相信它的主要用例是映射受防火墙保护的远程网络(相反,您可以使用它来查看给定范围可能暴露的内容 - shodan 的存在部分是因为人们认为暴露的和暴露的往往是不同的)。
如果您在同一个广播域中有一台主机,那么您可以通过生成某种 ARP ping 来枚举所有主机,无论它们是否有防火墙。一种方法是尝试向每个主机发送单个 ICMP 回显请求,然后检查 ARP 表中是否存在实时条目(例如使用ip n)。
如果不在同一个广播域内,那就另当别论了。我猜你可能会混淆 GRE 和 IPIP(有一个很小的机会可以为你做点什么),但总的来说,有状态的防火墙会相当有效地完成他们的工作,并混淆他们试图保护的大部分网络。
也就是说,为了尝试了解网络的深度,查看返回数据包的 TTL 永远不会有什么坏处。
您使用 arp 扫描。由于 arp 数据包永远不会击中 IP 层,因此它们永远不会击中 IP 防火墙。
如果目标与扫描器在同一子网上,IIRC nmap 将默认执行此操作。