¿Cómo obligar a los usuarios de mi LAN a usar un servidor DNS específico con arp envenenamiento?

0

Estoy intentando forzar a todos los hosts en mi LAN a usar un servidor DNS específico para filtrar cierto material, sin embargo, estoy teniendo problemas.

He tenido problemas en el pasado al intentar configurar el DHCP de mi enrutador para asignar el servidor DNS deseado a los hosts porque algunos usuarios simplemente han aprendido a configurar su propio servidor DNS (el 8.8.8.8 de Google, por ejemplo) en la computadora.

Actualmente, tengo una secuencia de comandos de envenenamiento ARP para redirigir todo el tráfico del enrutador de la puerta de enlace a mi máquina. Mientras tanto, tengo una segunda secuencia de comandos de Python que escucha el tráfico del Puerto 53, por lo que puedo interceptar los paquetes de búsqueda de DNS, modificar la IP de destino del servidor DNS original al servidor de DNS deseado y luego enviarlos al nuevo servidor de DNS.

¿Estoy pensando en esto de la manera correcta?

¿Hay una manera más fácil de forzar a los usuarios a un determinado servidor DNS?

Parece que ni siquiera recibo tráfico en mi máquina para el puerto 53, aunque el firewall para ese puerto está abierto, por lo que ni siquiera tengo la oportunidad de ver los paquetes de solicitud de DNS cuando un usuario está tratando de resolver una búsqueda de DNS, y mucho menos modificar el paquete.

Realmente agradecería cualquier comentario o ayuda. Gracias!

    
pregunta user6374022 22.09.2018 - 20:12
fuente

1 respuesta

1

Estás cerca, pero hay un par de problemas. Aunque el tráfico puede ser redirigido a su máquina como resultado del envenenamiento ARP, su socket en el puerto 53 no recibirá ningún paquete que no esté dirigido a su sistema, lo que no será el caso si los clientes han especificado su propio servidor DNS ( es decir, su máquina está en 192.168.1.x, pero el paquete está destinado a 8.8.8.8. Es probable que su pila de red lo reenvíe y no lo procese.

Para remediar esto, puedes usar algunas reglas de firewall. Ni siquiera necesita su oyente en el puerto 53 para lograr esto. Aquí hay una regla de firewall de ejemplo para agregar a su máquina MitM (o enrutador si es posible):

iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination <your DNS server's IP address>

Esto reescribirá cualquier paquete DNS que pase a través de su máquina para tener una dirección de destino de su servidor DNS, asumiendo que no tiene otras reglas de firewall que lo impidan.

También, @SteffenUllrich tiene razón; Es un truco para falsificar su propia red de ARP, y bloquear o interceptar DNS no es una solución infalible. Otros protocolos seguirán funcionando, como DNS-over-HTTPS o DNScrypt. Los usuarios pueden canalizar su tráfico a través de una VPN o usar un servidor proxy, o muchas otras técnicas.

Otra solución más profunda puede ser restringir todo el tráfico saliente en su red y obligar a los usuarios a usar un proxy HTTP que usted controla. También tendrías que interceptar el tráfico TLS, lo que significa que necesitarías instalar certificados en todos los dispositivos.

    
respondido por el multithr3at3d 22.09.2018 - 20:38
fuente

Lea otras preguntas en las etiquetas