是否可以使用nmap获取机器的MAC地址

问题描述 投票:31回答:11

我有一个文本文件中的远程机器列表。我可以使用nmap知道他们的MAC地址吗?

nmap
11个回答
49
投票

如果您使用的是nmap,则只有当您与目标位于同一网段时,才能使用MAC地址。如果您以root用户身份运行,则较新版本的nmap将仅向您显示MAC地址。

即:

sudo nmap -sP -n 192.168.0.0/24


1
投票

我不够酷,无法对帖子发表评论。所以我想我需要发一个新帖子。但是上面提到的“sudo nmap -sn 192.168.0.0/24”是获得本地网络/ vlan /子网上IP的所有MAC的最快捷的方法OP没有提到的,是获得的唯一方法这样的MAC地址,你必须使用sudo(或其他超级用户权限,即windows admin)命令nmap -sn 192.168.0.0/24将发现你网络上的主机,但不会返回MAC,因为你不是SU模式的操作。


0
投票

使用最新版本的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地址和开放端口。

希望有所帮助。


16
投票

使用snmp-interfaces.nse nmap脚本(用lua编写)来获取远程机器的MAC地址,如下所示:

nmap -sU -p 161 -T4 -d -v -n -Pn --script snmp-interfaces 80.234.33.182

Completed NSE at 13:25, 2.69s elapsed
Nmap scan report for 80.234.33.182
Host is up, received user-set (0.078s latency).
Scanned at 2014-08-22 13:25:29 Арабское время (зима) for 3s
PORT    STATE SERVICE REASON
161/udp open  snmp    udp-response
| snmp-interfaces: 
|   eth
|     MAC address: 00:50:60:03:81:c9 (Tandberg Telecom AS)
|     Type: ethernetCsmacd  Speed: 10 Mbps
|     Status: up
|     Traffic stats: 1.27 Gb sent, 53.91 Mb received
|   lo
|     Type: softwareLoopback  Speed: 0 Kbps
|     Status: up
|_    Traffic stats: 4.10 Kb sent, 4.10 Kb received

5
投票

在当前版本的nmap中,您可以使用:

sudo nmap -sn 192.168.0.*

这将打印所有可用主机的MAC地址。当然提供您自己的网络,子网和主机ID。

进一步的解释可以找到here


3
投票

有些脚本可以满足您的需求。如果节点正在运行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'}

2
投票

是的,请记住使用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

2
投票
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

1
投票

只是标准扫描将返回MAC。

nmap -sS target

1
投票

nmap只有在发现远程目标的MAC地址时才能发现

  • 目标与机器nmap运行在同一链接上,或
  • 目标通过SNMP,NetBIOS等泄漏此信息。

如果目标使用EUI-64标识符,则IPv6具有另一种可能性,则可以从IP地址推断出MAC地址。

除了上述可能性之外,没有可靠的方法来利用网络扫描技术获得远程目标的MAC地址。


1
投票

不使用nmap ...但这是另一种选择......

arp -n|grep -i B0:D3:93|awk '{print $1}'
© www.soinside.com 2019 - 2024. All rights reserved.