在 Ubuntu VMWare VM 上我运行了:
sudo nmap -sP 192.168.0.*
返回:
Starting Nmap 5.00 ( http://nmap.org ) at 2010-12-28 22:46 PST
Host 192.168.0.0 is up (0.00064s latency).
Host 192.168.0.1 is up (0.00078s latency).
Host 192.168.0.2 is up (0.00011s latency).
.
.
.
Host 192.168.0.254 is up (0.00068s latency).
Host 192.168.0.255 is up (0.00066s latency).
因此,nmap 报告子网 192.168.0.* 中的每个 IP 都处于活动状态。问题是我在 192.168.0.* 上只有 4 台活动机器,那么为什么 nmap 报告每个 IP 地址都处于活动状态?
Ubuntu VM 的 IP 地址是 192.168.28.131。从此 VM,我可以 ping 内部子网 192.168.0.* 上的实时系统并获得预期响应。如果我 ping 一台不存在的机器,则无法获得预期的响应。
答案1
尝试 --unprivileged 参数
..喜欢nmap -sP --unprivileged 192.168.0.*
答案2
一些防火墙可以解释这种行为。
它们不会阻止 icmp,而是会响应收到的每个回显请求。
在这种情况下,这可能是由于 VMware 和您使用的虚拟网络类型造成的。
答案3
简短回答
将网络适配器模式切换为桥接。
或者
禁用TCP 确认扫描并ICMP用旗標扫描--unprivileged
。
长答案
请注意,-sP
flag 已更改为-sn
flag。
-sn
flag 通过下列方法检查目标主机是否启动
- nmap 接收ICMP回复ICMP ECHO_REQUEST要求
- nmap 接收ICMP回复ICMP 时间戳请求要求
- nmap 接收TCP 同步/确认回复TCP(端口 443)同步要求
- nmap 接收TCPRST 回复TCP(端口 80)确认要求
如果您从具有 NAT 模式的网络适配器的 VMware 计算机运行 nmap 扫描,则以下三种情况可能会破坏扫描结果:
- ICMP 时间戳请求回复数据包已被过滤 -> 您可能会错过现场主机。
- 网络生成TCP 恢复回复数据包给所有人TCP 确认请求->所有主机似乎都已启动。
- 网络响应所有 ICMP 请求 -> 所有主机似乎都已启动。
参考
nmap 手册页-PA
标志
因此远程主机应该始终以 RST 数据包进行响应,从而在此过程中公开其存在。
nmap 手册页-sA
标志