Come forzare gli utenti della mia LAN a utilizzare un server DNS specifico con avvelenamento da arp?

0

Sto tentando di forzare tutti gli host sulla mia LAN a utilizzare un server DNS specifico per filtrare determinati materiali, tuttavia sto riscontrando dei problemi.

In passato ho avuto problemi nel tentativo di configurare il DHCP del mio router per assegnare il server DNS desiderato agli host perché alcuni utenti hanno semplicemente imparato a impostare il proprio server DNS (Google 8.8.8.8, ad esempio) sul computer.

Attualmente, ho uno script di avvelenamento ARP per reindirizzare tutto il traffico dal router gateway alla mia macchina. Nel frattempo, ho un secondo script python che ascolta il traffico della porta 53 in modo da poter intercettare i pacchetti di ricerca DNS, modificare l'IP di destinazione dal server DNS originale al server DNS desiderato, quindi inviarli al nuovo server DNS.

Sto pensando a questo nel modo giusto?

C'è un modo più semplice per forzare gli utenti su un determinato server DNS?

Sembra che non abbia traffico sulla mia macchina per la porta 53, anche se il firewall per quella porta è aperto, quindi non ho nemmeno la possibilità di visualizzare i pacchetti di richiesta DNS quando un utente è cercando di risolvere una ricerca dns, figuriamoci modificare il pacchetto.

Apprezzerei molto qualsiasi feedback o aiuto. Grazie!

    
posta user6374022 22.09.2018 - 20:12
fonte

1 risposta

1

Sei vicino, ma ci sono un paio di problemi. Anche se il traffico può essere reindirizzato alla tua macchina come risultato dell'avvelenamento ARP, il tuo socket sulla porta 53 non riceverà alcun pacchetto che non è indirizzato al tuo sistema, cosa che non avverrà se i client hanno specificato il proprio server DNS ( cioè la tua macchina è su 192.168.1.x, ma il pacchetto è destinato per 8.8.8.8. Probabilmente verrà inoltrato e non elaborato dallo stack di rete.)

Per rimediare a questo, puoi usare alcune regole del firewall. Non hai nemmeno bisogno del tuo ascoltatore sulla porta 53 per realizzare questo. Ecco un esempio di regola del firewall da aggiungere alla tua macchina MitM (o router se possibile):

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

Questo riscriverà qualsiasi pacchetto DNS che passa attraverso la tua macchina per avere un indirizzo di destinazione del tuo server DNS, presumendo che non ci siano altre regole firewall che lo impediscano.

Inoltre, @SteffenUllrich ha ragione; è un trucco per ARP-falsificare la tua rete, e bloccare o intercettare DNS non è una soluzione infallibile. Altri protocolli continueranno a funzionare, come DNS-over-HTTPS o DNScrypt. Gli utenti potrebbero eseguire il tunneling del traffico su una VPN o utilizzare un server proxy o molte altre tecniche.

Un'altra soluzione più approfondita potrebbe essere quella di limitare tutto il traffico in uscita sulla rete e costringere gli utenti a utilizzare un proxy HTTP che controlli. Dovresti anche intercettare il traffico TLS, il che significa che devi installare i certificati su tutti i dispositivi.

    
risposta data 22.09.2018 - 20:38
fonte

Leggi altre domande sui tag