¿Cómo puedo encontrar si hay un servidor DHCP falso en mi red?

92

¿Cuál es el mejor enfoque para determinar si tengo un servidor DHCP falso dentro de mi red?

Me pregunto cómo abordan la mayoría de los administradores este tipo de problemas. Encontré la sonda DHCP a través de la búsqueda y pensé en probarla. ¿Alguien ha tenido experiencia con eso? (Me gustaría saber antes de tomar el tiempo para compilarlo e instalarlo).

¿Conoces alguna herramienta útil o mejores prácticas para encontrar servidores DHCP no autorizados?

l0c0b0x
fuente
2
Herramienta MS y muy simple de usar! Detección del servidor DHCP Rogue - RogueChecker.zip blogs.technet.com/b/teamdhcp/archive/2009/07/03/…
aa.malta
Encontré una referencia oficial a su enlace aa.malta en social.technet.microsoft.com/wiki/contents/articles/… pero el enlace ya no parece funcionar a partir de 2016. Me muestra publicaciones de blog de 2009, pero solo vea las publicaciones del 6 de julio y el 29 de junio. Parece que no hay una publicación del 3 de julio, como lo indica la URL del enlace que publicó. Parece que MS lo eliminó por quién sabe qué razón.
Daniel
Parece que este enlace directo (que encontré en un sitio de WordPress) funciona para descargar el archivo desde un servidor de Microsoft. Link funciona a partir de enero de 2016. Dado que la URL es Microsoft, creo que se puede confiar, pero no garantizo: blogs.technet.com/cfs-file.ashx/__key/…
Daniel
La máquina Wayback tiene una copia web.archive.org/web/20100601022750/http://blogs.technet.com/b/…
antgiant

Respuestas:

54

Un método simple es simplemente ejecutar un sniffer como tcpdump / wireshark en una computadora y enviar una solicitud de DHCP. Si ve ofertas que no sean de su servidor DHCP real, entonces sabe que tiene un problema.

Zoredache
fuente
28
Ayuda a utilizar el siguiente filtro: "bootp.type == 2" (solo para mostrar ofertas de DHCP y ver si hay una respuesta de fuentes diferentes / desconocidas)
l0c0b0x
44
Use un programa como DHCP-Find ( softpedia.com/get/Network-Tools/Network-IP-Scanner/… ) junto con TCPDump / Wireshark para activar las respuestas de DHCP.
Salsa
1
¿Puedes ofrecer una solución más específica?
tarabyte
@tarabyte No estoy seguro de qué solución o mejoras debo ofrecer. ¿Creo que esta pregunta tiene una cobertura bastante buena de la docena de otras buenas respuestas? Mi opción de ir a estos días es simplemente configurar sus interruptores para bloquear DHCP como sugirió Jason Luther. ¿Había algo específico que necesitara ser cubierto mejor?
Zoredache
2
Me esperaba más de una secuencia de comandos que hacen uso de tcpdump, arp, etc, con parámetros explícitos y explicación de esos parámetros.
tarabyte
22

Para recapitular y agregar a algunas de las otras respuestas:

Desactive temporalmente su servidor DHCP de producción y vea si otros servidores responden.

Puede obtener la dirección IP del servidor ejecutándose ipconfig /allen una máquina con Windows, y luego puede obtener la dirección MAC buscando esa dirección IP usando arp -a.

En una Mac, ejecute ipconfig getpacket en0(o en1). Ver http://www.macosxhints.com/article.php?story=20060124152826491 .

La información del servidor DHCP generalmente está en / var / log / messages. sudo grep -i dhcp /var/log/messages*

Deshabilitar su servidor DHCP de producción podría no ser una buena opción, por supuesto.

Use una herramienta que busque específicamente servidores DHCP no autorizados

Consulte http://en.wikipedia.org/wiki/Rogue_DHCP para obtener una lista de herramientas (muchas de las cuales se enumeraron en otras respuestas).

Configure los conmutadores para bloquear las ofertas de DHCP

La mayoría de los conmutadores administrados se pueden configurar para evitar servidores DHCP no autorizados:

Jason Luther
fuente
17

dhcpdump , que toma la forma de entrada tcpdump y muestra solo los paquetes relacionados con DHCP. Me ayudó a encontrar Windows rootkited, haciéndome pasar por falso DHCP en nuestra LAN.

vartec
fuente
15

Los enfoques de Wireshark / DHCP explorer / DHCP Probe son buenos para una verificación única o periódica. Sin embargo, recomendaría buscar el soporte de DHCP Snooping en su red. Esta característica proporcionará protección constante contra servidores DHCP no autorizados en la red, y es compatible con muchos proveedores de hardware diferentes.

Aquí está el conjunto de características como se indica en los documentos de Cisco .

• Valida los mensajes DHCP recibidos de fuentes no confiables y filtra los mensajes no válidos.

• Limita la velocidad del tráfico DHCP de fuentes confiables y no confiables.

• Crea y mantiene la base de datos de enlace de indagación DHCP, que contiene información sobre hosts no confiables con direcciones IP arrendadas.

• Utiliza la base de datos de enlace de indagación DHCP para validar solicitudes posteriores de hosts no confiables.

Dave K
fuente
10

dhcploc.exe es la forma más rápida y práctica en los sistemas Windows. Está disponible en las herramientas de soporte de XP. Las herramientas de soporte se encuentran en cada disco OEM / minorista XP, pero pueden o no estar en "discos de recuperación" proporcionados por algunos OEM. También puedes descargarlos desde MS.

Es una herramienta de línea de comandos simple. Ejecutar dhcploc {} yourIPaddress y luego pulsa la tecla 'D' de hacer un descubrimiento falso. Si lo deja ejecutándose sin presionar ninguna tecla, mostrará todas las solicitudes de DHCP y las responderá. Presione 'q' para salir.

quux
fuente
Acabo de usar esto en combinación con matar puertos de conmutadores individuales para rastrear un servidor malicioso furtivo con el que estábamos tratando. ¡Buen material!
DHayes
1
Todavía puede usar DHCPloc.exe en Windows 7: 1. Descargue "Herramientas de soporte de Windows XP Service Pack 2" desde [aquí] [1]. 2. Haga clic derecho en el ejecutable y seleccione Propiedades-> Compatibilidad, luego active el Modo de compatibilidad y configúrelo en "Windows XP (Service Pack 3)". 3. Instalar como de costumbre. DHCPLoc.exe funciona bien en mi instalación Win7 x64. [1]: microsoft.com/en-us/download/details.aspx?id=18546
parsley72
1
Acabo de notar que puedes descargar solo el ejecutable desde la siguiente ubicación y funciona bien en Win 10 x64: gallery.technet.microsoft.com/DHCPLOC-Utility-34262d82
PeterJ
9

Scapy es una herramienta de creación de paquetes basada en Python que es buena para estas tareas de clasificación. Hay un ejemplo de cómo hacer exactamente esto aquí .

Kyle Brandt
fuente
2
Wow, creo que Scapy es tan poderoso después de profundizar en él durante varios días. Supera las herramientas de mierda como dhcpfind.exe y dhcploc.exe. Scapy 2.2 puede ejecutarse en Linux y Windows: probé ambos. La única barrera es que DEBE conocer el lenguaje de programación Python en cierta medida para aprovechar su poder.
Jimm Chen
El enlace que ha publicado está roto
Jason S
@JasonS Hola, he actualizado el enlace, pero el cambio está pendiente de revisión por pares ... Mientras espero, puede encontrarlo aquí: bitbucket.org/secdev/scapy/wiki/doc/IdentifyingRogueDHCPServers
Huygens
7

Para ampliar el comentario de l0c0b0x sobre el uso bootp.type == 2como filtro. El filtro bootp.type solo está disponible en Wireshark / tshark. No está disponible en tcpdump, que la ubicación contextual de su comentario me hizo creer.

Tshark funciona perfectamente para esto.

Tenemos nuestra red dividida en numerosos dominios de difusión, cada uno con su propia sonda basada en Linux con un punto de presencia en el dominio de difusión "local" y en una subred administrativa de una manera u otra. Tshark combinado con ClusterSSH me permite buscar fácilmente el tráfico DHCP o (cualquier otra cosa) en los rincones más remotos de la red.

Esto encontrará respuestas DHCP usando Linux:

# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
Comunidad
fuente
Muy útil, pasé bastante tiempo tratando de entender por qué me estaba poniendo tcpdump: syntax error. Incluso publiqué una pregunta, tu respuesta me desbloqueó, ¡gracias! networkengineering.stackexchange.com/questions/39534/…
Elijah Lynn
1
Además, creo que algo ha cambiado con el -R <Read filter>. Consigo tshark: -R without -2 is deprecated. For single-pass filtering use -Y.. -Yfunciona bien
Elijah Lynn el
6

una vez que has establecido que hay un servidor dhcp falso en la red, encontré que la forma más rápida de resolverlo era ...

Envíe un correo electrónico a toda la compañía diciendo:

"cuál de ustedes ha agregado un enrutador inalámbrico a la LAN, ha matado Internet para todos los demás"

esperar una respuesta tímida, o el dispositivo en conflicto desaparecerá rápidamente :)

Shh ahora
fuente
3

Deshabilite el servidor DHCP principal y (re) configure una conexión.

Si obtienes una dirección IP, tienes un pícaro.

Si tiene un Linux a mano, el dhcpclient estándar le indica la dirección IP del servidor DHCP (de lo contrario, puede rastrear el tráfico para ver de dónde proviene la respuesta DHCP).

Vinko Vrsalovic
fuente
2
Si bien esto, por supuesto, funcionaría, detener un servidor DHCP de producción probablemente no sea el mejor enfoque si realmente le preocupa proporcionar el servicio ...
Massimo
2
Depende de la cantidad de personas a las que sirve. Puede interrumpir el servicio durante un par de minutos en la mayoría de los casos y nadie se dará cuenta, especialmente en la mitad del día cuando la mayoría de las personas ya tienen su contrato de arrendamiento.
Vinko Vrsalovic
3

Hay varias formas, si está ejecutando una red pequeña, la forma más simple es apagar / deshabilitar / desconectar su servidor dhcp y luego ejecutar ipconfig / renew o similar en un cliente y si obtiene e IP tiene algo falso en su red.

Otra forma sería usar el capturador / analizador de paquetes Wireshark para observar el tráfico de su red y encontrar conexiones DHCP, hay una hoja de trabajo de laboratorio sobre cómo hacer esto disponible desde aquí .

También hay una serie de utilidades disponibles que, en proporción a esto, es el explorador DHCP, otra es la sonda DHCP que mencionó en su publicación original.

Jona
fuente
2

Puede hacer un barrido de ping de sus redes y luego compararlo con el número de arrendamientos DHCP entregados por su servidor DHCP.

Debe tener una idea general del número de dispositivos estáticos (interfaces de enrutador e impresoras, tal vez) que sesgarán ligeramente este número, pero esta debería ser una forma rápida y precisa de identificarlos en varias redes.

Peter
fuente
0

en debian / ubuntu uno también tiene las opciones para usar dhcpdumpy / o tcpdumpcon la ayuda de, por ejemplo,dhclient

Utilice dhcpdump:

  • 1.a) ejecutar dhcpdump -i eth0en un shell / shell (eth0 o el nombre de su interfaz)
  • 1.b) comienza dhclienten otro shell (no tiene que ejecutarse correctamente)
  • 1.c) busque información en la salida dhcpdump(debe ser una buena lista formateada e informativa de la mayoría de los detalles)

Opción 2 si no te gusta usar dhcpdump:

  • 2.a) ejecutar tcpdump -i eth0 -t -n > /tmp/my_file.txten un shell / ventana
    (opcional: -t= deshabilitar la marca de tiempo // -n= deshabilitar la resolución de nombre, solo la dirección IP, sin nombres de servidor (para RHEL / centos use -nn))
  • 2.b) comienza dhclienten otro shell (no tiene que ejecutarse correctamente)
  • 2.c) detener la ejecución de tcpdump ()
  • 2.d) examine el archivo /tmp/my_file.txt con su editor favorito y busque cosas como: ".53" (el puerto DNS predeterminado) / "NX" / "CNAME" / "A?" / "AAAA" -

* nota al margen: tcpdump y dhcpdump probablemente tengan que estar instalados (por ejemplo:) sudo apt get install tcpdump dhcpdump; dhcpdump depende de tcpdump

eli
fuente
0

Sugiero iniciar dos terminales, una para monitorear y otra para enviar una solicitud. Terminal1 mostrará las respuestas de todos los servidores DHCP existentes, incluida la dirección MAC. Este ejemplo se ejecutó en Ubuntu:

Terminal1 (para monitoreo):

sudo tcpdump -nelt udp puerto 68 | grep -i "boot. * reply"

tcpdump: salida detallada suprimida, use -v o -vv para escuchar decodificación de protocolo completo en enp2s0, tipo de enlace EN10MB (Ethernet), tamaño de captura 262144 bytes 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff: ff, ethertype IPv4 (0x0800), longitud 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP / DHCP, Respuesta, longitud 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, ethertype IPv4 (0x0800), longitud 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP / DHCP, respuesta, longitud 548

Terminal2 (para enviar una solicitud):

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

A partir de Nmap 7.01 ( https://nmap.org ) en 2019-10-13 21:21 EEST Pre-scan script results: | broadcast-dhcp-discover: | Respuesta 1 de 1: | IP ofrecida: 192.168.1.228 | Tipo de mensaje DHCP: DHCPOFFER | Tiempo de arrendamiento de la dirección IP: 2h00m00s | Identificador del servidor: 192.168.1.1 | Máscara de subred: 255.255.255.0 | Enrutador: 192.168.1.1 | _ Servidor de nombres de dominio: 8.8.8.8, 8.8.4.4 ADVERTENCIA: No se especificaron objetivos, por lo que se analizaron 0 hosts. Nmap hecho: 0 direcciones IP (0 hosts arriba) escaneadas en 0.94 segundos

Ese terminal de monitoreo es necesario solo para ver todas las respuestas (nmap solo puede mostrar la primera respuesta).

ajaaskel
fuente