为什么在简单的 ping 成功时 Nmap 会报告“主机似乎已关闭”?
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
Run Code Online (Sandbox Code Playgroud)
Nmap 的“ping 探针”与命令行 ping 不同吗?
bon*_*ing 32
Nmap 发送许多不同的探测来确定主机是否已启动。在您的特定情况下,因为您在没有 root 权限的情况下运行 Nmap,它无法发送 ICMP Echo 请求,这是ping实用程序使用的。在这种情况下,它尝试连接到端口 80 和端口 443,如果连接被打开或拒绝,则报告主机已启动。您的目标必须有一个防火墙,它将所有流量丢弃到这些端口。
要让 Nmap 找到系统,请尝试使用 root 权限运行它。该sudo的命令经常用于此目的,例如sudo nmap 123.45.67.89
ping可以发送 ICMP 数据包,因为它安装了setuid到 root,这意味着任何用户都可以运行它,但是当他们这样做时它将以 root 用户身份运行。Setuid 程序必须格外小心,不要让普通用户通过这个额外的权限获得 shell。特别是 Nmap 不能阻止这种权限提升,所以它永远不应该被设置为 setuid。