sviluppo-web-qa.it

Come faccio a sapere se nella mia rete è presente un server DHCP non autorizzato?

Qual è l'approccio migliore per determinare se nella mia rete è presente un server DHCP non autorizzato?

Mi chiedo come la maggior parte degli amministratori affronti questo tipo di problemi. Ho trovato sonda DHCP tramite la ricerca e ho pensato di provarlo. Qualcuno ha avuto esperienza con esso? (Vorrei sapere prima di prendere il tempo per compilarlo e installarlo).

Conosci strumenti utili o best practice per trovare server DHCP non autorizzati?

92
l0c0b0x

Un metodo semplice è semplicemente quello di eseguire uno sniffer come tcpdump/WireShark su un computer e inviare una richiesta DHCP. Se vedi altre offerte dal tuo vero server DHCP, allora sai di avere un problema.

54
Zoredache

Per ricapitolare e aggiungere ad alcune delle altre risposte:

Disattiva temporaneamente il tuo server DHCP di produzione e verifica se gli altri server rispondono.

Puoi ottenere l'indirizzo IP del server eseguendo ipconfig /all su un computer Windows, quindi puoi ottenere l'indirizzo MAC cercando quell'indirizzo IP usando arp -a.

Su un Mac, esegui ipconfig getpacket en0 (o en1). Vedi http://www.macosxhints.com/article.php?story=20060124152826491 .

Le informazioni sul server DHCP sono in genere in/var/log/messages. Sudo grep -i dhcp /var/log/messages*

Disabilitare il server DHCP di produzione potrebbe non essere una buona opzione, ovviamente.

Utilizza uno strumento che cerca specificamente server DHCP non autorizzati

Vedi http://en.wikipedia.org/wiki/Rogue_DHCP per un elenco di strumenti (molti dei quali sono stati elencati in altre risposte).

Configura gli switch per bloccare le offerte DHCP

La maggior parte degli switch gestiti può essere configurata per impedire server DHCP non autorizzati:

22
Jason Luther

dhcpdump , che assume la forma di input tcpdump e mostra solo i pacchetti relativi a DHCP. Mi ha aiutato a trovare Windows rootkited, fingendo un falso DHCP nella nostra LAN.

17
vartec

Gli approcci Wireshark/DHCP Explorer/DHCP Probe sono validi per un controllo periodico o singolo. Tuttavia, ti consiglio di esaminare DHCP Snooping supporto sulla tua rete. Questa funzione fornirà una protezione costante dai server DHCP non autorizzati sulla rete ed è supportata da numerosi fornitori di hardware diversi.

Ecco il set di funzionalità come indicato in documenti Cisco .

• Convalida i messaggi DHCP ricevuti da fonti non attendibili e filtra i messaggi non validi.

• Limita la velocità del traffico DHCP da fonti attendibili e non attendibili.

• Crea e mantiene il database di associazione snooping DHCP, che contiene informazioni su host non attendibili con indirizzi IP noleggiati.

• Utilizza il database di associazione snooping DHCP per convalidare le richieste successive da host non attendibili.

15
Dave K

dhcploc.exe è il modo più rapido e pratico per i sistemi Windows. È disponibile in XP Strumenti di supporto. Gli Strumenti di supporto sono su ogni OEM/vendita al dettaglio XP disco, ma possono essere o meno su "dischi di ripristino" fornito da alcuni OEM. Puoi anche scaricare da MS.

È un semplice strumento da riga di comando. Esegui dhcploc {yourIPaddress} e quindi premi il tasto 'd' per fare una scoperta fasulla. Se lo lasci in esecuzione senza premere alcun tasto, visualizzerà ogni richiesta DHCP e risponderà. Premere 'q' per uscire.

10
quux

Scapy è uno strumento python che è buono per queste attività di ordinamento. C'è un esempio di come fare esattamente questo qui .

9
Kyle Brandt

Per espandere il commento di l0c0b0x sull'uso di bootp.type == 2 come filtro. Il filtro bootp.type è disponibile solo in Wireshark/tshark. Non è disponibile in tcpdump che la posizione contestuale del suo commento mi ha portato a credere.

Tshark funziona perfettamente per questo.

Abbiamo la nostra rete divisa in numerosi domini di trasmissione, ognuno con la propria sonda basata su Linux con un punto di presenza sul dominio di trasmissione "locale" e su una sottorete amministrativa in un modo o nell'altro. Tshark combinato con ClusterSSH mi permette di cercare facilmente il traffico DHCP o (qualsiasi altra cosa per quello che conta) sugli ulteriori angoli della rete.

Questo troverà le risposte DHCP usando Linux:

# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
8
user62491

una volta stabilito che esiste un server dhcp non funzionante sulla rete, ho scoperto che il modo più rapido per risolverlo era ...

Invia una e-mail circolare a tutta l'azienda dicendo:

"quale di voi ha aggiunto un router wireless alla LAN, avete ucciso Internet per tutti gli altri"

aspettarsi una risposta imbarazzata o che il dispositivo in conflitto scompaia rapidamente :)

6
Shh now
3
juFo

Disabilitare il server DHCP principale e (ri) configurare una connessione.

Se ottieni un indirizzo IP, hai un ladro.

Se hai un Linux a portata di mano, lo standard dhcpclient ti dice l'indirizzo IP del server DHCP (altrimenti puoi annusare il traffico per vedere da dove proviene la risposta DHCP).

3
Vinko Vrsalovic

Esistono diversi modi, se gestisci una piccola rete il modo più semplice è spegnere/disabilitare/scollegare il tuo server DHCP e quindi eseguire ipconfig/rinnova o simile su un client e se ottieni e IP hai qualcosa di rougue sul tuo Rete.

Un altro modo sarebbe quello di usare Wireshark captet/analizzatore di pacchetti per esaminare il tuo traffico di rete e trovare connessioni DHCP, c'è un foglio di lavoro di laboratorio su come farlo disponibile da qui .

Ci sono anche un certo numero di programmi di utilità disponibili che possono essere usati per questo DHCP Explorer un altro è il probe DHCP che hai citato nel tuo post originale.

3
Jona

È possibile eseguire una scansione ping delle reti e quindi confrontarlo con il numero di contratti di locazione DHCP erogati dal server DHCP.

Devi avere un'idea generale del numero di dispositivi statici (forse interfacce di router e stampanti) che inclineranno leggermente questo numero, ma questo dovrebbe essere un modo rapido e preciso di identificarli su più reti.

2
Peter

su debian/ubuntu si hanno anche le opzioni per usare dhcpdump e/o tcpdump con l'aiuto di es dhclient

Usa dhcpdump:

  • 1.a) esegui dhcpdump -i eth0 in una shell/shell (eth0 o il nome della tua interfaccia)
  • 1.b) avvia dhclient in un'altra Shell (non deve funzionare correttamente)
  • 1.c) esamina l'output di dhcpdump per informazioni (dovrebbe essere un elenco formattato e informativo di Nice con la maggior parte dei dettagli)

Opzione 2 se non ti piace usare dhcpdump:

  • 2.a) esegui tcpdump -i eth0 -t -n > /tmp/my_file.txt in una shell/finestra
    (opzionale: -t = disabilita data/ora // -n = disabilita la risoluzione dei nomi, solo l'indirizzo IP, nessun nome server (per RHEL/centos usa -nn))
  • 2.b) avvia dhclient in un'altra Shell (non deve funzionare correttamente)
  • 2.c) interrompere l'esecuzione di tcpdump ()
  • 2.d) esamina il file /tmp/my_file.txt con il tuo editor preferito e cerca cose come: ".53" (la porta DNS predefinita)/"NX"/"CNAME"/"A?"/"AAAA" -

* sidenote: tcpdump e dhcpdump probabilmente devono essere installati (ad es .: Sudo apt get install tcpdump dhcpdump); dhcpdump dipende da tcpdump

2
eli

Suggerisco di avviare due terminali, uno per il monitoraggio e l'altro per l'invio di una richiesta. Terminal1 mostrerà le risposte da tutti i server DHCP esistenti incluso l'indirizzo MAC. Questo esempio è stato eseguito su Ubuntu:

Terminal1 (per il monitoraggio):

Sudo tcpdump -nelt udp port 68 | grep -i "boot. * reply"

tcpdump: soppressione dell'output dettagliato, utilizzare -v o -vv per l'ascolto della decodifica del protocollo completo su enp2s0, tipo di collegamento EN10MB (Ethernet), dimensione di acquisizione 262144 byte 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff, etere di tipo IPv4 (0x0800), lunghezza 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP/DHCP, risposta, lunghezza 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, ethertype IPv4 (0x0800), lunghezza 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP/DHCP, Rispondi, lunghezza 548

Terminal2 (per l'invio di una richiesta):

Sudo nmap --script broadcast-dhcp-discover -e eth0

A partire Nmap 7.01 ( https://nmap.org ) al 13-10-2019 21:21 EEST Risultati dello script pre-scan: | broadcast-dhcp-discover : | Risposta 1 di 1: | IP offerto: 192.168.1.228 | Tipo messaggio DHCP: DHCPOFFER | Tempo di leasing indirizzo IP: 2h00m00s | Identificatore server: 192.168.1.1 | Maschera sottorete: 255.255.255.0 | Router: 192.168.1.1 | _ Dominio Nome server: 8.8.8.8, 8.8.4.4 AVVERTENZA: non sono stati specificati target, quindi 0 host scansionati. Nmap fatto: 0 indirizzi IP (0 host su) scansionati in 0,94 secondi

Quel terminale di monitoraggio è necessario solo per vedere tutte le risposte (nmap è in grado di mostrare solo la prima risposta).

1
ajaaskel