it-swarm-es.com

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

¿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é Sonda DHCP a través de la búsqueda, y pensé en probarlo. ¿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?

92
l0c0b0x

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

54
Zoredache

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 ejecutando ipconfig /all en una máquina con Windows, y luego puede obtener la dirección MAC buscando esa dirección IP usando arp -a.

En una Mac, ejecuta 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:

22
Jason Luther

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.

17
vartec

Los enfoques de Wireshark/DHCP Explorer/DHCP Probe son buenos para una verificación única o periódica. Sin embargo, recomendaría buscar en DHCP Snooping soporte 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 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.

15
Dave K

dhcploc.exe es la forma más rápida y práctica en los sistemas Windows. Está disponible en el XP Herramientas de soporte. Las Herramientas de soporte están en cada OEM/retail XP disco, pero pueden o no estar en "discos de recuperación" proporcionado por algunos OEM. También puede descargar de MS.

Es una herramienta de línea de comandos simple. Ejecutas dhcploc {yourIPaddress} y luego presionas la tecla 'd' para 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.

10
quux

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

9
Kyle Brandt

Para ampliar el comentario de l0c0b0x sobre el uso de bootp.type == 2 como 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 alejados de la red.

Esto encontrará respuestas DHCP usando Linux:

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

una vez que ha 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 :)

6
Shh now
3
juFo

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

3
Vinko Vrsalovic

Hay varias maneras, 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 Wireshark capturador/analizador de paquetes para ver 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 proporcional para hacer esto es Explorador DHCP otra es la sonda DHCP que mencionó en su publicación original.

3
Jona

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 de la cantidad 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 a través de múltiples redes.

2
Peter

en debian/ubuntu uno también tiene las opciones para usar dhcpdump y/o tcpdump con la ayuda de p. dhclient

Utilice dhcpdump:

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

Opción 2 si no te gusta usar dhcpdump:

  • 2.a) ejecutar tcpdump -i eth0 -t -n > /tmp/my_file.txt en un Shell/ventana
    (Opcional: -t = deshabilitar marca de tiempo // -n = deshabilitar la resolución de nombres, solo la dirección IP, sin nombres de servidor (para RHEL/centos use -nn))
  • 2.b) inicie dhclient en 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

2
eli

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

Inicio Nmap 7.01 ( https://nmap.org ) en 2019-10-13 21:21 EEST Resultados del script de preescaneo: | 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 | _ Dominio Servidor de nombres: 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 en marcha) analizados en 0.94 segundos

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

1
ajaaskel