можно ли получить MAC-адрес машины с помощью nmap

У меня есть список удаленных машин в текстовых файлах. Могу ли я узнать их MAC-адреса с помощью nmap?


person Jury A    schedule 03.11.2012    source источник
comment
Это может вам помочь: stackoverflow.com/questions/10633753/ Пожалуйста, прочитайте anserver.   -  person user902691    schedule 03.11.2012
comment
Stack Overflow — это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. раздел О каких темах я могу задать здесь в Справочном центре. Возможно, Суперпользователь или Unix & Linux Stack Exchange лучше спросить.   -  person jww    schedule 20.06.2017


Ответы (11)


Если вы используете nmap, MAC-адреса только доступны, если вы находитесь в том же сегменте сети, что и цель. Более новые версии nmap покажут вам MAC-адрес только в том случае, если вы работаете как root.

i.e.:

судо nmap -sP -n 192.168.0.0/24

person Karimi    schedule 04.01.2013
comment
Просто чтобы уточнить: вам не нужно использовать какую-либо конкретную опцию. Если вы запускаете nmap от имени пользователя root (например, с помощью sudo), он уже выдает MAC-адреса, если это возможно (вы должны находиться в той же подсети, что и ваши цели). - person gerlos; 25.09.2014
comment
Эта попытка не дала ответа на вопрос. nmap -sP не показывает MAC-адрес. - person theking2; 05.01.2019
comment
это не работает в Windows .. нет возврата Mac - person francogp; 08.06.2021
comment
Обратите внимание, что это не показывает никакого Mac-адреса, если вы сканируете адрес, принадлежащий интерфейсу вашего собственного компьютера, это ловушка, если вы не обращаете внимания - person Ferrybig; 09.07.2021

Используйте скрипт 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
person user2328360    schedule 22.08.2014
comment
Это сработало для меня, большое спасибо. Запуск: - Mac OS 10.11 - nmap, установленный с помощью brew Я смог удаленно найти mac-адрес Linux-бокса. - person Ernesto Iser; 21.10.2015
comment
-sU is UDP -p snmp port --script snmp-interfaces Только у меня это работает нормально. - person Fabio Noth; 24.05.2019

В текущих версиях nmap вы можете использовать:

sudo nmap -sn 192.168.0.*

Это напечатает MAC-адреса всех доступных хостов. Конечно, укажите свою собственную сеть, подсеть и идентификатор хоста.

Дополнительные пояснения можно найти здесь.

person piscator    schedule 29.11.2016
comment
sudo важно. Без sudo вы не получите строку вывода MAC-адреса. - person jbryanscott; 10.07.2017
comment
это не работает в Windows .. нет возврата Mac - person francogp; 08.06.2021

Некоторые сценарии дают вам то, что вы ищете. Если узлы работают под управлением 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'}
person user3126740    schedule 09.01.2014
comment
Этот ответ был послан Богом для выявления мошеннического VPN-клиента. БЛАГОДАРНОСТЬ!!! Но вам не нужен вывод xml, grep или awk. - person David Cahill; 24.09.2014

if $ ping -c 1 192.168.x.x 

возвращается

1 packets transmitted, 1 received, 0% packet loss, time ###ms

тогда вы могли бы вернуть MAC-адрес с помощью arping, но 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 с удаленными двоеточиями, например, для идентификации устройства по его идентификатору поставщика.

$ grep -i '709E29' /usr/local/share/nmap/nmap-mac-prefixes 
709E29 Sony Interactive Entertainment
person Guest    schedule 12.01.2017

nmap может обнаружить MAC-адрес удаленной цели, только если

  • цель находится на той же ссылке, что и машина, на которой работает nmap, или
  • цель передает эту информацию через SNMP, NetBIOS и т. д.

Другая возможность связана с IPv6, если цель использует идентификаторы EUI-64, тогда MAC-адрес можно вывести из IP-адреса.

Помимо вышеперечисленных возможностей, не существует нет надежного способа получить MAC-адрес удаленной цели с помощью методов сетевого сканирования.

person countermode    schedule 29.08.2014

Да, не забудьте использовать учетную запись 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
person g9164314    schedule 24.06.2016
comment
-sP теперь известен как -sn (без сканирования портов, т.е. просто пинг-сканирование) - person Heath Raftery; 16.05.2018

Я недостаточно крут, чтобы комментировать пост. так что я думаю, мне нужно сделать новый пост. Однако приведенная выше рекомендация «sudo nmap -sn 192.168.0.0/24» - это лучший и самый быстрый способ получить все MAC-адреса для IP-адресов в вашей локальной сети / vlan / подсети. Что OP не упоминает, это единственный способ получить MAC-адрес таким образом, вы ДОЛЖНЫ использовать sudo (или другие привилегии суперпользователя, например администратора Windows), команда nmap -sn 192.168.0.0/24 обнаружит хосты в вашей сети, однако не вернет MAC-адреса, так как вы не находитесь в режиме SU операции.

person Reese Zee    schedule 09.01.2017

Просто стандартное сканирование вернет MAC.

nmap -sS target
person iNoob    schedule 28.08.2014
comment
Только если цель находится на той же ссылке. - person countermode; 29.08.2014
comment
что значит та же ссылка? Та же подсеть? - person iNoob; 29.08.2014
comment
Да. Термины «ссылка», «подсеть», «локальная сеть», «сегмент сети» и «широковещательный домен» означают одно и то же. - person countermode; 29.08.2014
comment
@countermode, если ты так говоришь :) - person iNoob; 29.08.2014
comment
это не работает в Windows .. нет возврата Mac - person francogp; 08.06.2021

В последней версии nmap 6.40 он автоматически покажет вам MAC-адрес. пример:

nmap 192.168.0.1-255

эта команда просканирует вашу сеть с 192.168.0.1 до 255 и отобразит хосты с их MAC-адресами в вашей сети.

если вы хотите отобразить MAC-адрес для одного клиента, используйте эту команду, убедитесь, что вы находитесь в корне или используйте «sudo»

sudo nmap -Pn 192.168.0.1

эта команда отобразит MAC-адрес хоста и открытые порты.

надеюсь, что это полезно.

person Osama Al-Banna    schedule 23.07.2014

Не используя nmap... но это альтернатива...

arp -n|grep -i B0:D3:93|awk '{print $1}'
person Pipo    schedule 14.08.2015