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


92

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 la sonda DHCP durante 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?


2
Strumento MS e molto semplice da usare! Rilevamento di server DHCP non autorizzati - RogueChecker.zip blogs.technet.com/b/teamdhcp/archive/2009/07/03/…
aa.malta

Ho trovato un riferimento ufficiale al tuo link aa.malta su social.technet.microsoft.com/wiki/contents/articles/… ma il link non sembra più funzionare dal 2016. Mi mostra i post del blog dal 2009, ma solo io vedi i post per il 6 luglio e il 29 giugno. Non sembra esserci un post del 3 luglio come indicato dall'URL del link che hai pubblicato. Sembra che MS l'abbia rimosso per chissà quale motivo.
Daniel,

Sembra che questo collegamento diretto (che ho trovato su un sito wordpress) funzioni per scaricare il file da un server Microsoft. Il collegamento funziona a partire da gennaio 2016. Poiché l'URL è Microsoft, ritengo che possa essere attendibile, ma non fornisco garanzie: blogs.technet.com/cfs-file.ashx/__key/…
Daniel

Risposte:


54

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.


28
Aiuta a utilizzare il seguente filtro: "bootp.type == 2" (per mostrare solo le offerte DHCP e vedere se c'è una risposta da fonti diverse / sconosciute)
l0c0b0x

4
Utilizzare un programma come DHCP-Find ( softpedia.com/get/Network-Tools/Network-IP-Scanner/… ) insieme a TCPDump / Wireshark per attivare le risposte DHCP.
saluce,

1
Potete offrire una soluzione più specifica?
Tarabyte,

@tarabyte Non sono sicuro di quale soluzione o miglioramenti dovrei offrire. Penso che questa domanda abbia una buona copertura dalla dozzina di altre buone risposte? La mia opzione goto in questi giorni è semplicemente configurare i tuoi switch per bloccare DHCP come suggerito da Jason Luther. C'era qualcosa di specifico che doveva essere coperto meglio?
Zoredache,

2
Mi aspettavo di più di una sequenza di comandi che fanno uso di tcpdump, arpe così via con i parametri espliciti e spiegazione di tali parametri.
Tarabyte,

22

Per ricapitolare e aggiungere ad alcune delle altre risposte:

Disabilitare temporaneamente il server DHCP di produzione e vedere se altri server rispondono.

È possibile ottenere l'indirizzo IP del server eseguendo ipconfig /allsu un computer Windows, quindi è possibile ottenere l'indirizzo MAC cercando tale indirizzo IP utilizzando 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.

Utilizzare 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).

Configurare gli switch per bloccare le offerte DHCP

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


17

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


15

Gli approcci Wireshark / DHCP explorer / DHCP Probe sono validi per un controllo una tantum o periodico. Tuttavia, ti consiglio di consultare il supporto snooping DHCP sulla tua rete. Questa funzione fornirà una protezione costante dai server DHCP non autorizzati sulla rete ed è supportata da molti fornitori di hardware diversi.

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

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

• Limite di 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.



10

dhcploc.exe è il modo più rapido e pratico per i sistemi Windows. È disponibile negli strumenti di supporto di XP. Gli strumenti di supporto si trovano su ogni disco XP OEM / retail, ma possono o meno essere presenti su "dischi di ripristino" forniti da alcuni OEM. Puoi anche scaricarli da MS.

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


L'ho usato solo in combinazione con l'uccisione di singole porte dello switch per rintracciare un subdolo server malvagio di cui ci occupavamo. Roba buona!
DHayes,

1
È ancora possibile utilizzare DHCPloc.exe su Windows 7: 1. Scaricare "Strumenti di supporto di Windows XP Service Pack 2" da [qui] [1]. 2. Fare clic con il tasto destro del mouse sull'eseguibile e selezionare Proprietà-> Compatibilità, quindi attivare Modalità compatibilità e impostarlo su "Windows XP (Service Pack 3)". 3. Installa normalmente. DHCPLoc.exe funziona bene sulla mia installazione di Win7 x64. [1]: microsoft.com/en-us/download/details.aspx?id=18546
parsley72

1
Ho appena notato che puoi scaricare solo l'eseguibile dalla seguente posizione e funziona bene con Win 10 x64: gallery.technet.microsoft.com/DHCPLOC-Utility-34262d82
PeterJ

9

Scapy è uno strumento di creazione di pacchetti basato su Python che è utile per queste attività di ordinamento. C'è un esempio di come fare esattamente questo qui .


2
Wow, trovo che Scapy sia così potente dopo averlo approfondito per diversi giorni. Supera gli strumenti scadenti come dhcpfind.exe e dhcploc.exe. Scapy 2.2 può essere eseguito su Linux e Windows - ho provato entrambi. L'unica barriera è che DEVI conoscere il linguaggio di programmazione Python in una certa misura per sfruttarne il potere.
Jimm Chen,

Il link che hai pubblicato è interrotto
Jason S,

@JasonS Ciao, ho aggiornato il link, ma il cambiamento è in attesa di revisione tra pari ... In attesa puoi trovarlo qui: bitbucket.org/secdev/scapy/wiki/doc/IdentifyingRogueDHCPServers
Huygens

7

Espandere il commento di l0c0b0x sull'uso bootp.type == 2come 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 consente di cercare facilmente il traffico DHCP o (qualsiasi altra cosa relativa) 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'

Molto utile, ho trascorso un bel po 'di tempo cercando di capire perché stavo ottenendo tcpdump: syntax error. Anche postato una domanda su di esso, la tua risposta mi ha sbloccato, grazie! networkengineering.stackexchange.com/questions/39534/…
Elijah Lynn

1
Inoltre, penso che qualcosa sia cambiato con -R <Read filter>. Ho capito tshark: -R without -2 is deprecated. For single-pass filtering use -Y.. -Yfunziona bene.
Elijah Lynn

6

una volta stabilito che esiste un server dhcp canaglia sulla rete, ho trovato 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 :)


3

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).


2
Mentre questo ovviamente funzionerebbe, arrestare un server DHCP di produzione non è probabilmente l'approccio migliore se si è effettivamente preoccupati di fornire il servizio ...
Massimo

2
Dipende dalla quantità di persone che stai servendo. Nella maggior parte dei casi è possibile interrompere il servizio per un paio di minuti e nessuno se ne accorgerà, soprattutto a metà giornata quando la maggior parte delle persone ha già il contratto di locazione.
Vinko Vrsalovic,

3

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 utilizzare l' analizzatore / analizzatore di pacchetti Wireshark per esaminare il traffico di rete e trovare connessioni DHCP, c'è un foglio di lavoro di laboratorio su come farlo da qui .

Ci sono anche un certo numero di programmi di utilità disponibili che possono essere utilizzati come esploratore DHCP, un altro è un probe DHCP che hai citato nel tuo post originale.



2

È 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.


0

su debian / ubuntu si hanno anche le opzioni da usare dhcpdumpe / o tcpdumpcon l'aiuto di esdhclient

Usa dhcpdump:

  • 1.a) eseguito dhcpdump -i eth0in una shell / shell (eth0 o il nome della tua interfaccia)
  • 1.b) avviare dhclientin un'altra shell (non deve funzionare correttamente)
  • 1.c) guarda l'output di dhcpdumpper informazioni (dovrebbe essere un bel elenco formattato e informativo con la maggior parte dei dettagli)

Opzione 2 se non ti piace usare dhcpdump:

  • 2.a) eseguito tcpdump -i eth0 -t -n > /tmp/my_file.txtin una shell / finestra
    (opzionale: -t= disabilita data / ora // -n= disabilita risoluzione nome, solo indirizzo IP, nessun nome server (per RHEL / centos usare -nn))
  • 2.b) avviare dhclientin un'altra shell (non deve essere eseguito 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


0

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

Avvio di Nmap 7.01 ( https://nmap.org ) al 13-10-2019 21:21 Risultati dello script pre-scan EEST: | broadcast-dhcp-discover: | Risposta 1 di 1: | IP offerto: 192.168.1.228 | Tipo di messaggio DHCP: DHCPOFFER | Tempo di leasing dell'indirizzo IP: 2h00m00s | Identificatore del server: 192.168.1.1 | Maschera di sottorete: 255.255.255.0 | Router: 192.168.1.1 | _ Domain Name Server: 8.8.8.8, 8.8.4.4 ATTENZIONE: Nessun target specificato, quindi 0 host scansionati. Nmap completata: 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).

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.