为什么当简单的ping成功时,Nmap会报告“Host is down”?
me@computer:~$ ping 123.45.67.89
PING 123.45.67.89 (123.45.67.89) 56(84) bytes of data.
64 bytes from 123.45.67.89: icmp_req=1 ttl=45 time=91.1 ms
64 bytes from 123.45.67.89: icmp_req=2 ttl=45 time=102 ms
64 bytes from 123.45.67.89: icmp_req=3 ttl=45 time=100 ms
^C
--- 123.45.67.894 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 91.136/98.182/102.417/5.022 ms
me@computer:~$ nmap 123.45.67.89
Starting Nmap 5.21 ( http://nmap.org ) at 2014-04-02 14:23 EDT
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.04 seconds
Nmap的“ping探测”是否与命令行ping不同?
最佳答案
Nmap发送许多不同的探针以确定主机是否已启动。在您的特定情况下,因为您运行的Nmap没有root权限,所以它无法发送ICMP Echo请求,这是ping
实用程序使用的。在这种情况下,它会尝试连接到端口80和端口443,如果打开或拒绝连接,则将主机报告为up。您的目标必须具有防火墙,该防火墙会将所有流量丢弃到这些端口。
要允许Nmap查找系统,请尝试使用root权限运行它。 sudo命令经常用于此目的,例如sudo nmap 123.45.67.89
ping
可以发送ICMP数据包,因为它已安装setuid到root,这意味着任何用户可以运行它,但它会以root用户身份运行。 Setuid程序必须非常小心,不要让普通用户通过这个额外的权限获得shell。特别是Nmap无法阻止此权限升级,因此永远不应该使其成为setuid。