¿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?
networking
dhcp
l0c0b0x
fuente
fuente
Respuestas:
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.
fuente
tcpdump
,arp
, etc, con parámetros explícitos y explicación de esos parámetros.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 /all
en una máquina con Windows, y luego puede obtener la dirección MAC buscando esa dirección IP usandoarp -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:
http://www.cisco.com/en/US/docs/switches/lan/catalyst6500/ios/12.2SX/configuration/guide/snoodhcp.html
http://www.juniper.net/techpubs/en_US/junos9.2/topics/concept/port-security-dhcp-snooping.html
http://h40060.www4.hp.com/procurve/uk/en/pdfs/application-notes/AN-S12_ProCurve-DHCP-snooping-final.pdf
fuente
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.
fuente
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 .
fuente
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.
fuente
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í .
fuente
Para ampliar el comentario de l0c0b0x sobre el uso
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 remotos de la red.
Esto encontrará respuestas DHCP usando Linux:
fuente
tcpdump: syntax error
. Incluso publiqué una pregunta, tu respuesta me desbloqueó, ¡gracias! networkengineering.stackexchange.com/questions/39534/…-R <Read filter>
. Consigotshark: -R without -2 is deprecated. For single-pass filtering use -Y.
.-Y
funciona bienuna 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 :)
fuente
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).
fuente
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.
fuente
Puede usar RogueChecker de Microsoft:
enlace original: http://blogs.technet.com/b/teamdhcp/archive/2009/07/03/rogue-dhcp-server-detection.aspx
enlace con descarga: https://web.archive.org/web/20141022013752/http://blogs.technet.com/b/teamdhcp/archive/2009/07/03/rogue-dhcp-server-detection.aspx
También lea esta información:
https://social.technet.microsoft.com/wiki/contents/articles/25660.how-to-prevent-rogue-dhcp-servers-on-your-network.aspx
fuente
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.
fuente
en debian / ubuntu uno también tiene las opciones para usar
dhcpdump
y / otcpdump
con la ayuda de, por ejemplo,dhclient
Utilice dhcpdump:
dhcpdump -i eth0
en un shell / shell (eth0 o el nombre de su interfaz)dhclient
en otro shell (no tiene que ejecutarse correctamente)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:
tcpdump -i eth0 -t -n > /tmp/my_file.txt
en 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))dhclient
en otro shell (no tiene que ejecutarse correctamente)* nota al margen: tcpdump y dhcpdump probablemente tengan que estar instalados (por ejemplo:)
sudo apt get install tcpdump dhcpdump
; dhcpdump depende de tcpdumpfuente
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).
fuente