Sto facendo esperimenti con Spoof ARP con arpspoof e ho installato con successo un uomo nel mezzo tra due macchine.
Configuriamo l'inoltro IP usando:
echo 1 > /proc/sys/net/ipv4/ip_forward
Questo ci consente di analizzare le comunicazioni usando, per esempio, Wireshark. In teoria, dovremmo essere in grado di modificare anche il traffico. Sono a conoscenza di strumenti come Ettercap e SSLstrip, ma come impersonerei manualmente il server di destinazione?
Per riformulare la domanda: il client A sta parlando al server B. L'attaccante C (che sono io) è in mezzo e attualmente sta inoltrando i pacchetti in entrambe le direzioni. In che modo C, a un livello basso, reindirizza le richieste destinate a B alla mia macchina?
Tutti i sistemi coinvolti utilizzano BackTrack.
Aggiornamento:
I miei comandi arpspoof (sulla macchina d'attacco, C):
arpspoof -i eth0 -t 8.0.0.2 8.0.0.3 # Tell 8.0.0.2 (A) that I am 8.0.0.3 (B)
arpspoof -i eth0 -t 8.0.0.3 8.0.0.2 # Tell 8.0.0.3 (B) that I am 8.0.0.2 (A)
I miei comandi netcat per il test:
nc -p 5555 -l # Run on target B, listen on port 5555
nc -p 5555 -l # Run same thing on attack machine
nc 8.0.0.3 5555 # Run on A; connect to B.
Il mio obiettivo è far sì che C ponga come B quando A esegue l'ultimo comando.
Se IP forwarding è attivo, A si connette a B. Se l'IP forwarding è disattivato, A non riesce a connettersi con: (UNKNOWN) [8.0.0.3] 5555 (?) : Connection timed out
. Il problema è che il livello IP non risponde a un pacchetto significato per un altro indirizzo IP; quindi sebbene C riceva il pacchetto ad un livello più basso, non viene passato "in alto" allo stack. Il mio obiettivo è quello di ottenere questo in pila.