我有一个简单的方法,在四个子网上使用来确定哪些注册的 IP 实际上是启动并处于活动状态,哪些可以删除。
最初,我使用此命令遍历域名列表:
sudo nmap -sS -O -v oN $filename $name
$filename
是我的该 IP 的输出文件,也是$name
读入的域名。
从该命令中,对于所有报告“主机关闭”的 IP,我运行以下命令:
sudo nmap -Pn -sS -O -v -oN $filename $name
请注意,这里唯一的区别是我现在假设主机已启动,只是为了看看返回了什么。
然而,到目前为止,我见过的所有情况下,所有被扫描的端口都被过滤了,因为主机是假定我无法验证它是否真的是第二次扫描运行后。
还有其他想法吗?
答案1
1)希望您不需要被动地收集这些信息。
您可以使用 tcpdump、wireshark、防火墙日志等工具监听流量......随着时间的推移,在系统传输数据或进行其他操作时收集信息。
2)开关
如果你有整洁的开关,他们可能会告诉你很多。
3)地址解析协议
防火墙系统可能仍会响应 ARP 请求,因此您可以让它们显示自己。您真的只需要知道 IP 正在被使用,对吗?如果它会响应任何事情,就不需要知道。
也许这会有用...
# arping -I enp0s31f6 192.168.1.1
ARPING 192.168.1.1 from 192.168.1.122 enp0s31f6
Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E] 2.143ms
Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E] 2.011ms
Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E] 2.006ms
Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E] 2.090ms
^CSent 4 probes (1 broadcast(s))
Received 4 response(s)
或者通过使用 nmap 或其他方式尝试连接,然后同时使用 wireshark 等记录 ARP 回复......
最后,nmap 有 Arp 模式。我从未尝试过。
https://nmap.org/book/nping-man-arp-mode.html
4)DHCP
如果任何地址是 DHCP 地址,则 DHCP 租约将显示其上次续订的时间。
答案2
如果 Nmap 报告“主机宕机”,那么你可以假设没有主机使用该 IP 地址。为默认主机发现会从绝大多数联网系统获得响应,对于直接连接(相同网络链路)的系统来说,效果会更好,因为使用了 ARP 探测,这是通过以太网链路进行 IP 通信的先决条件。也就是说,如果它不响应 ARP 请求,它就不能拥有 IP 地址。
你说,“由于主机被假定为处于启动状态,我没有办法验证它是否真的处于启动状态”,但事实是,它可能没有启动。事实上,如果所有端口都被过滤,它几乎肯定处于关闭状态。无论出于何种目的,没人愿意沟通使用该 IP 地址,这就是“关闭”的全部含义。
最后,如果您允许 Nmap 通过在命令行或通过-iL
输入文件选项提供多个目标规范来并行扫描主机,而不是使用 shell 循环逐个扫描每个主机,您的扫描速度将大大加快。即使您使用后台运行 ( &
) 来启动并行nmap
进程,也无法超越 Nmap 自身的自适应并行性。