Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
snoopy-ng — Snoopy v2.0 - cadre de suivi terrestre numérique modulaire | Kitploit
Outils/GitHubGitHub/sensepost/snoopy-ng
OSINT (Renseignement de Sources Ouvertes)Sniffing et Analyse de PaquetsReconnaissanceSécurité BluetoothCartographie RéseauExfiltration de DonnéesCollecte d'InformationsSécurité Sans FilTests d'IntrusionCommandement et ContrôleCrawlerAnalyse DNS
4431299il y a 11 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHubsensepost/snoopy-ng

snoopy-ng

Snoopy v2.0 - cadre de suivi terrestre numérique modulaire

Voir le dépôt

SensePost présente :

root@kitploit:~
  /$$$$$$                                                   
 /$$__  $$                                                  
| $$  \__/ /$$$$$$$   /$$$$$$   /$$$$$$   /$$$$$$  /$$   /$$
|  $$$$$$ | $$__  $$ /$$__  $$ /$$__  $$ /$$__  $$| $$  | $$
 \____  $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  | $$
 /$$  \ $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$
|  $$$$$$/| $$  | $$|  $$$$$$/|  $$$$$$/| $$$$$$$/|  $$$$$$$
 \______/ |__/  |__/ \______/  \______/ | $$____/  \____  $$
                                        | $$       /$$  | $$
                                        | $$      |  $$$$$$/
                                        |__/       \______/
                        
                                               Version: 2.0
Code:    [email protected] // @glennzw
Visitez :   www.sensepost.com // @sensepost
Licence : Utilisation non commerciale

Bienvenue dans Snoopy Version 2.0 !

  1. Configuration rapide ============== Pressé(e) ? Essayez ceci :

Pour installer et configurer Snoopy :

root@kitploit:~
bash install.sh

Pour sauvegarder localement les données des plugins wireless, sysinfo et heartbeat :

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

Pour synchroniser les données d'un client vers un serveur :

Serveur :

root@kitploit:~
snoopy_auth --create myDrone     # Créer le compte
snoopy -v -m server              # Démarrer le plugin serveur

Client :

root@kitploit:~
snoopy -v -m wifi:mon=True -s http://<server>:9001/ -d myDrone -l London -k <key>
  1. INTRODUCTION ET APERÇU ============================= Snoopy est un framework distribué de capteurs, collecte de données, interception, analyse et visualisation. Il est écrit dans un format modulaire, permettant la collecte de données arbitraires depuis diverses sources via des plugins Python.

  2. Architecture

    Chaque instance de Snoopy peut exécuter plusieurs plugins simultanément. Un plugin collecte des données, qui sont interrogées par le processus principal de Snoopy et écrites dans une base de données locale. Snoopy peut synchroniser les données entre les clients (drones) et un serveur, et les clients (drones) peuvent également extraire des répliques de données d'un serveur. Chaque instance de Snoopy peut exécuter les plugins adaptés à sa position dans une vue d'ensemble. Voici un diagramme illustrant une configuration possible :

    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   |
     +---------------+                                 +--------------+
    

Dans l'illustration ci-dessus, trois drones exécutent et synchronisent leurs données vers deux serveurs distincts. L'un synchronise via 3G, les deux autres via Xbee. Le deuxième serveur synchronise ses données vers un troisième serveur. Enfin, un client (ordinateur portable) extrait toutes les données des premier et troisième serveurs et exécute Maltego pour explorer les données.

  1. Installation et configuration

L'exécution de 'sh install.sh' dans le répertoire snoopy-ng.git installera tous les paquets requis. Il propose d'installer aircrack depuis les sources, nécessaire pour les distributions sans ce paquet (la suite aircrack est utilisée pour les plugins sans fil). Nous ne saurions trop recommander Maltego pour l'exploration de données ; une édition communautaire (avec quelques restrictions) peut être téléchargée gratuitement sur le site de Paterva à http://paterva.com.


  1. UTILISATION ========

De base

Pour voir tous les indicateurs et options disponibles, nous avons créé deux commandes pour vous :

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

Cette commande donne toutes les options d'exécution, comme le serveur de synchronisation, le nom du drone et son emplacement. De plus, elle introduit également la façon d'exécuter les différents plugins.

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

Cette commande liste tous les plugins disponibles et les paramètres requis par chaque plugin pour fonctionner correctement. Pour obtenir des informations plus détaillées sur chaque plugin, utilisez '-ii' ou '-iii'. Pour obtenir des informations sur un plugin spécifique, utilisez '-i -m '.

Les plugins peuvent être spécifiés avec l'option --plugin (ou en abrégé -m). Plusieurs plugins peuvent être spécifiés et seront démarrés dans l'ordre saisi. Chaque plugin disposera de 60 secondes pour indiquer son état de préparation, après quoi il expirera et le plugin suivant sera lancé. Cela peut être utile si les plugins suivants dépendent des actions des précédents.

Chaque plugin peut prendre de nombreux paramètres (comme indiqué dans la sortie de --list) sous forme de paires clé-valeur séparées par des virgules. Ci-dessous, nous utilisons le plugin 'example', qui génère simplement des nombres aléatoires.

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

Si les options de drone/emplacement ne sont pas fournies, des valeurs par défaut sont utilisées. Sinon, elles peuvent être spécifiées comme ci-dessous.

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

Synchronisation des données

Les données peuvent être synchronisées vers une machine distante en fournissant l'option --server (-s). La machine distante doit exécuter le plugin serveur (--plugin server). Une clé doit être générée au préalable pour un nom de drone. Ce qui suit illustre cela.

Serveur

root@kitploit:~
    root@server:~# snoopy_auth --create myDrone01 --verbose
    [+] Création d'un nouveau compte de synchronisation serveur Snoopy
    [+] Clé pour 'myDrone01' est 'GWWVF'
    [+] Utilisez cette valeur en mode client pour synchroniser les données vers un serveur distant.
    root@kali:~# snoopy --plugin server
    [+] Exécution du serveur web sur '0.0.0.0:9001'
    [+] Le plugin serveur a capturé des données pour 2 tables.
    

Client

root@kitploit:~
    root@client:~# snoopy --plugin example:x=1 --drone myDrone --key GWWVF --server http://<server_ip>:9001/ --verbose
    [+] Démarrage de Snoopy avec les plugins : example
    [+] Le plugin example a créé un nouveau nombre aléatoire : 21
    [+] Snoopy a synchronisé avec succès 2 éléments sur 2 tables.
     

Extraction de données distante

Les données peuvent être extraites d'un serveur à l'aide du plugin local_sync. Par exemple, supposons que le serveur ci-dessus soit en cours d'exécution et effectuez cette opération depuis le client :

root@kitploit:~
root@client:~# snoopy --plugin local_sync:server_url=http://<server_ip>:9001/ --drone myDrone --key GWWVF
[+] Le plugin local_sync a extrait 888 enregistrements du serveur distant.

Stockage des données

Le comportement par défaut est de stocker toutes les données dans un fichier SQLITE snoopy.db. Cela peut être remplacé avec le paramètre --dbms. Voir la documentation SQL Alchemy sur la façon de spécifier différents moteurs de base de données (http://docs.sqlalchemy.org/en/rel_0_9/dialects/index.html). Par exemple, ci-dessous nous utilisons MySQL :

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=mysql://glenn:secret@localhost/snoopy_db
    [+] Capture locale uniquement. Sauvegarde dans 'mysql://glenn:secret@localhost/snoopy_db'   

Il peut être utile d'utiliser le stockage SQLITE sur des appareils plus petits et de laisser le plugin serveur sauvegarder vers MySQL (ou similaire). Un autre exemple pourrait être utile où nous spécifions l'emplacement du fichier pour stocker les données, par exemple sur un support amovible :

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

Il y a une option --flush (-f) pour 'vider' les données du stockage local une fois qu'elles ont été synchronisées avec un serveur en amont.

Démarrage des services au démarrage

Snoopy peut être démarré avec un script upstart (voir le dossier ./setup/upstarts). D'autres exemples de scripts upstart sont fournis dans le même répertoire - par exemple, un pour établir une connexion PPP à partir d'un modem 3G, et un pour créer un canal de commande SSH à distance.

Les systèmes basés sur Debian (ex. Kali) ne semblent pas prendre en charge upstart. En attendant, le fichier rc.local fourni peut être utilisé pour démarrer Snoopy et les services associés au démarrage.


  1. VISUALISATION DES DONNÉES =====================

Maltego est l'outil préféré pour effectuer la visualisation. Les instructions sont ci-dessous :

  1. Ouvrir Maltego
  2. Sélectionner 'Importer la configuration'
  3. Choisir 'snoopy_entities.mtz' depuis le dossier transforms

Cela devrait importer à la fois les entités et les transformations. Pour commencer, faites glisser l'entité 'Base of Operations' de l'onglet Snoopy dans le menu Palette vers un graphe vierge. Par exemple, effectuez les opérations suivantes sur l'entité :

  1. Clic droit, sélectionner Transforms, sélectionner 'Get Drones'
  2. Sur le drone souhaité, clic droit, sélectionner 'Get Location'
  3. Sur l'emplacement souhaité, clic droit, sélectionner 'Get Clients'
  4. Sur les clients souhaités, clic droit, sélectionner 'Get Observations'

Des transformations existent pour récupérer les domaines et les cookies (à partir de la surveillance passive), rechercher les adresses de rue des SSID, et plusieurs sont bidirectionnelles (par exemple, peut rechercher les clients à partir de l'emplacement, ou les emplacements à partir du client). Il est préférable d'expérimenter.

Spécification de la base de données

Si vous n'utilisez pas le format sqlite par défaut, modifiez le fichier suivant pour spécifier l'emplacement des données :

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

Partage de graphe

Le graphe Snoopy peut être partagé simultanément par plusieurs analystes en utilisant la fonction de collaboration de Maltego. Sélectionnez Collaboration, puis 'Partager le graphe actuel'.


  1. UTILISATION COMMERCIALE =================== La licence sous laquelle Snoopy est publié interdit de tirer profit financier (ou autre) de son utilisation (voir LICENSE.txt). Nous avons une licence distincte disponible pour un usage commercial, qui inclut des fonctionnalités supplémentaires telles que :

    • Synchroniser les données via XBee
    • Plugins avancés
    • Transformations supplémentaires/personnalisées
    • Interface Web
    • Drones préconstruits

Contactez-nous ([email protected] / [email protected]) si vous souhaitez collaborer avec nous.


  1. ANNEXE =========== Écrire des plugins

Consultez le fichier plugins/example.py pour comprendre comment les plugins doivent être écrits. Tout fichier placé dans le dossier plugins sera traité comme un plugin et doit avoir les propriétés suivantes :

  1. Fournir les informations du plugin et les définitions de paramètres optionnelles.
  2. Fournir les définitions de schéma de table SQL pour les données qu'il collectera.
  3. Retourner les données dans le format défini ci-dessus lorsqu'elles sont interrogées.

Sinon, le plugin peut faire ce que vous voulez.

Matériel

Snoopy fonctionnera sur tout appareil Linux avec un support suffisant pour installer les fichiers à partir du fichier install.sh. c'est-à-dire Python et les paquets associés. Le support matériel variera selon les plugins requis, mais pour le scénario le plus courant de collecte de données WiFi et de téléchargement via 3G, ce qui suit est recommandé :

  • BeagleBone Black
  • Hub USB alimenté (avec répartiteur en Y pour économiser deux prises)
  • Alfa AWUS036h WiFi adapter
  • Huawei E160 Modem
  • BlueNext BN903S GPS
  • Au moins un adaptateur secteur 2A (variera selon les périphériques que vous avez)

Système d'exploitation

Kali 1.05 et Ubuntu 12.04 ont été testés. Des systèmes similaires devraient fonctionner.

Notes supplémentaires :

  • Vous pouvez exécuter autant de plugins que vous le souhaitez à la fois.
  • Les plugins se lancent séquentiellement, dans l'ordre fourni sur la ligne de commande.
  • Le plugin suivant ne commencera à s'initier que lorsque le précédent aura indiqué qu'il est prêt (avec un délai d'attente de 60 secondes). Ceci est utile si les plugins suivants dépendent des précédents.
  • Si vous ne spécifiez pas de drone ou d'emplacement, des valeurs par défaut seront fournies.
  • Vous pouvez exécuter Snoopy sans plugin afin de synchroniser uniquement les données.

Problèmes connus

Une condition d'erreur se produit lors de la collecte de données localement, de la synchronisation vers un serveur distant, puis de l'extraction d'une réplique depuis le serveur. ex. :

Serveur

root@kitploit:~
    root@kali:~# snoopy -m server -m wigle:username=u,password=p,[email protected]
    [+] Exécution du serveur web sur '0.0.0.0:9001'
    [+] Le plugin serveur a capturé des données pour 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/
Télécharger l’outil