为什么nmap ping扫描不需要root权限



正如我所知,ping是一种需要root权限(设置uid(或CAP_NET_RAW功能的工具。

但我发现,当我启动Nmap ping扫描(-sn(时,不需要特权权限:

# getcap /usr/bin/nmap
# ls -al /usr/bin/nmap 
-rwxr-xr-x 1 root root 2445920 May 28  2016 /usr/bin/nmap
# su -s /bin/bash www-data
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ nmap -sn example.com
Starting Nmap 6.47 ( http://nmap.org ) at 2020-02-17 16:35 CST
Nmap scan report for example.com (93.184.216.34)
Host is up (0.011s latency).
Nmap done: 1 IP address (1 host up) scanned in 11.05 seconds

那么,Nmap的ping扫描是如何工作的呢?为什么ping需要root权限而nmap不需要?

当您以root身份运行Nmap ping扫描时,默认情况下使用ICMP和ACK方法。非root用户将使用connect((方法,该方法尝试连接到机器,等待响应,并在连接建立后立即拆除连接(类似于root用户的SYN/ACK方法,但此方法建立了完整的TCP连接!(

来自nmap网站。

最新更新