nmap 无法通过 ping 扫描找到活动主机

aad*_*dam 12 networking ping nmap

我尝试使用 nmap ping 扫描我的本地网络,但它似乎没有找到肯定活着的机器。它响应 ping 但对 ping 扫描进行响应。

ping 结果:

$ ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2): 56 data bytes 64 bytes from 192.168.0.2: icmp_seq=0 ttl=64 time=1.585 ms
Run Code Online (Sandbox Code Playgroud)

和 tcpdump 的输出:

$ tcpdump -i fxp0 -n host 192.168.0.2
12:43:07.624911 IP 192.168.0.222 > 192.168.0.2: ICMP echo request, id 61023, seq 0, length 64
12:43:07.625029 IP 192.168.0.2 > 192.168.0.222: ICMP echo reply, id 61023, seq 0, length 64
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用 nmap 时,尽管收到了响应,它还是看不到它。

$ nmap -sn 192.168.0.2

Starting Nmap 5.61TEST5 ( http://nmap.org ) at 2012-05-13 12:44 CEST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.02 seconds
Run Code Online (Sandbox Code Playgroud)

Tcpdump 输出:

$ tcpdump -i fxp0 -n host 192.168.0.2
12:45:30.742933 IP 192.168.0.222 > 192.168.0.2: ICMP echo request, id 2715, seq 0, length 8
12:45:30.742974 IP 192.168.0.222.36388 > 192.168.0.2.443: S 3607279099:3607279099(0) win 1024 <mss 1460>
12:45:30.743001 IP 192.168.0.222.36388 > 192.168.0.2.80: . ack 3607279099 win 1024
12:45:30.743025 IP 192.168.0.222 > 192.168.0.2: ICMP time stamp query id 45449 seq 0, length 20
12:45:30.743061 IP 192.168.0.2 > 192.168.0.222: ICMP echo reply, id 2715, seq 0, length 8
12:45:30.743097 IP 192.168.0.2.443 > 192.168.0.222.36388: S 2602942480:2602942480(0) ack 3607279100 win 5840 <mss 1460>
12:45:30.743130 IP 192.168.0.222.36388 > 192.168.0.2.443: R 3607279100:3607279100(0) win 0
12:45:30.743134 IP 192.168.0.2.80 > 192.168.0.222.36388: R 3607279099:3607279099(0) win 0
12:45:30.743148 IP 192.168.0.2 > 192.168.0.222: ICMP time stamp reply id 45449 seq 0: org 00:00:00.000, recv 11:04:04.243, xmit 11:04:04.243, length 20
12:45:32.745245 IP 192.168.0.222 > 192.168.0.2: ICMP time stamp query id 48722 seq 0, length 20
12:45:32.745281 IP 192.168.0.222.36389 > 192.168.0.2.80: . ack 3607344634 win 1024
12:45:32.745307 IP 192.168.0.222.36389 > 192.168.0.2.443: S 3607344634:3607344634(0) win 1024 <mss 1460>
12:45:32.745340 IP 192.168.0.2 > 192.168.0.222: ICMP time stamp reply id 48722 seq 0: org 00:00:00.000, recv 11:04:06.245, xmit 11:04:06.245, length 20
12:45:32.745380 IP 192.168.0.2.80 > 192.168.0.222.36389: R 3607344634:3607344634(0) win 0
12:45:32.745401 IP 192.168.0.2.443 > 192.168.0.222.36389: S 2629695507:2629695507(0) ack 3607344635 win 5840 <mss 1460>
12:45:32.745421 IP 192.168.0.222.36389 > 192.168.0.2.443: R 3607344635:3607344635(0) win 0
12:45:32.745431 IP 192.168.0.222 > 192.168.0.2: ICMP echo request, id 38289, seq 0, length 8
12:45:32.745517 IP 192.168.0.2 > 192.168.0.222: ICMP echo reply, id 38289, seq 0, length 8
Run Code Online (Sandbox Code Playgroud)

为什么 nmap在响应请求时说主机似乎关闭了

编辑

地图版本:

$ nmap --version

Nmap version 5.61TEST5 ( http://nmap.org )
Platform: i386-portbld-freebsd7.4
Compiled with: liblua-5.1.5 openssl-0.9.8q libpcre-8.30 libpcap-0.9.8 nmap-libdnet-1.12 ipv6
Compiled without:
Run Code Online (Sandbox Code Playgroud)

可以肯定的是,防火墙中的第一个过滤规则是:

pass quick on fxp0
Run Code Online (Sandbox Code Playgroud)

Jan*_*nen 5

刚刚在我的 OpenBSD 5.1 上尝试过这个。是的,你有 FreeBSD 7.4,但我们谈论的是一个非常相似的野兽。

作为普通用户,即使我的测试机肯定会以普通用户的身份响应 ping,也会为我nmap -sn my.host返回Host seems down

然而,作为根用户,它应该nmap -sn my.host返回Host is up

查看您的提示,您可能还尝试以非 root 用户身份进行 nmap。尝试 nmap 是否以 root 身份运行。

编辑:刚刚启动了我的 FreeBSD 9.0,nmap ping 扫描在非 root 用户下工作正常。


Tom*_*Tom 1

我的第一个观察结果是tcpdump -i fxp0转储到达的数据包fxp0,但是nmap作为用户空间进程运行,因此许多事情可能会阻止 nmap 查看响应。

  1. 例如 netfilter 规则 (user iptables -t filter -n -L)
  2. selinux(没见过这个特别的事情,但是当愚蠢的事情发生时,selinux 总是一个不错的选择
  3. 还要检查 iptables nat 表以确保iptables -t nat -n -L