
Snoopy: Un framework distribuito per il tracciamento e l'intercettazione dei dati
| || | | || || || || | | |
| _____|| |_| || _ || _ || _ || |_| |
| |_____ | || | | || | | || |_| || |
|_____ || _ || |_| || |_| || ___||_ _|
_____| || | | || || || | | |
|_______||_| |__||_______||_______||___| |___|
V0.1
"Amy, la tecnologia non è intrinsecamente buona o cattiva. Dipende da come viene usata. Come il Raggio della Morte."
-Professor Farnsworth
Benvenuto in Snoopy; un framework distribuito di tracciamento e profilazione. Snoopy è un lavoro in corso, quindi sentiti libero di inviare suggerimenti e/o correzioni. Questo documento illustra l'uso di base. Per comprendere meglio il contesto, dai un'occhiata a quanto segue:
Il software lato client gira su quelli che chiamiamo "Droni". Un Drone può essere qualsiasi dispositivo basato su Linux dotato di interfaccia WiFi (con driver di injection) e connettività Internet in uscita. Snoopy è stato testato su un Nokia N900 e su un laptop con BackTrack. I Droni eseguono le due operazioni seguenti:
Le richieste di probe raccolte (ad es. l'iPhone di Bob in cerca di BTHomeHub-4123) vengono caricate sul server Snoopy a intervalli regolari. Tutti i dispositivi che si associano all'AP Rogue ottengono l'accesso a Internet tramite il server Snoopy.
Il server inserisce tutte le richieste di probe in un database e usa Wigle per determinare le coordinate GPS e Google Maps per determinare gli indirizzi civici (e le foto Street View). Questo significa che se stai facendo probe per la tua rete di casa, potrei ottenere una foto della tua abitazione.
Ogni Drone si connette al server tramite OpenVPN e ha la propria sottorete. I client associati ricevono un indirizzo IP dal Drone e instradano il traffico attraverso di esso. Questo significa che sul server possiamo abbinare gli indirizzi IP dei client (e quindi gli indirizzi MAC) all'attività Internet.
Sul server accade quanto segue:
Il diagramma di rete è il seguente:
Client1 Drone1 Snoopy Server
+----------+ +-----------------------+ +-----------------------+
| wlan0-|<---WiFi--->|-at0 | | eth0|<-squid-sslstrip-mitmproxy->Internet
| | | | 10.2.0.1 | | 11.22.33.44| |
| dhclient | | | | | | Traffic inspection
| | | | tap0-|<-openvpn----->|-tap0 | Social media analysis
+----------+ | | 192.168.42.2 | +--/| 192.168.42.1 |
10.2.0.2 | +-----------------------+ | +-----------------------+
| |
| | route 10.2.0.0 via 192.168.42.2
| | route 10.3.0.0 via 192.168.42.3
Client2 | |
+----------+ | |
| wlan0-|<---+ |
| | |
| dhclient | |
| | |
+----------+ |
10.2.0.3 |
|
|
|
Client3 Drone2 |
+----------+ +-----------------------+ |
| wlan0-|<---WiFi--->|-at0 | |
| | | | 10.3.0.1 | |
| dhclient | | | | |
| | | | tap0-|<-openvpn--+
+----------+ | | 192.168.42.3 |
10.3.0.2 | +-----------------------+
|
|
|
Client4 |
+----------+ |
| wlan0-|<---+
| |
| dhclient |
| |
+----------+
10.3.0.3
Walter ha scritto un'interfaccia web per Snoopy. È accessibile all'indirizzo http://your-snoopy-server.com:5000/
Esistono diverse trasformazioni Maltego per esplorare graficamente i dati raccolti (vedi sotto per maggiori informazioni).
INSTALLAZIONE ================ L'installazione del server dovrebbe essere semplice. È stata testata solo su un'installazione standard di Ubuntu 12.04 LTS 32bit. Vengono apportate modifiche a diversi componenti del server, quindi è vivamente consigliato eseguire lo script di installazione su un'installazione di base e non eseguire molto altro su quella macchina (se non altro). In caso di dubbi, esamina il file install.sh e apporta manualmente le modifiche. In alternativa, esegui semplicemente l'installer (./install.sh).
UTILIZZO ======== Una volta terminata l'installazione, dovresti poter digitare 'snoopy' per caricare il menu del server. In caso contrario (o in caso di dubbi), vai nella home directory dell'utente creato durante la fase di installazione. All'interno della directory 'snoopy/server/' c'è un file 'snoopy.sh' che puoi eseguire. Di seguito il menu: