OSINT Recon Programm Spiderfoot installieren (Linux)

TL;DR - Eine Zusammenfassung für Linux Profis gibt es am Ende des Beitrags.

Spiderfoot ist ein Open-Source Programm um OSINT Reconnaissance, also das Suchen nach öffentlich verfügbaren Informationen zu einem Ziel, durchzuführen. Das Programm durchsucht dabei automatisch verschiedene öffentliche Quellen nach einem Stichwort, beispielsweise der Domäne einer Firma (firma.com), einer E-Mail-Adresse oder IPs, um möglichst viele Daten aufzudecken und stellt diese in Tabellen und Graphen zur manuellen Auswertung bereit.

Der Nutzen, den das Programm für Penetrationstester bietet sollte offensichtlich sein. Zu Wissen, welche Informationen über das Unternehmen bekannt sind, kann aber auch für Administratoren und Sicherheitsbeauftragten hilfreich sein.

Diagramm: Übersicht der Ergebnisse in Spiderfoot Übersicht der Ergebnisse in Spiderfoot

Graph: Darstellung der Abhängigkeiten von entdeckten Informationen Darstellung der Abhängigkeiten von entdeckten Informationen

In diesem Beitrag zeige ich, wie Spiderfoot unter Kubuntu 18.04 installiert wird, andere aktuelle Ubuntu-Derivate sollten davon aber nicht sonderlich abweichen.

Voraussetzungen

Der eigentliche Teil des Setups ist die Installation der Pakete, die Spiderfoot als Abhängigkeiten hat. Diese lassen sich mit den folgenden Befehlen installieren. Die Download-URL sollte durch die aktuelle Version von der Download Seite ersetzt werden.

# Installation der Python2 Pakete (Spiderfoot unterstützt Python3 aktuell noch nicht!)
sudo apt install python python-pip virtualenv

# Download des Spiderfoot Source Codes (URL ersetzen)
wget https://www.spiderfoot.net/files/spiderfoot-2.12.0-src.tar.gz

# Anschließend das Archiv entpacken und in den neuen Ordner wechseln
tar xzfv spiderfoot-*.tar.gz
cd spiderfoot-VERSION

Wer sein System nicht mit unnötigen Paketen belasten möchte, sollte die weiteren Abhängigkeiten in einer virtuellen Umgebung (virtual environment) für Spiderfoot installieren. Dadurch lassen sich die Pakete zusammen mit dem Spiderfoot-Ordner einfach löschen, wenn das Programm nicht mehr benötigt wird.

# Erstellen der virtuellen Umgebung (in dem Ordner, in dem wir uns gerade befinden)
virtualenv env
... ENTER

# Aktivieren der virtuellen Umgebung
source env/bin/activate

# Installation der Abhängigkeiten in der virtuellen Umgebung
./env/bin/pip2 install lxml netaddr cherrypy mako requests bs4 m2crypto

Alternativ können die Pakete natürlich auch systemweit installiert werden.

# Installation der Abhängigkeiten (systemweit)
/usr/bin/pip2 install lxml netaddr cherrypy mako requests bs4 m2crypto

Virtual Env aktivieren / deaktivieren

Wer die Installation mit virtualenv durchgeführt hat, muss vor dem Start des Programms sicherstellen, dass die virtuelle Umgebung aktiviert ist. Eine aktivierte Umgebung wird in der Bash vor dem Benutzernamen und Host angezeigt.

(env) user@hostname:~/spiderfoot-2.12$

Aktiviert wird die Umgebung erneut über den folgenden Befehl.

# Funktioniert nur in dem Ordner, in dem das virtuelle Environment angelegt wurde
cd ~/Downloads/spiderfoot-VERSION/
source ./env/bin/activate

Mit dem Befehl deactivate oder durch das Schließen der Bash-Session (exit, bzw. Konsole beenden) kann die Umgebung wieder deaktiviert werden.

Spiderfoot Server starten / stoppen

Gestartet wird Spiderfoot entweder mit

./env/bin/python ./sf.py

oder bei systemweiter installation mit diesem Befehl.

/usr/bin/python ./sf.py

Nach dem Start gibt Spiderfoot die URL an, unter welcher das Programm aufgerufen werden kann.

(env) fmohr@fmohr-BU201:~/spiderfoot-2.12$ ./env/bin/python sf.py
Starting web server at http://127.0.0.1:5001 ...

*************************************************************
 Use SpiderFoot by starting your web browser of choice and
 browse to http://127.0.0.1:5001
*************************************************************

[18/May/2019:10:42:14] ENGINE Listening for SIGHUP.
[18/May/2019:10:42:14] ENGINE Listening for SIGTERM.
[18/May/2019:10:42:14] ENGINE Listening for SIGUSR1.
[18/May/2019:10:42:14] ENGINE Bus STARTING
[18/May/2019:10:42:14] ENGINE Serving on http://127.0.0.1:5001

Beendet wird es in der Konsole einfach mit [Strg]+[c].

^C
[18/May/2019:10:42:28] ENGINE Keyboard Interrupt: shutting down bus
[18/May/2019:10:42:28] ENGINE Bus STOPPING
[18/May/2019:10:42:28] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('127.0.0.1', 5001)) shut down
[18/May/2019:10:42:28] ENGINE Bus STOPPED
[18/May/2019:10:42:28] ENGINE Bus EXITING
[18/May/2019:10:42:28] ENGINE Bus EXITED
[18/May/2019:10:42:28] ENGINE Waiting for child threads to terminate...

TL;DR

Für alle die sich mit Linux auskennen und keine genaue Anleitung benötigen, bzw. einfach nur die Befehle kopieren wollen (erhobener Finger böse!).

# Installation der Python2 Pakete (Spiderfoot unterstützt Python3 aktuell noch nicht!)
sudo apt install python python-pip python-virtualenv

# Download des Spiderfoot Source Codes (Ggf. URL ersetzen)
wget https://www.spiderfoot.net/files/spiderfoot-2.12.0-src.tar.gz

# Anschließend das Archiv entpacken und in den neuen Ordner wechseln
tar xzfv spiderfoot-*.tar.gz
cd spiderfoot-VERSION

virtualenv env
... ENTER

# Aktivieren der virtuellen Umgebung
source env/bin/activate

# Installation der Abhängigkeiten in der virtuellen Umgebung
./env/bin/pip2 install lxml netaddr cherrypy mako requests bs4 m2crypto

# Spiderfoot starten (env muss aktiviert sein!)
./env/bin/python sf.py

# Spiderfoot stoppen
[Strg]+[c]

Offizielle Spiderfoot Dokumentation