Jak mogę znaleźć adres MAC komputerów w sieci?
Muszę odkryć maszyny, które są dostępne tylko z zainstalowanym BIOSem (bez systemu operacyjnego).
Muszę znaleźć adres MAC maszyn, które działają.
Jak mogę znaleźć adres MAC komputerów w sieci?
Muszę odkryć maszyny, które są dostępne tylko z zainstalowanym BIOSem (bez systemu operacyjnego).
Muszę znaleźć adres MAC maszyn, które działają.
Odpowiedzi:
Będziesz musiał uzyskać dostęp do informacji dostępnych na zarządzanych przełącznikach. Jeśli masz niezarządzaną sieć, nie widzę sposobu, aby to zrobić.
Zakłada się, że komputery docelowe są zdolne do Wake-on-LAN (WoL). W takim przypadku ustanowione jest łącze do serwera (poszukaj migającej diody LED łącza), a karta sieciowa nasłuchuje transmisji WoL. AFAIK, karta nie odpowiada na nic w tym stanie. Jeśli nie ma WoL, karta najprawdopodobniej jest wyłączona (brak diody LED łącza) i w ogóle nie będzie działać.
Jeśli maszyny nie są zasilane, jest to niemożliwe.
Jeśli są one zasilone, sądzę, że jest to również niemożliwe, ponieważ potrzebujesz minimalnego stosu sieciowego, aby przynajmniej odpowiedzieć na takie pytania, jak zapytania ARP itp., Które nie działają bez zainstalowanego systemu operacyjnego.
To, co może działać (nie wiem i nie mogę teraz przetestować), to to, że karta sieciowa i przełącznik komunikują się, gdy karta sieciowa jest podłączona lub włączona, a przełącznik w ten sposób uczy się adresu MAC. W takim przypadku potrzebujesz przełącznika zarządzalnego i zapytaj go o podłączone adresy mac.
Możesz użyć Nmap do wykonania bardzo szybkiego skanowania ARP przy użyciu następującej składni.
nmap -sn -PR -oX nmap.xml 192.168.1.0/24
Wykorzystuje ping ARP (tylko żądania ARP, bez ICMP, UDP lub TCP, bez skanowania portów) do skanowania określonego zakresu adresów IP i rejestrowania odpowiedzi adresu IP / adresu MAC / nazwy hosta w pliku XML (nmap.xml).
Napisałem skrypt PowerShell, który munguje plik XML i wyrzuca plik CSV . To również odfiltrowuje hosty w dół. Uważam, że jest to łatwiejsze w użyciu w programie Excel niż w pliku XML. Oto skrypt, jeśli ktoś jest zainteresowany.
# 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
. Najwyraźniej flaga -sn
nie jest obsługiwana w Nmap 4.x.
show mac-address-table
).Z komputera z systemem Unix, nasłuchując komputerów bez systemu operacyjnego w tej samej sieci LAN, a jeśli to możliwe za pośrednictwem koncentratora (nie przełącznika), możesz spróbować
arp
cat /proc/net/arp
Możesz także spróbować wireshark
(z komputera z systemem operacyjnym). Ponownie, lepiej użyć Hub do przechwytywania wszelkiej komunikacji z komputerami BIOS, w tym transmisji.
Podstawowym problemem jest to, że są to informacje warstwy 2, więc tylko przełączniki je widzą. Niektóre przełączniki zapewniają interfejs, który pozwala zerknąć na te informacje, ale jeśli nie jedyny sposób, aby je zdobyć, to przechwycenie warstwy fizycznej, np. Poprzez zainstalowanie koncentratora między przełącznikiem.
Jeśli używasz zarządzanych przełączników, informacje te są prawdopodobnie dostępne z przełącznika. Niektóre zintegrowane routery / przełączniki użytkownika końcowego (takie jak te, które często pakują również modemy ADSL) czasami mają listę klientów DHCP, która zawiera adresy MAC.
Jeśli używasz niezarządzanych przełączników i naprawdę chcesz poznać te informacje, zalecamy zakup koncentratora i tymczasowe zastąpienie go przełącznikiem. Następnie możesz podłączyć komputer z Wireshark do koncentratora i przechwytywać pakiety ARP w celu zapisywania adresów MAC. Alternatywnie możesz użyć Echolot, aby to zrobić za Ciebie - selektywnie śledzi pakiety ARP i buduje bazę adresów MAC.
Oto rozwiązanie, które zadziałało dla mnie:
Bardzo łatwą małą sztuczką, którą możesz zrobić w ciągu 2 sekund, jest fakt, że każdy system operacyjny zapisuje tabelę z adresem MAC i adresem IP dowolnego urządzenia, z którym współpracuje. Jest to znane jako TABELA ARP. Pytanie brzmi: jak wymusić interakcję ze wszystkimi urządzeniami? Możesz po prostu pingować adres IP emisji. Nie jest to idealne, ponieważ niektóre urządzenia lub zapora mogą blokować żądanie ping ICMP, ale działa w wielu scenariuszach.
Polecenia to (w adresie IPv4 192.168.0.255):
ping 192.168.0.255
W systemie Linux:
ping -b 192.168.0.255
Poczekaj kilka sekund, aż urządzenia odpowiedzą, a następnie:
arp -a
Ping IPV6 patrz komentarz Giedriusa Rekasiusa
Nie jest idealny, ale bez narzędzi, bez badań, bez straty czasu, działa w każdym większym systemie operacyjnym i jest szybki.
ping6 -c2 -n ff02::1%wlan0
. Wystarczy tylko zaktualizować nazwę używanego interfejsu sieciowego, adres IP używany do tego celu jest zawsze ff02::1
niezależny od sieci, w której się znajdujesz.
Jak powiedzieli inni, jeśli masz niezarządzane przełączniki lub BootP / PXE, nie ma łatwego sposobu na uzyskanie adresów MAC komputerów bez systemu operacyjnego.
Jeśli na uruchomionych komputerach jest uruchomiony system Windows, łatwo jest go napisać (zwykle za pomocą WMI)
Tutaj jest kilka przykładów: http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search?f[0].Type=SearchText&f[0].Value=MAC+address&x=0&y= 0
Chciałem zasugerować zmianę tablicy adresów MAC, ale ktoś już ją opisał powyżej.
Jeśli którykolwiek z komputerów ma system operacyjny i ma adres IP, możesz podłączyć się do tej samej sieci LAN, możesz użyć NMAP (lub wersji GUI takiej jak Zenmap) z http://nmap.org/ ... jeśli uruchomisz w tej samej sieci LAN powinieneś uzyskać informacje o adresie MAC dla wszystkich komputerów, które odpowiedzą.
Przydałoby się lepiej zrozumieć, dlaczego musisz uzyskać adresy MAC, na wypadek, gdyby istnieje lepszy sposób na osiągnięcie tego samego wyniku.
Możesz zbierać informacje ARP, na przykład przez stale działający arpalert. Dzięki temu zestaw adresów ARP będzie widoczny po uruchomieniu.
Wyłączone maszyny nie będą wysyłać odpowiedzi ARP.
Aby przyspieszyć ten proces, możesz użyć skanu nmap ping (nmap -sP) w sieci z serwera, na którym działa arpalert, w celu wyzwolenia wszystkich możliwych (działających i działających) hostów w odpowiedzi na zapytanie arp. Dzięki regularnemu późniejszemu skanowaniu nmap ping masz większe szanse na złapanie krótko żyjącego hosta.
fragment z arpalert:
Jeśli MAC nie ma na liście, arpalert uruchamia predefiniowany skrypt użytkownika z parametrami adresu MAC i adresu IP.
fragment kodu nmap:
Nmap („Network Mapper”) to darmowe narzędzie typu open source (licencja) do eksploracji sieci lub audytu bezpieczeństwa
Rozejrzyj się tutaj:
Używam: nmap -sP 192.168.1.1/24
(zastąp 192.168.1.1/24 swoim zakresem IP)
Pokaże tylko działające maszyny i da ci coś takiego:
[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
Jeśli nie masz zainstalowanego systemu operacyjnego, możesz użyć Linux Live CD, nmap jest prawdopodobnie dostępny w większości z nich