Як виявити MAC-адресу машин у мережі?


12

Як виявити MAC-адресу машин у мережі?

Мені потрібно виявити машини, які доступні лише з встановленим BIOS (без операційної системи).

І мені потрібно знайти MAC-адресу машин, які працюють.



Дублікат між сайтом (на переповнення стека): Як виявити MAC-адресу машин у мережі та понад? .
Пітер Мортенсен

Відповіді:


8

Вам доведеться отримати доступ до інформації, доступної на керованих комутаторах. Якщо у вас некерована мережа, я не бачу способу це зробити.

Це передбачається, що цільові комп'ютери здатні функціонувати в режимі Wake-on-LAN (WoL). У цьому випадку встановлюється посилання на сервер (шукайте миготливий світлодіодний посилання), і мережева карта слухає передачі WoL. AFAIK, картка нічого не відповідає у цьому стані. Якщо немає WoL, картка, швидше за все, вимкнена (без світлодіодного посилання), і вона взагалі не працюватиме.


7

Якщо машини не ввімкнені, це неможливо.

Якщо вони живляться, я думаю, що це також неможливо, тому що вам потрібен мінімальний стек мережі, щоб принаймні відповісти на такі речі, як ARP-запити тощо, яка не працює без встановленої ОС.

Що може працювати (я не знаю і зараз не можу перевірити) - це те, що NIC і комутатор спілкуються, коли NIC підключений або включений, і комутатор дізнається MAC-адресу таким чином. У такому випадку вам знадобиться керований комутатор і запитуйте його на підключені mac адреси.


2
Ви могли б отримати його без мережевого стека , коли він просить BOOTP або PXE завантаження. Залежить від машини, чи буде це працювати, хоча я думаю.
Барт Сільверстрім

6

Ви можете використовувати Nmap для дуже швидкого сканування ARP, використовуючи наступний синтаксис.

nmap -sn -PR -oX nmap.xml 192.168.1.0/24

Для цього використовується ping ARP (тільки ARP-запити, відсутні ICMP, UDP або TCP, сканування портів) для сканування вказаного діапазону IP-адрес та запису IP-адреси / MAC-адреси / відповідей імені хоста у XML-файл (nmap.xml).

Я написав сценарій PowerShell, який розміщує формат XML і висилає файл CSV . Це також фільтрує знищені хости. Я вважаю це простішим у використанні в Excel, ніж файл XML. Ось сценарій, якщо когось цікавить.

# Define nmap input file
$NmapXMLFile = ".\nmap.xml"

# Initialize object array
$HostItems = @()

# Initialize index
$x = 0

# Load XML
[xml]$NmapXML = Get-Content $NmapXMLFile

# Loop through XML
ForEach ($HostNode in $NmapXML.nmaprun.host) {

  # Check host status
  If ($HostNode.status.state -eq "up") {

    # Create host object
    $HostObj = "" | Select-Object ID, Hostname, 'IP Address', 'MAC Address', Vendor

    # Store ID and increment index
    $HostObj.ID = $x += 1

    # Store hostname
    $HostObj.Hostname = $HostNode.hostnames.hostname.name

    # Loop through addresses
    foreach ($HostAddress in $HostNode.address) {

      # Check IP address
      If ($HostAddress.addrtype -eq "ipv4") {

        # Store IP address
        $HostObj.'IP Address' = $HostAddress.addr
      }

      # Check MAC address
      If ($HostAddress.addrtype -eq "mac") {

        # Store MAC address
        $HostObj.'MAC Address' = $HostAddress.addr

        # Store vendor
        $HostObj.Vendor = $HostAddress.vendor
      }
    }

    # Append host object to array
    $HostItems += $HostObj
  }
}

# Print host items
$HostItems

# Export host items to CSV
$HostItems | Export-CSV -NoType .\nmap.csv

Я спробував команду вище, і отримав помилку Scantype n not supported. Мабуть, прапор -snне підтримується на Nmap 4.x.
Стефан Ласєвський

З nmap 5.30BETA1 Змінити журнал:
Джон Гомер,

2
Переключено на -Pn та -sn і як кращий синтаксис для пропуску сканування пінг та сканування порту відповідно. Раніше рекомендувались параметри -PN та -sP. Це встановлює більш регулярний синтаксис для деяких параметрів, які відключають фази сканування: -n немає зворотного DNS -Pn немає виявлення хоста -sn немає сканування портів. тому що поточні версії Nmap можуть піти набагато далі (включаючи -sC та --traceroute) навіть при відключенні сканування портів. Ми збережемо підтримку попередніх назв опціонів в осяжному майбутньому.
Джон Гомер

Отже, виходячи з цього, ви повинні мати можливість використовувати синтаксис '-sP' замість більш нового параметра '-sn'. На жаль, у мене немає версії nmap4 для тестування.
Джон Гомер

3
  1. Перегляньте інформацію про свій комутатор / маршрутизатор, якщо перемикач досить розвинений.
    (У команді Cisco switches є show mac-address-table).
  2. Якщо на машинах встановлена ​​BIOS / мережева карта з підтримкою PXE, читайте інформацію з журналів DHCP, оскільки вони намагатимуться взяти DHSP в оренду. Якщо у вас немає DHCP, просто скиньте весь трафік за допомогою Wireshark і відфільтруйте трафік DHCP. Усі нові машини без ОС відображатимуться в трафіку.

3

З машини Unix, слухаючи комп’ютери без ОС в одній локальній мережі, і, якщо можливо, через концентратор (не комутатор), ви можете спробувати

arp
cat /proc/net/arp

Також ви можете спробувати wireshark(з ОС, що працює з ОС). Знову ж таки, краще використовувати концентратор, щоб вловлювати будь-які комунікації з машин BIOS, включаючи трансляції.


1

Основна проблема тут полягає в тому, що це інформація рівня 2, тому її бачать лише комутатори. Деякі комутатори надають інтерфейс, який дозволяє зазирнути на цю інформацію, але якщо вони не єдиний спосіб отримати це перехоплення у фізичному рівні, наприклад встановлення концентратора між комутатором.

Якщо ви використовуєте керовані комутатори, ця інформація, ймовірно, доступна через комутатор. Деякі інтегровані маршрутизатори / комутатори кінцевих користувачів (наприклад, такі, що часто також пакують модеми ADSL), іноді матимуть список клієнтів DHCP, який включає MAC-адреси.

Якщо ви використовуєте керовані комутатори, і вам дуже хочеться дізнатися цю інформацію, рекомендую придбати концентратор і тимчасово замінити комутатор на нього. Потім можна підключити комп’ютер, на якому працює провідний штрих, до концентратора та захопити пакети ARP для запису MAC-адрес. Крім того, ви можете використовувати Echolot, щоб зробити це для вас - він вибірково відстежує ARP-пакети та створює базу даних MAC-адрес.


Редагувати - просто перечитайте частину про них лише для BIOS. Це представляє подальші труднощі поза проблемою перехоплення даних рівня 2 - клієнти можуть навіть не надсилати жодних даних по мережі. Якщо у клієнтів є біос, який робить DHCP або надсилає пакети ARP, слід побачити їх через комутатор. Я не впевнений, які версії BIOS підтримують це, я знаю, що деякі з них роблять.
imoatama

1

Ось рішення, яке працювало для мене:

  1. Увімкнути завантаження мережі в BIOS. (Наприклад, встановіть мережевий адаптер на "Увімкнено за допомогою PXE")
  2. Завантажте машину.
  3. Машина спробує завантажитися з мережі, показуючи вам MAC-адресу в процесі.

1

Дуже легкий трюк, який ви можете зробити протягом двох секунд, - це робота з тим, що будь-яка операційна система записує таблицю з mac та IP-адресою будь-якого пристрою, з яким вона взаємодіє. Це відомо як стіл ARP. Тож питання полягає в тому, як змусити взаємодія з усіма пристроями? Ви можете просто пінг-код IP-адреси широкомовної програми. Це не ідеально, оскільки деякі пристрої або брандмауер можуть заблокувати запит на ICMP ping, але він працює у багатьох сценаріях.

Команди (у ipv4 192.168.0.255 адресі широкомовної передачі):

ping 192.168.0.255

У Linux використовуйте:

ping -b 192.168.0.255

Зачекайте кілька секунд, коли пристрої відгукнуться, тоді виконайте:

arp -a

Про IPV6 пінг див. У коментарі Гедрія Рекасія

Не ідеально, але ніякі інструменти, не дослідження, не марнуйте час, працює у всіх основних операційних системах і швидко.


Мені простіше і надійніше робити такі пінгви над IPv6, ніж над IPv4. Приклад команди може виглядати приблизно так ping6 -c2 -n ff02::1%wlan0. Потрібно лише оновити назву мережевого інтерфейсу, який слід використовувати, IP-адреса, яка використовується для цієї мети, завжди є ff02::1незалежно від того, в якій мережі ви знаходитесь.
kasperd

1

Скануйте мережу за допомогою Nmap, а потім перевірте таблицю ARP ( arp -aу дистрибутивах Linux).


0

Як говорили інші, якщо у вас некеровані комутатори або BootP / PXE, не існує простого способу отримати MAC-машини машин без ОС.

Якщо на ваших запущених машинах працює Windows, сценарій легко (зазвичай через WMI)

Тут ви знайдете безліч прикладів: http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f evidence0Sense.Type=SearchText&f evidence0 kome.Value=MAC+address&x=0&y= 0


0

Я збирався запропонувати переключити таблицю MAC-адрес, але хтось уже закрив цю таблицю.

Якщо будь - якої з комп'ютерів має роботу ОС і мати IP - адреса, Ви можете підключитися до тієї ж локальної мережі, ви можете використовувати Nmap (або з графічним інтерфейсом , як Zenmap) з http://nmap.org/ ... якщо ви біжите це в тій самій локальній мережі, ви повинні отримати інформацію про адресу MAC для будь-яких машин, які відповідають.

Було б корисно детальніше зрозуміти, чому вам потрібно отримати MAC адреси, якщо є кращий спосіб досягти того ж результату.


0

Ви можете збирати інформацію ARP, наприклад, постійно працює арпалерт. З цим у вас буде набір ARP-адрес, які ви побачите після запуску.

Автоматизовані машини не надсилатимуть відповіді ARP.

Для прискорення процесу можна скористатися скануванням nmap ping (nmap -sP) у вашій мережі з сервера, на якому запущено arpalert, щоб запустити всі можливі (живі та запущені) хости, щоб відповісти на ваш арп-запит. Завдяки регулярному виконанню сканування nmap ping пізніше ви маєте кращі шанси зловити неживого хоста.

фрагмент з arpalert:

Якщо MAC немає в списку, arpalert запускає заздалегідь визначений сценарій користувача з MAC-адресою та IP-адресою як параметри.

фрагмент з nmap:

Nmap ("Network Mapper") - це безкоштовна програма з відкритим кодом (ліцензія) для дослідження мережі або аудиту безпеки

Огляньте тут:


0

Я використовую: nmap -sP 192.168.1.1/24

(замініть 192.168.1.1/24 на свій IP-діапазон)

Він покаже лише ті машини, які перебувають у стані, і дасть вам щось на кшталт:

[root@x ~]# nmap -sP 192.168.1.1/24
Starting Nmap 6.40 ( http://nmap.org ) at 2014-11-22 14:20 EST
Nmap scan report for 192.168.1.1
Host is up (0.0019s latency).
MAC Address: ZZ:ZZ:54:2E:E9:B4 (Unknown)
Nmap scan report for 192.168.1.33
Host is up (0.035s latency).
MAC Address: ZZ:ZZ:FA:2D:D7:D8 (Intel Corporate)
Nmap scan report for 192.168.1.254
Host is up (0.0020s latency).
MAC Address: ZZ:ZZ:31:02:98:19 (Asustek Computer)
Nmap scan report for 192.168.1.34
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 1.88 seconds

Якщо у вас немає встановленої ОС, ви можете використовувати Linux Linux cd, nmap, ймовірно, доступний у більшості з них

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.