
Snoopy v2.0 - modulares digitales terrestrisches Tracking-Framework
SensePost präsentiert:
/$$$$$$
/$$__ $$
| $$ \__/ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$ /$$
| $$$$$$ | $$__ $$ /$$__ $$ /$$__ $$ /$$__ $$| $$ | $$
\____ $$| $$ \ $$| $$ \ $$| $$ \ $$| $$ \ $$| $$ | $$
/$$ \ $$| $$ | $$| $$ | $$| $$ | $$| $$ | $$| $$ | $$
| $$$$$$/| $$ | $$| $$$$$$/| $$$$$$/| $$$$$$$/| $$$$$$$
\______/ |__/ |__/ \______/ \______/ | $$____/ \____ $$
| $$ /$$ | $$
| $$ | $$$$$$/
|__/ \______/
Version: 2.0
Code: [email protected] // @glennzw
Visit: www.sensepost.com // @sensepost
Lizenz: Nicht-kommerzielle Nutzung
Willkommen bei Snoopy Version 2.0!
So installieren und einrichten Sie Snoopy:
bash install.sh
So speichern Sie Daten von den Plugins WLAN, Sysinfo und Heartbeat lokal:
snoopy -v -m wifi:mon=True -m sysinfo -m heartbeat -d myDrone -l London
So synchronisieren Sie Daten von einem Client zu einem Server:
Server:
snoopy_auth --create myDrone # Create account
snoopy -v -m server # Start server plugin
Client:
snoopy -v -m wifi:mon=True -s http://<server>:9001/ -d myDrone -l London -k <key>
EINFÜHRUNG UND ÜBERBLICK ============================= Snoopy ist ein verteiltes Framework für Sensoren, Datensammlung, Abfangen, Analyse und Visualisierung. Es ist modular aufgebaut und ermöglicht die Sammlung beliebiger Daten aus verschiedenen Quellen über Python-Plugins.
Architektur
Jede Snoopy-Instanz kann mehrere Plugins gleichzeitig ausführen. Ein Plugin sammelt Daten, die vom Haupt-Snoopy-Prozess abgefragt und in einer lokalen Datenbank gespeichert werden. Snoopy kann Daten zwischen Clients (Drohnen) und einem Server synchronisieren, und Clients (Drohnen) können auch Replikate der Daten von einem Server abrufen. Jede Snoopy-Instanz kann die für ihre Position im Gesamtbild geeigneten Plugins ausführen. Hier ist ein Diagramm, das einen möglichen Aufbau zeigt:
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 |
+---------------+ +--------------+
Im obigen Diagramm laufen drei Drohnen und synchronisieren ihre Daten mit zwei separaten Servern. Eine synchronisiert über 3G, die anderen beiden über Xbee. Der zweite Server synchronisiert seine Daten mit einem dritten Server. Schließlich ruft ein Client (Laptop) alle Daten vom ersten und dritten Server ab und führt Maltego aus, um die Daten zu untersuchen.
Die Ausführung von 'sh install.sh' im snoopy-ng.git-Verzeichnis installiert alle erforderlichen Pakete. Es bietet an, aircrack aus den Quellen zu installieren, was für Distributionen ohne dieses Paket erforderlich ist (die aircrack-Suite wird für die WLAN-Plugins verwendet). Wir können Maltego für die Datenexploration nur wärmstens empfehlen. Eine Community-Edition (mit einigen Einschränkungen) kann kostenlos von der Paterva-Website unter http://paterva.com heruntergeladen werden.
Um alle verfügbaren Flags und Optionen zu sehen, haben wir zwei Befehle für Sie erstellt:
root@kali:~# snoopy --help (Kurzform -h)
Dieser Befehl zeigt Ihnen alle Laufzeitoptionen, z. B. mit welchem Server synchronisiert werden soll, den Namen der Drohne und ihren Standort. Außerdem wird erklärt, wie die verschiedenen Plugins ausgeführt werden können.
root@kali:~# snoopy --list (Kurzform -i)
Dieser Befehl listet alle verfügbaren Plugins und die Parameter auf, die jedes Plugin für ein korrektes Funktionieren benötigt. Für detailliertere Informationen zu jedem Plugin verwenden Sie '-ii' oder '-iii'. Um Informationen zu einem bestimmten Plugin zu erhalten, verwenden Sie '-i -m '.
Plugins können mit der Option --plugin (oder der Kurzform -m) angegeben werden. Es können mehrere Plugins angegeben werden, die in der Reihenfolge ihrer Eingabe gestartet werden. Jedes Plugin hat 60 Sekunden Zeit, um seinen betriebsbereiten Zustand anzuzeigen, danach tritt ein Timeout ein und das nächste Plugin wird gestartet. Dies kann nützlich sein, wenn nachfolgende Plugins von Aktionen vorheriger abhängen.
Jedes Plugin kann zahlreiche Parameter (wie in der --list-Ausgabe angegeben) in Form von durch Kommata getrennten Schlüssel-Wert-Paaren entgegennehmen. Im Folgenden verwenden wir das 'example'-Plugin, das einfach Zufallszahlen generiert.
snoopy --plugin example:x=1,v=True
Wenn die Optionen für Drohne / Standort nicht angegeben werden, werden Standardwerte verwendet. Alternativ können sie wie unten angegeben werden.
snoopy --plugin example:x=1,v=True --drone myDrone --location Cansas
Daten können zu einem entfernten Rechner synchronisiert werden, indem die Option --server (-s) angegeben wird. Auf dem entfernten Rechner sollte das Server-Plugin (--plugin server) laufen. Vorher sollte ein Schlüssel für einen Drohnennamen generiert werden. Das Folgende veranschaulicht dies.
Server