Як виявити MAC-адресу машин у мережі?
Мені потрібно виявити машини, які доступні лише з встановленим BIOS (без операційної системи).
І мені потрібно знайти MAC-адресу машин, які працюють.
Як виявити MAC-адресу машин у мережі?
Мені потрібно виявити машини, які доступні лише з встановленим BIOS (без операційної системи).
І мені потрібно знайти MAC-адресу машин, які працюють.
Відповіді:
Вам доведеться отримати доступ до інформації, доступної на керованих комутаторах. Якщо у вас некерована мережа, я не бачу способу це зробити.
Це передбачається, що цільові комп'ютери здатні функціонувати в режимі Wake-on-LAN (WoL). У цьому випадку встановлюється посилання на сервер (шукайте миготливий світлодіодний посилання), і мережева карта слухає передачі WoL. AFAIK, картка нічого не відповідає у цьому стані. Якщо немає WoL, картка, швидше за все, вимкнена (без світлодіодного посилання), і вона взагалі не працюватиме.
Якщо машини не ввімкнені, це неможливо.
Якщо вони живляться, я думаю, що це також неможливо, тому що вам потрібен мінімальний стек мережі, щоб принаймні відповісти на такі речі, як ARP-запити тощо, яка не працює без встановленої ОС.
Що може працювати (я не знаю і зараз не можу перевірити) - це те, що NIC і комутатор спілкуються, коли NIC підключений або включений, і комутатор дізнається MAC-адресу таким чином. У такому випадку вам знадобиться керований комутатор і запитуйте його на підключені mac адреси.
Ви можете використовувати 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.
show mac-address-table
).З машини Unix, слухаючи комп’ютери без ОС в одній локальній мережі, і, якщо можливо, через концентратор (не комутатор), ви можете спробувати
arp
cat /proc/net/arp
Також ви можете спробувати wireshark
(з ОС, що працює з ОС). Знову ж таки, краще використовувати концентратор, щоб вловлювати будь-які комунікації з машин BIOS, включаючи трансляції.
Основна проблема тут полягає в тому, що це інформація рівня 2, тому її бачать лише комутатори. Деякі комутатори надають інтерфейс, який дозволяє зазирнути на цю інформацію, але якщо вони не єдиний спосіб отримати це перехоплення у фізичному рівні, наприклад встановлення концентратора між комутатором.
Якщо ви використовуєте керовані комутатори, ця інформація, ймовірно, доступна через комутатор. Деякі інтегровані маршрутизатори / комутатори кінцевих користувачів (наприклад, такі, що часто також пакують модеми ADSL), іноді матимуть список клієнтів DHCP, який включає MAC-адреси.
Якщо ви використовуєте керовані комутатори, і вам дуже хочеться дізнатися цю інформацію, рекомендую придбати концентратор і тимчасово замінити комутатор на нього. Потім можна підключити комп’ютер, на якому працює провідний штрих, до концентратора та захопити пакети ARP для запису MAC-адрес. Крім того, ви можете використовувати Echolot, щоб зробити це для вас - він вибірково відстежує ARP-пакети та створює базу даних MAC-адрес.
Ось рішення, яке працювало для мене:
Дуже легкий трюк, який ви можете зробити протягом двох секунд, - це робота з тим, що будь-яка операційна система записує таблицю з 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 пінг див. У коментарі Гедрія Рекасія
Не ідеально, але ніякі інструменти, не дослідження, не марнуйте час, працює у всіх основних операційних системах і швидко.
ping6 -c2 -n ff02::1%wlan0
. Потрібно лише оновити назву мережевого інтерфейсу, який слід використовувати, IP-адреса, яка використовується для цієї мети, завжди є ff02::1
незалежно від того, в якій мережі ви знаходитесь.
Як говорили інші, якщо у вас некеровані комутатори або 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
Я збирався запропонувати переключити таблицю MAC-адрес, але хтось уже закрив цю таблицю.
Якщо будь - якої з комп'ютерів має роботу ОС і мати IP - адреса, Ви можете підключитися до тієї ж локальної мережі, ви можете використовувати Nmap (або з графічним інтерфейсом , як Zenmap) з http://nmap.org/ ... якщо ви біжите це в тій самій локальній мережі, ви повинні отримати інформацію про адресу MAC для будь-яких машин, які відповідають.
Було б корисно детальніше зрозуміти, чому вам потрібно отримати MAC адреси, якщо є кращий спосіб досягти того ж результату.
Ви можете збирати інформацію ARP, наприклад, постійно працює арпалерт. З цим у вас буде набір ARP-адрес, які ви побачите після запуску.
Автоматизовані машини не надсилатимуть відповіді ARP.
Для прискорення процесу можна скористатися скануванням nmap ping (nmap -sP) у вашій мережі з сервера, на якому запущено arpalert, щоб запустити всі можливі (живі та запущені) хости, щоб відповісти на ваш арп-запит. Завдяки регулярному виконанню сканування nmap ping пізніше ви маєте кращі шанси зловити неживого хоста.
фрагмент з arpalert:
Якщо MAC немає в списку, arpalert запускає заздалегідь визначений сценарій користувача з MAC-адресою та IP-адресою як параметри.
фрагмент з nmap:
Nmap ("Network Mapper") - це безкоштовна програма з відкритим кодом (ліцензія) для дослідження мережі або аудиту безпеки
Огляньте тут:
Я використовую: 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, ймовірно, доступний у більшості з них