我有一个文本文件中的远程机器列表。我可以使用 nmap 知道他们的 MAC 地址吗?
11 回答
如果您使用的是 nmap,则 MAC 地址仅在您与目标位于同一网段时可用。如果您以 root 身份运行,较新版本的 nmap 只会向您显示 MAC 地址。
IE:
须藤 nmap -sP -n 192.168.0.0/24
使用snmp-interfaces.nse nmap 脚本(用 lua 编写)获取远程机器的 MAC 地址,如下所示:
nmap -sU -p 161 -T4 -d -v -n -Pn --script snmp-interfaces 80.234.33.182
13:25 完成 NSE,经过 2.69 秒 80.234.33.182 的 Nmap 扫描报告 主机已启动,收到用户设置(0.078 秒延迟)。 扫描于 2014-08-22 13:25:29 Арабское время (зима) 3s 港口国服务原因 161/udp 打开 snmp udp 响应 | snmp接口: | 伦理 | MAC地址:00:50:60:03:81:c9(腾保电信AS) | 类型:ethernetCsmacd 速度:10 Mbps | 状态:上 | 流量统计:发送 1.27 Gb,接收 53.91 Mb | 罗 | 类型:软件环回速度:0 Kbps | 状态:上 |_ 流量统计:发送 4.10 Kb,接收 4.10 Kb
在当前版本的 nmap 中,您可以使用:
sudo nmap -sn 192.168.0.*
这将打印所有可用主机的 MAC 地址。当然提供您自己的网络、子网和主机 ID。
进一步的解释可以在这里找到。
一些脚本可以为您提供所需的内容。如果节点运行 Samba 或 Windows,nbstat.nse 将显示 MAC 地址和供应商。
sudo nmap -sU -script=nbstat.nse -p137 --open 172.192.10.0/23 -oX 172.192.10.0.xml | grep MAC * | awk -F";" {'print $4'}
if $ ping -c 1 192.168.x.x
返回
1 packets transmitted, 1 received, 0% packet loss, time ###ms
那么您可能会使用 arping 返回 MAC 地址,但 ARP 仅适用于您的本地网络,而不适用于互联网。
$ arping -c 1 192.168.x.x
ARPING 192.168.x.x from 192.168.x.x wlan0
Unicast reply from 192.168.x.x [AA:BB:CC:##:##:##] 192.772ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
最后,例如,您可以使用去掉冒号的 AA:BB:CC 来从设备的供应商 ID 中识别设备。
$ grep -i '709E29' /usr/local/share/nmap/nmap-mac-prefixes
709E29 Sony Interactive Entertainment
只有在以下情况下,nmap 才能发现远程目标的 MAC 地址
- 目标与运行 nmap 的机器位于同一链接上,或者
- 目标通过 SNMP、NetBIOS 等泄露这些信息。
如果目标使用 EUI-64 标识符,则 IPv6 出现另一种可能性,则可以从 IP 地址中推断出 MAC 地址。
除了上述可能性之外,没有可靠的方法可以通过网络扫描技术获取远程目标的 MAC 地址。
不使用 nmap ......但这是另一种选择......
arp -n|grep -i B0:D3:93|awk '{print $1}'
我不够酷,无法对帖子发表评论。所以我想我需要发一个新帖子。然而,“sudo nmap -sn 192.168.0.0/24”的上述建议是获取本地网络/vlan/子网上IP的所有MAC的最佳最快方法OP没有提到的,是获得的唯一方法以这种方式获取 MAC 地址,您必须使用 sudo(或其他超级用户权限,即 Windows 管理员)命令 nmap -sn 192.168.0.0/24 将发现您网络上的主机,但不会返回 MAC,因为您未处于 SU 模式的操作。
是的,请记住使用 root 帐户。
=======================================
qq@peliosis:~$ sudo nmap -sP -n xxx.xxx.xxx
Starting Nmap 6.00 ( http://nmap.org ) at 2016-06-24 16:45 CST
Nmap scan report for xxx.xxx.xxx
Host is up (0.0014s latency).
MAC Address: 00:13:D4:0F:F0:C1 (Asustek Computer)
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
只是标准扫描将返回 MAC。
nmap -sS target
在最新版本的 nmap 6.40 中,它会自动显示 MAC 地址。例子:
nmap 192.168.0.1-255
此命令将从 192.168.0.1 到 255 扫描您的网络,并在您的网络上显示主机及其 MAC 地址。
如果您想显示单个客户端的 mac 地址,请使用此命令确保您是 root 用户或使用“sudo”
sudo nmap -Pn 192.168.0.1
此命令将显示主机 MAC 地址和打开的端口。
希望这会有所帮助。