Env- Centos 7,nmap 6.40
当前,我正在尝试通过nmap命令实用程序来获取IP的一些列表的MAC / HW地址,并以root用户的身份正常运行。
以root用户身份
nmap -sP -PE -iL <list-of-IPs>
于EDT 2018-06-19 07:05开始Nmap 6.40(http://nmap.org) 192.168.xx.xx的Nmap扫描报告 主机启动(延迟0.0015秒)。 MAC地址:XX:XX:XX:XX:XX:XX
以非root用户身份
nmap -sP -PE -iL <list-of-IPs>
警告:您不是root用户-使用TCP pingscan而不是ICMP
在美国东部时间2018-06-19 07:19启动Nmap 6.40(http://nmap.org) 注意:主机似乎掉线了。如果确实启动,但阻塞了我们的ping探针,请尝试-Pn 已完成Nmap:在2.01秒内扫描了1个IP地址(0台主机已启动)
请求您的建议/帮助,如何通过普通用户实现相同建议。
谢谢
答案 0 :(得分:2)
可以以非root用户身份运行nmap
。 This Wiki非常不错地介绍了如何设置所有内容以使其以非特权用户身份运行。链接的教程还针对Ubuntu和Red Hat系统对此进行了描述,由于您使用的是CentOS,因此对您来说应该是有益的。
我认为牢记此安全警告很重要:
警告:这很危险。 Nmap脚本引擎(NSE)允许脚本嗅探网络,更改防火墙规则和接口配置或利用本地主机上的漏洞。聪明的人可能会使用Nmap和NSE升级到完整的root特权,尤其是在功能增强的情况下。如果您不了解这些风险,请不要这样做。
Wiki的摘要:
1。限制对某些组的访问,例如adm
。确保使用nmap
的正确位置。就我而言,这是/usr/bin/nmap
:
sudo chgrp adm /usr/bin/nmap
sudo chmod 750 /usr/bin/nmap
2。确保已安装setcap
命令(more information about capabilities here):
sudo yum install libcap
3。现在,设置功能。再一次,请确保使用正确的位置。
sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip /usr/bin/nmap
4。最后,您可以以非特权用户身份运行nmap
。但是,您必须明确定义您要这样做。您可以将其定义为nmap
nmap --privileged -sP -PE -iL <list-of-IPs>
或作为环境变量:
export NMAP_PRIVILEGED=""
编辑:我不完全知道为什么这个答案会被否决,因为这可能是该问题的一个答案(尽管该问题当然更适合于超级用户或Unix&Linux Stack Exchange)。我在以下添加和不添加--privileged
的情况下添加了自己系统的结果:
$ nmap -sP -PE 192.168.0.1
Warning: You are not root -- using TCP pingscan rather than ICMP
Starting Nmap 7.60 ( https://nmap.org ) at 2018-06-20 08:52 CEST
Nmap scan report for <HOST NAME> (192.168.0.1)
Host is up (0.0011s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
$ nmap --privileged -sP -PE 192.168.0.1
Starting Nmap 7.60 ( https://nmap.org ) at 2018-06-20 08:52 CEST
Nmap scan report for <HOST NAME> (192.168.0.1)
Host is up (0.0014s latency).
MAC Address: XX:XX:XX:XX:XX:XX (<MANUFACTURER NAME>)
Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds
答案 1 :(得分:1)
Nmap必须以root用户身份运行才能检索此信息。幸运的是,Linux系统上还有其他MAC地址信息源:系统的ARP表。尝试联系IP地址(使用Nmap或诸如ping
之类的其他工具)后,运行arp -n
以打印IP到MAC地址映射表。