Come scoprire l'indirizzo MAC delle macchine in una rete?


12

Come faccio a scoprire l'indirizzo MAC delle macchine in una rete?

Devo scoprire le macchine che sono disponibili solo con il BIOS installato (nessun sistema operativo).

E ho bisogno di trovare l'indirizzo MAC delle macchine che sono attive.



Risposte:


8

Dovrai accedere alle informazioni disponibili sui tuoi switch gestiti. Se hai una rete non gestita, non vedo un modo per farlo.

Ciò presuppone che i computer di destinazione siano in grado di Wake-on-LAN (WoL). In questo caso, viene stabilito un collegamento al server (cercare il LED di collegamento appariscente) e la scheda di rete sta ascoltando le trasmissioni WoL. AFAIK, la carta non risponde a nulla in questo stato. Se non è presente alcun WoL, molto probabilmente la scheda è spenta (nessun LED di collegamento) e non funzionerà affatto.


7

Se le macchine non sono accese, questo è impossibile.

Se sono alimentati, immagino che anche questo sia impossibile, poiché è necessario uno stack di rete minimo per rispondere almeno a cose come le query ARP ecc., Che non funzionano senza un sistema operativo installato.

Ciò che potrebbe funzionare (al momento non lo so e non posso testarlo) è che la NIC e lo switch comunicano quando la NIC è collegata o accesa e lo switch impara l'indirizzo MAC in questo modo. In questo caso, avresti bisogno di un interruttore gestibile e di interrogarlo per gli indirizzi mac collegati.


2
È possibile ottenerlo senza uno stack di rete se si richiede l'avvio bootp o pxe. Dipende dalla macchina se funzionerebbe, penso.
Bart Silverstrim,

6

È possibile utilizzare Nmap per eseguire una scansione ARP molto rapida utilizzando la sintassi seguente.

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

Questo utilizza il ping ARP (solo richieste ARP, nessun ICMP, UDP o TCP, nessuna scansione delle porte) per scansionare l'intervallo di indirizzi IP specificato e registrare le risposte dell'indirizzo IP / indirizzo MAC / nome host in un file XML (nmap.xml).

Ho scritto uno script di PowerShell che muta il file XML e sputa un file CSV . Questo filtra anche gli host inattivi. Trovo questo più facile da usare in Excel rispetto al file XML. Ecco lo script se qualcuno è interessato.

# 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

Ho provato il comando sopra e ho ricevuto l'errore Scantype n not supported. Apparentemente il flag -snnon è supportato su Nmap 4.x.
Stefan Lasiewski

Dalla nmap 5.30BETA1 ChangeLog:
John Homer,

2
Passato a -Pn e -sn e come sintassi preferita per saltare la scansione del ping e la scansione della porta, rispettivamente. In precedenza erano consigliate le opzioni -PN e -sP. Ciò stabilisce una sintassi più regolare per alcune opzioni che disabilitano le fasi di una scansione: -n nessun DNS inverso -Pn nessuna rilevazione host -sn nessuna scansione delle porte Abbiamo anche ritenuto che l'opzione -sP ("ping scan") precedente fosse un po 'fuorviante perché le versioni attuali di Nmap possono andare molto oltre (inclusi -sC e --traceroute) anche con scansioni delle porte disabilitate. Manterremo il supporto per i nomi delle opzioni precedenti per il prossimo futuro.
John Homer,

Quindi, basandoti su questo, dovresti essere in grado di usare la sintassi '-sP' al posto del nuovo parametro '-sn'. Sfortunatamente, non ho una versione di nmap4 con cui provare.
John Homer,

3
  1. Visualizza le informazioni sul tuo switch / router, se switch è abbastanza avanzato.
    (Nel comando switch Cisco è show mac-address-table).
  2. Se le macchine hanno abilitato PXE BIOS / scheda di rete, leggere le informazioni dai registri DHCP, poiché tenteranno di ottenere il lease DHCP. Se non si dispone di DHCP, è sufficiente scaricare tutto il traffico di trasmissione con Wireshark e filtrare il traffico DHCP. Tutte le macchine di nuova generazione senza sistema operativo mostreranno nel traffico.

3

Da una macchina Unix, ascoltando i computer senza sistema operativo sulla stessa LAN e, se possibile, tramite un hub (non uno switch), puoi provare

arp
cat /proc/net/arp

Inoltre potresti provare wireshark(da un computer con sistema operativo). Ancora una volta, è meglio usare un Hub per catturare qualsiasi comunicazione dalle macchine BIOS, comprese le trasmissioni.


1

Il problema di base qui è che si tratta di informazioni di livello 2, quindi solo gli switch le vedono. Alcuni switch forniscono un'interfaccia che ti consente di dare un'occhiata a queste informazioni, ma se non l'unico modo per ottenerlo è intercettare nel livello fisico, ad esempio installando un hub tra lo switch.

Se si utilizzano switch gestiti, queste informazioni sono probabilmente disponibili dallo switch. Alcuni router / switch integrati per l'utente finale (come quelli che spesso confezionano anche modem ADSL) avranno talvolta un elenco di client DHCP che include indirizzi MAC.

Se si utilizzano switch non gestiti e si desidera veramente conoscere queste informazioni, si consiglia di acquistare un hub e sostituire temporaneamente lo switch con esso. È quindi possibile collegare un computer che esegue WireShark all'hub e acquisire i pacchetti ARP per registrare gli indirizzi MAC. In alternativa, è possibile utilizzare Echolot per eseguire questa operazione: tiene traccia selettivamente dei pacchetti ARP e crea un database di indirizzi MAC.


Modifica: rileggi solo la parte che riguarda solo il BIOS. Ciò presenta ulteriori sfide oltre il problema dell'intercettazione dei dati di livello 2: i client potrebbero non inviare dati sulla rete. Se i client hanno un BIOS che fa DHCP o invia pacchetti ARP, dovrebbe essere possibile vederli dallo switch. Non sono sicuro di quali edizioni BIOS supportino questo, so che alcuni lo fanno però.
imoatama,

1

Ecco una soluzione che ha funzionato per me:

  1. Abilita l'avvio di rete nel BIOS. (Ad esempio, impostare la scheda di rete su "Abilitato con PXE")
  2. Avvia la macchina.
  3. La macchina tenterà di avviarsi dalla rete, mostrandoti l'indirizzo MAC nel processo.

1

Un piccolo trucco molto semplice che potresti fare in 2 secondi è lavorare con il fatto che qualsiasi sistema operativo scrive una tabella con l'indirizzo MAC e IP di qualsiasi dispositivo con cui interagisce. Questo è noto come TABELLA ARP. Quindi la domanda è: come forzare un'interazione con tutti i dispositivi? È possibile semplicemente eseguire il ping dell'indirizzo IP di trasmissione. Questo non è perfetto, poiché alcuni dispositivi o firewall potrebbero bloccare la richiesta di ping ICMP, ma funziona in molti scenari.

I comandi sono (in un indirizzo broadcast 192.168.0.255 ipv4):

ping 192.168.0.255

In Linux usare:

ping -b 192.168.0.255

Attendi qualche secondo che i dispositivi rispondano, quindi esegui:

arp -a

Per il ping IPV6 vedere il commento di Giedrius Rekasius

Non perfetto, ma nessuno strumento, nessuna ricerca, nessuna perdita di tempo, funziona in tutti i principali sistemi operativi ed è veloce.


Trovo più facile e affidabile eseguire tali ping su IPv6 che su IPv4. Un comando di esempio potrebbe assomigliare a questo ping6 -c2 -n ff02::1%wlan0. Basta aggiornare il nome dell'interfaccia di rete da utilizzare, l'indirizzo IP da utilizzare a tale scopo è sempre ff02::1indipendente dalla rete su cui ci si trova.
Kasperd,

1

Effettua la scansione della rete con Nmap e quindi controlla la tabella ARP ( arp -anelle distribuzioni Linux).



0

Stavo per suggerire di cambiare la tabella degli indirizzi MAC, ma qualcuno ha già coperto quello sopra.

Se uno dei computer sono in esecuzione un sistema operativo e avere un indirizzo IP, è possibile collegare nella stessa rete LAN, è possibile utilizzare NMAP (o una versione GUI come Zenmap) da http://nmap.org/ ... se si esegue questo sulla stessa LAN, dovresti ottenere informazioni sull'indirizzo MAC per tutte le macchine che rispondono.

Sarebbe utile capire di più sul motivo per cui è necessario ottenere gli indirizzi MAC, nel caso in cui esista un modo migliore per ottenere lo stesso risultato.


0

È possibile raccogliere informazioni ARP ad esempio con un arpalert in esecuzione continua. Con ciò, dopo l'avvio avrai il set di indirizzi ARP.

Le macchine spente non invieranno risposte ARP.

Per accelerare il processo, è possibile utilizzare una scansione ping nmap (nmap -sP) sulla rete dal server su cui si sta eseguendo arpalert, al fine di attivare tutti i possibili host (attivi e in esecuzione) per rispondere alla query arp. Con l'esecuzione periodica del ping ping nmap in seguito, hai maggiori possibilità di catturare un host che vive poco.

frammento di arpalert:

Se il MAC non è in elenco, arpalert avvia uno script utente predefinito con l'indirizzo MAC e l'indirizzo IP come parametri.

frammento da nmap:

Nmap ("Network Mapper") è un'utilità gratuita e open source (licenza) per l'esplorazione della rete o il controllo della sicurezza

Guarda qui intorno:


0

Uso: nmap -sP 192.168.1.1/24

(sostituisci 192.168.1.1/24 con il tuo intervallo IP)

Ti mostrerà solo le macchine che sono in alto e ti darà qualcosa di simile:

[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

Se non è installato alcun sistema operativo, è possibile utilizzare un cd live di Linux, nmap è probabilmente disponibile nella maggior parte di essi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.