Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
snoopy-ng — Snoopy v2.0 - framework modulare di tracciamento digitale terrestre | Kitploit
Strumenti/GitHubGitHub/sensepost/snoopy-ng
OSINT (Open Source Intelligence)Sniffing e Analisi dei PacchettiRicognizioneSicurezza BluetoothMappatura della ReteEsfiltrazione DatiRaccolta InformazioniSicurezza WirelessPenetration TestingCommand and ControlCrawlerAnalisi DNS
443129911 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHubsensepost/snoopy-ng

snoopy-ng

Snoopy v2.0 - framework modulare di tracciamento digitale terrestre

Vedi Repository

SensePost presenta:

root@kitploit:~
  /$$$$$$                                                   
 /$$__  $$                                                  
| $$  \__/ /$$$$$$$   /$$$$$$   /$$$$$$   /$$$$$$  /$$   /$$
|  $$$$$$ | $$__  $$ /$$__  $$ /$$__  $$ /$$__  $$| $$  | $$
 \____  $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  | $$
 /$$  \ $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$
|  $$$$$$/| $$  | $$|  $$$$$$/|  $$$$$$/| $$$$$$$/|  $$$$$$$
 \______/ |__/  |__/ \______/  \______/ | $$____/  \____  $$
                                        | $$       /$$  | $$
                                        | $$      |  $$$$$$/
                                        |__/       \______/
                        
                                               Version: 2.0
Code:    [email protected] // @glennzw
Visit:   www.sensepost.com // @sensepost
License: Non-commercial use

Benvenuto in Snoopy Versione 2.0!

  1. Configurazione Rapida ============== Hai poco tempo? Prova questo:

Per installare e configurare Snoopy:

root@kitploit:~
bash install.sh

Per salvare localmente i dati dei plugin wireless, sysinfo e heartbeat:

root@kitploit:~
snoopy -v -m wifi:mon=True -m sysinfo -m heartbeat -d myDrone -l London

Per sincronizzare i dati da un client a un server:

Server:

root@kitploit:~
snoopy_auth --create myDrone     # Create account
snoopy -v -m server              # Start server plugin

Client:

root@kitploit:~
snoopy -v -m wifi:mon=True -s http://<server>:9001/ -d myDrone -l London -k <key>
  1. INTRODUZIONE E PANORAMICA ============================= Snoopy è un framework distribuito per sensori, raccolta dati, intercettazione, analisi e visualizzazione. È scritto in formato modulare, consentendo la raccolta di dati arbitrari da varie fonti tramite plugin Python.

  2. Architettura

    Ogni istanza di Snoopy può eseguire più plugin simultaneamente. Un plugin raccoglie dati, che vengono interrogati dal processo principale di Snoopy e scritti in un database locale. Snoopy può sincronizzare i dati tra client (droni) e un server, e i client (droni) possono anche scaricare repliche dei dati da un server. Ogni istanza di Snoopy può eseguire i plugin appropriati alla sua posizione nel quadro generale. Ecco un diagramma che illustra una possibile configurazione:

    root@kitploit:~
     Drone01                     Server01
     +---------------+           +--------------+
     | Plugins:      |           | Plugins:     |
     |   * WiFi      |           |  *Server     |
     |   * Bluetooth |====3G====>|              |<=========================\
     |   * GSM       |           |              |                          ||
     |   * FitBit    |           |              |                          ||
     +---------------+           +--------------+                          ||
                                                                           ||
     Drone02                      Server02               Server03          ||
     +---------------+            +--------------+       +-------------+   ||
     | Plugins:      |            | Plugins:     |       | Plugins:    |   ||
     |   * WiFi      |            |  * Server    |       |  * Server   |   ||
     |   * Cookie    |=====Xbee==>|  * Heartbeat |==3G==>|  * Wigle    |<==\
     |     thief     |   ||       |              |       |  * DataViz  |   ||
     |   * GPS       |   ||       |              |       |             |   ||
     +---------------+   ||       +--------------+       +-------------+   ||
                         ||                                             Internet
     Drone03             ||                             Laptop01           || 
     +---------------+   ||                            +--------------+    ||                                
     | Plugins:      |   ||                            | Plugins:     |    ||
     |   * Thermal   |   ||                            |  *RemotePull |    ||
     |   * Camera    |===/                             |              |====/
     |   * Heat      |                                 |  Run:        |
     |               |                                 |   *Maltego   |
     +---------------+                                 +--------------+
    

Nell'illustrazione sopra, ci sono tre droni che eseguono e sincronizzano i loro dati verso due server separati. Uno sincronizza via 3G, gli altri due via Xbee. Il secondo server sincronizza i suoi dati con un terzo server. Infine, un client (laptop) scarica tutti i dati dal primo e dal terzo server ed esegue Maltego per esplorare i dati.

  1. Configurazione e Installazione

Eseguire 'sh install.sh' nella directory snoopy-ng.git installerà tutti i pacchetti richiesti. Offre la possibilità di installare aircrack dal sorgente, necessario per le distribuzioni che non includono questo pacchetto (la suite aircrack è usata per i plugin wireless). Non possiamo raccomandare abbastanza Maltego per l'esplorazione dei dati: una community edition (con alcune restrizioni) può essere scaricata gratuitamente dal sito Paterva all'indirizzo http://paterva.com.


  1. UTILIZZO ========

Base

Per vedere tutte le flag e le opzioni disponibili, abbiamo preparato due comandi per te:

root@kali:~# snoopy --help (shorthand -h)

Questo comando mostra tutte le opzioni disponibili, ad esempio a quale server sincronizzare, il nome del drone e la sua posizione. Inoltre, introduce anche come eseguire i vari plugin.

root@kali:~# snoopy --list (shorthand -i)

Questo comando elenca tutti i plugin disponibili e i parametri richiesti da ciascun plugin per funzionare correttamente. Per ottenere informazioni più dettagliate su ogni plugin, usa '-ii' o '-iii'. Per informazioni su un plugin specifico usa '-i -m '.

I plugin possono essere specificati con l'opzione --plugin (o l'abbreviazione -m). Si possono specificare più plugin, che verranno avviati nell'ordine in cui sono inseriti. Ogni plugin avrà 60 secondi per indicare il proprio stato di prontezza; dopo questo timeout verrà avviato il plugin successivo. Questo può essere utile se i plugin successivi dipendono dalle azioni di quelli precedenti.

Ogni plugin può accettare numerosi parametri (come indicato nell'output di --list) sotto forma di coppie chiave-valore separate da virgola. Di seguito usiamo il plugin 'example', che genera semplicemente numeri casuali.

root@kitploit:~
   snoopy --plugin example:x=1,v=True
   

Se le opzioni drone / posizione non vengono fornite, vengono usati valori predefiniti. In alternativa, possono essere specificate come di seguito.

root@kitploit:~
   snoopy --plugin example:x=1,v=True --drone myDrone --location Cansas

Sincronizzazione dei Dati

I dati possono essere sincronizzati su una macchina remota specificando l'opzione --server (-s). La macchina remota deve eseguire il plugin server (--plugin server). Prima di tutto va generata una chiave per un nome di drone. Di seguito è illustrato il procedimento.

Server

root@kitploit:~
    root@server:~# snoopy_auth --create myDrone01 --verbose
    [+] Creating new Snoopy server sync account
    [+] Key for 'myDrone01' is 'GWWVF'
    [+] Use this value in client mode to sync data to a remote server.
    root@kali:~# snoopy --plugin server
    [+] Running webserver on '0.0.0.0:9001'
    [+] Plugin server caught data for 2 tables.
    

Client

root@kitploit:~
    root@client:~# snoopy --plugin example:x=1 --drone myDrone --key GWWVF --server http://<server_ip>:9001/ --verbose
    [+] Starting Snoopy with plugins: example
    [+] Plugin example created new random number: 21
    [+] Snoopy successfully sunc 2 elements over 2 tables.
     

Recupero Remoto dei Dati

I dati possono essere recuperati da un server usando il plugin local_sync. Ad esempio, supponendo che il server di cui sopra sia in esecuzione, esegui questa operazione dal client:

root@kitploit:~
root@client:~# snoopy --plugin local_sync:server_url=http://<server_ip>:9001/ --drone myDrone --key GWWVF
[+] Plugin local_sync pulled 888 records from remote server.

Archiviazione nel Database

Il comportamento predefinito è archiviare tutti i dati in un file SQLITE snoopy.db. Questo può essere sovrascritto con il parametro --dbms. Consulta la documentazione di SQL Alchemy su come specificare diversi motori di database (http://docs.sqlalchemy.org/en/rel_0_9/dialects/index.html). Come esempio, di seguito usiamo MySQL:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=mysql://glenn:secret@localhost/snoopy_db
    [+] Capturing local only. Saving to 'mysql://glenn:secret@localhost/snoopy_db'   

Potrebbe essere utile usare l'archiviazione SQLITE su dispositivi più piccoli e far salvare i dati al plugin server su MySQL (o simile). Un ulteriore esempio può essere utile per specificare la posizione del file in cui archiviare i dati, ad esempio su un supporto rimovibile:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=sqlite:////media/USB01/snoopy.db
    

È disponibile un'opzione --flush (-f) per eseguire il 'flush' dei dati dall'archiviazione locale una volta che sono stati sincronizzati con un server a monte.

Avvio dei Servizi all'Avvio

Snoopy può essere avviato con uno script upstart (vedi la cartella ./setup/upstarts). Altri script upstart di esempio sono forniti nella stessa directory - ad esempio uno per attivare una connessione PPP da un modem 3G, e uno per creare un canale di comando remoto SSH.

Le distribuzioni basate su Debian (es. Kali) non sembrano supportare upstart. Nel frattempo, il file rc.local fornito può essere usato per avviare Snoopy e i servizi correlati all'avvio.


  1. VISUALIZZAZIONE DEI DATI =====================

Maltego è lo strumento preferito per eseguire la visualizzazione. Le istruzioni sono di seguito:

  1. Apri Maltego
  2. Seleziona 'Import Configuration'
  3. Scegli 'snoopy_entities.mtz' dalla cartella transforms

Questo dovrebbe importare sia le entità che le trasformate. Per iniziare, trascina l'entità 'Base of Operations' dalla scheda Snoopy nel menu Palette su un grafico vuoto. Come esempio, esegui le seguenti operazioni sull'entità:

  1. Fai clic con il tasto destro, seleziona Transforms, seleziona 'Get Drones'
  2. Sul drone desiderato, fai clic con il tasto destro e seleziona 'Get Location'
  3. Sulla posizione desiderata, fai clic con il tasto destro e seleziona 'Get Clients'
  4. Sui client desiderati, fai clic con il tasto destro e seleziona 'Get Observations'

Le trasformate servono per recuperare domini e cookie (dal monitoraggio passivo), cercare gli indirizzi stradali degli SSID, e molte sono bidirezionali (ad es. si possono cercare i client da una Location, o le Location da un client). È meglio sperimentare.

Specifica del Database

Se non si usa il formato sqlite predefinito, modifica il seguente file per specificare la posizione dei dati:

root@kitploit:~
    snoopy_ng/transforms/db_path.conf
    

Condivisione dei Grafici

Il grafico di Snoopy può essere condiviso da più analisti contemporaneamente usando la funzione di collaborazione di Maltego. Seleziona Collaboration e 'Share Current Graph'.


  1. USO COMMERCIALE =================== La licenza con cui Snoopy è distribuito vieta di trarre guadagno finanziario (o di altro tipo) dal suo utilizzo (vedi LICENSE.txt). Abbiamo una licenza separata disponibile per l'uso commerciale, che include funzionalità aggiuntive come:

    • Sincronizzazione dei dati via XBee
    • Plugin avanzati
    • Trasformate extra/personalizzate
    • Interfaccia web
    • Droni preassemblati

Mettiti in contatto ([email protected] / [email protected]) se desideri collaborare con noi.


  1. APPENDICE =========== Scrivere Plugin

Guarda il file plugins/example.py per capire come devono essere scritti i plugin. Qualsiasi file nella cartella plugins sarà trattato come un plugin e deve avere le seguenti proprietà:

  1. Fornire le informazioni del plugin e le definizioni opzionali dei parametri.
  2. Fornire le definizioni dello schema SQL per i dati che raccoglierà.
  3. Restituire i dati nel formato definito sopra quando viene interrogato.

Per il resto, il plugin può fare tutto ciò che vuoi.

Hardware

Snoopy funziona su qualsiasi dispositivo Linux con supporto sufficiente per installare i file dal file install.sh. Cioè Python e i pacchetti correlati. Il supporto hardware varia a seconda dei plugin richiesti, ma per lo scenario più comune di raccolta dati WiFi e caricamento via 3G, si consiglia quanto segue:

  • BeagleBone Black
  • Hub USB alimentato (con splitter a Y per risparmiare sulle due prese)
  • Adattatore WiFi Alfa AWUS036h
  • Modem Huawei E160
  • GPS BlueNext BN903S
  • Almeno un alimentatore da 2A (varierà in base alle periferiche che hai)

Sistema Operativo

Sono stati testati Kali 1.05 e Ubuntu 12.04. Sistemi simili dovrebbero funzionare.

Note Aggiuntive:

  • Puoi eseguire tutti i plugin che vuoi contemporaneamente. I plugin si avviano in sequenza, nell'ordine fornito nella riga di comando.
  • Il plugin successivo inizierà l'avvio solo quando quello precedente avrà indicato di essere pronto (con un timeout di 60 secondi). Questo è utile se i plugin successivi dipendono da quelli precedenti.
  • Se non specifichi un drone o una posizione, verranno forniti quelli predefiniti.
  • Puoi eseguire Snoopy senza plugin per sincronizzare solo i dati.

Problemi Noti

Si verifica una condizione di errore quando si raccolgono dati localmente, si sincronizza con un server remoto e poi si scarica una replica dal server. Ad es.:

Server

root@kitploit:~
    root@kali:~# snoopy -m server -m wigle:username=u,password=p,[email protected]
    [+] Running webserver on '0.0.0.0:9001'
    [+] Plugin server caught data for 2 tables.

     

Client

root@kitploit:~
	root@client:~# snoopy -m wifi -m local_sync:server_url=http://1.1.1.1:9001/ -d myDrone -l London -k secretkey -s http://1.1.1.1:9001/
Scarica lo strumento