Auch wenn man bei einer offensiven Sicherheitsfirma, wie wir es sind, oftmals an den Angriff selbst denkt, also das Eindringen ins Netzwerk und das Hangeln und Springen über verschiedene Accounts, Computer und Server. Aber um solche Angriffe realistisch durchzuführen, sammeln unsere Analysten erstmal viele öffentlich verfügbare Daten aus dem Internet. Über diesen Prozess haben wir in den folgenden Artikeln schon ausführlich berichtet:

Open Source Intelligence (OSINT)

Targeted Threat Intelligence (TTI)

Für diese Arten der Angriffsvorbereitung ist es oftmals erforderlich, eine Menge Daten aus vielen Quellen zu sammeln und geordnet zusammenzutragen. Dies erfordert unter Umständen eine große Menge manueller Arbeit und daher automatisieren wir in diesem Bereich gerne viel. In diesem Blogpost möchte ich einmal eines meiner Lieblingstools im Bereich OSINT-Automatisierung zeigen, nämlich Spiderfoot.

Was ist Spiderfoot?

Spiderfoot ist eine Open-Source-Software, welche von einer sehr aktiven Community gewartet und stetig weiterentwickelt wird. Betrieben wird es von der Firma Intel471, welche auch eine kostenpflichtige Premiumversion des Tools anbietet. Allerdings ist schon die Open-Source-Version des Tools unglaublich mächtig. Das Prinzip Spiderfoot ist ganz einfach. Man gibt dem Tool einen Datenpunkt und Zugang zu Quellen und es sammelt alle Informationen, die es zu dem initialen Datenpunkt in den gegebenen Quellen finden kann und stellt diese dem Nutzer übersichtlich zur Verfügung.

Die ganze Dokumentation von Spiderfoot findet sich hier.

Wie installiert man Spiderfoot?

Die Anleitung zum Installieren von Spiderfoot findet man gemeinsam mit weiterer, ausführlicher Dokumentation auf GitHub. Sie ist im Prinzip aber ganz einfach:

Copy to Clipboard

Wenn man dabei die IP-Adresse auf 0.0.0.0 oder seine eigene ändert, ist das Web UI von Spiderfoot auch aus dem Internet erreichbar. Dann sollte aber diese aber passwortgeschützt sein indem die Datei $HOME/.spiderfoot/passwd angelegt wird, welche Zugangsdaten in folgendem Format enthält: username:password

Feuer Frei!

Kommen wir jetzt endlich zum aufregenden Teil des Tools. Dem automatisierten Scannen von „Zielen“. Dafür bietet Spiderfoot eine einfach zu bedienende GUI, mit guter Dokumentation. Das Webinterface des Tools befindet sich auch dem in der Installation angegebenen Port, in unserem Fall ist die URL also http://127.0.0.1:5001. Mit einem Klick auf „New Scan“ landet man auf folgender Oberfläche:

Einen Scan „anzuschmeißen“ ist an der Stelle sehr einfach. Man gibt einen Namen und ein Ziel (eine Liste an möglichen Arten von Zielen befindet sich rechts oben im UI) an, wählt den gewünschten Scanmodus und Spiderfoot sammelt jede Menge Daten aus jeder Menge Quellen und stellt diese übersichtlich zur Verfügung.

Obwohl es natürlich verlockend ist, alles an Daten zu sammeln, was das Tool hergibt, sollte in den meisten Fällen jedoch ein Weg mit mehr Bedacht gewählt werden. Viele Daten zu haben, birgt natürlich auch das Risiko, dass wichtige Informationen in dem Datenberg untergehen.

Daher bietet Spiderfoot im Tab „By Required Data“ die Möglichkeit, nach gewünschten Daten zu selektieren. So ist sichergestellt, dass der Scan genau die Ergebnisse liefert, die gewünscht sind. Auf jeden Fall sollte man dabei den Punkt „Raw Data from RIRs/APIs“ auswählen. Denn APIs machen einen Großteil des Charmes von Spiderfoot aus.

APIs in Spiderfoot nutzen

Ähnlich bequem wie das Einrichten des Tools und das Starten von Scans ist auch das Einbinden von diversen APIs. Da Spiderfoot eine großartige Community hat, die das Tool sehr aktiv weiterentwickelt, bietet es bereits fertige Module für viele APIs und andere Datenquellen.

Diese lassen sich über den Menüpunkt „Settings“ einsehen:

Bei allen Einstellungen mit einem Schloss an der rechten Seite ist ein API-Key nötig. Viele dieser Dienste bieten für ihre APIs eine kostenfreie Version an, also lohnt es sich definitiv einmal, die APIs zu erkunden und herauszufinden, welche Daten liefern, die einen Mehrwert bringen. Im GitHub Repository von Spiderfoot wird auch tabellarisch aufgelistet, welche der APIs eine kostenlose Version zur Verfügung stellen.

Hat man erst einmal alle API Keys in Spiderfoot eingepflegt, lohnt es sich diese über den „Export API Keys“ Button zu exportieren. Falls man einmal für ein anderes Projekt eine neue Spiderfoot Instanz aufsetzt, erspart dies viel Tipparbeit, da diese Datei über „Import API Keys“ wieder alle API-Keys in die Instanz lädt. Bei der Handhabung der Exportdatei ist jedoch Vorsicht geboten, da sie alle API Keys im Klartext beinhaltet.

Deine Lieblings-API ist nicht dabei?

Kein Problem, Spiderfoot macht es super einfach, eigene Tools und APIs zu integrieren. Da es in Python geschrieben ist und einen sehr modularen Aufbau hat, lässt es sich sehr einfach erweitern.

Die Scan-Ergebnisse

Spiderfoot stellt die Ergebnisse in verschiedenen Formaten zur Verfügung, die es je nach Menge der gefundenen Daten unterschiedlich gut geeignet sind.

Erst einmal sieht man ein Balkendiagramm, welches die Häufigkeit der gefundenen Datenarten aufschlüsselt. Hiermit lassen sich schon erste Anomalien erkennen, welche später genauer untersucht werden sollen. Zum Beispiel, wenn es zu einer Domain sehr viele Einträge in Daten, Leaks und Breaches gibt.

Natürlich stellt Spiderfoot die Ergebnisse auch in tabellarischer Form zur Verfügung. Hierbei werden die Daten unter dem Menüpunkt „Browse“ nach Art der Daten sortiert. Dies ist der einfachste Weg, sich durch die Daten selbst durchzuklicken.

Des Weiteren gibt es auch noch eine Aufstellung der Daten als Graph. Auch wenn dies sehr verlockend klingt, um Zusammenhänge zwischen den Daten zu erkennen, werden die Graphen bei größeren Scans jedoch sehr schnell, sehr unübersichtlich. Eine kleine Verbesserung ergibt der „Force Layout Button“, welcher für ein Mindestmaß an Struktur in den Daten sorgt.

Ein recht neues und sehr nützliches Feature sind die „Correlation Rules“, welche in Version 4.0 von Spiderfoot hinzugefügt wurden. Diese stellen, wie der Name vermuten lässt, Korrelationen zwischen verschiedenen Datenpunkten in den Scanergebnissen dar. Diese sorgen dafür, dass verschiedene relevante Findings sofort ins Auge fallen. So melden sie zum Beispiel offene Datenbanken und Cloud Buckets oder eine hohe Anzahl an bekannten Spam-Domains. Natürlich lassen sich, dank der modularen Natur von Spiderfoot, auch hier eigene Regeln sehr einfach schreiben und hinzufügen. Eine genauere Dokumentation dazu findet sich hier.

Hat jemand KI gesagt?

Da mich persönlich gerade KI vor allem von der generativen Art sehr interessiert, konnte ich es natürlich nicht lassen, mich zu fragen, ob diese denn auch etwas mit einem Spiderfoot Scan anfangen kann.

Spiderfoot bietet netterweise die Möglichkeit, Scans sehr einfach exportieren zu lassen. Diesen Export kann man in ChatGPT oder andere Modelle hochladen. Exportieren lässt sich der Scan als CSV über den Download Button in der rechten oberen Ecke der Scanübersicht neben dem grünen Button zum neu Laden.

Leider ist das Hochladen von Dateien (außer Bildern) in allen mir bekannten ChatModellen ein Feature, welches ein kostenpflichtiges Abo benötigt. Außerdem sollte man natürlich auch den Datenschutz bedenken, denn ein Spiderfoot Scan kann unter Umständen sensible Daten enthalten, welche nicht ins Internet gelangen sollten. Andererseits sammelt Spiderfoot auch nur öffentlich verfügbare Daten, welche ja sowieso schon im Internet verfügbar sind. Abhilfe könnten hier lokale LLM-Modelle schaffen.

Der Hinweistext von Google Gemini fasst es ganz gut zusammen:

Aber genug der Vorrede. In diesem Beispiel verwende ich ChatGPT. Hier kann der Spiderfoot Scan im CSV-Format über die Büroklammer rechts unten im Chatfenster hochgeladen werden:

Anschließend erzielt folgender Prompt recht gute Resultate:

Copy to Clipboard

Das Ergebnis ist dabei leider nicht überragend, aber liefert einen guten Einstieg, gerade bei einer großen Datenmenge. Die Antwort kann durch einen Klick auf „+“ angezeigt werden:

Based on the initial examination of the SpiderFoot scan data, the report
will be structured as follows:
### Security Report Summary
This security report provides an analysis based on findings from a
SpiderFoot scan of the target `example.com`. The scan has identified
various data points including descriptions of categories associated with
the domain, similar domains, physical addresses linked to network
identifiers, and BGP Autonomous System (AS) membership information. The
scan results highlight areas of potential security concern that could
affect the organization’s attack surface.

### Detailed Findings and Security Risks
#### 1. **Top-level Domain Names and Descriptions**
– **Risk:** The scan has identified pseudo top-level domain names (TLDs)
such as `.example` and `.local` that are reserved for documentation and
local testing, respectively. While these findings may not directly
indicate a security risk, they serve as placeholders in this report and
suggest the scan’s scope included generic domains.
– **Example:** `.example` and `.local` are noted in the scan,
highlighting the use of reserved TLDs.
#### 2. **Similar Domains**
– **Risk:** The presence of similar domains, such as `0example.com`,
poses a potential risk for typo-squatting and phishing attacks. These
domains can be used to deceive users into visiting malicious sites that
mimic the appearance of the legitimate `example.com`.
– **Example:** `0example.com` is identified, indicating a risk of
phishing or brand impersonation.
#### 3. **Physical Addresses**
– **Risk:** The identification of specific physical addresses, such as
„13031 W Jefferson Blvd. Building 900, Los Angeles, CA,“ linked to
network identifiers, could be used in social engineering attacks or to
pinpoint infrastructure locations for physical security threats.
– **Example:** The Los Angeles address tied to AS number 15133.
#### 4. **BGP AS Membership**
– **Risk:** The listing of BGP Autonomous System (AS) membership
information (AS number 15133) provides insight into the network
infrastructure of `example.com`. This information can be exploited for
more sophisticated attacks aimed at hijacking or disrupting network
traffic.
– **Example:** AS number 15133 is associated with `example.com`.

### Action Plan for Defenders
Given the findings from the SpiderFoot scan, defenders should prioritize
the following actions to mitigate potential security risks:
1. **Investigate Similar Domains:** Closely examine domains like
`0example.com` to assess their registration details, hosting
environment, and content to determine if they are part of a phishing
scheme or typo-squatting attempt.
2. **Enhance Domain Monitoring:** Regularly monitor for new
registrations of similar domains or variations of the organization’s
domain to quickly identify and respond to potential impersonation or
phishing attacks.
3. **Review Physical Security Measures:** Assess the security of
physical locations identified in the scan, such as the Los Angeles
address, to ensure appropriate measures are in place to protect critical
infrastructure.
4. **Analyze Network Traffic:** Monitor network traffic for anomalies
associated with BGP hijacking or other forms of network interference,
focusing on the traffic to and from AS number 15133.
5. **Educate Employees:** Conduct awareness training for employees on
the risks of phishing and social engineering attacks, emphasizing the
importance of verifying the authenticity of websites and emails.
By addressing these areas, defenders can strengthen their organization’s
security posture and reduce the risk of cyber attacks exploiting the
identified vulnerabilities.

Fazit

Spiderfoot ermöglicht es teilweise manuelle Tasks zu automatisieren. Allerdings sollte das Tool nicht als Ersatz für eine komplexe OSINT/Attack Surface Analyse gesehen werden, sondern nur als Unterstützung bei der Datensammlung. Die eigentliche Auswertung, Korrelation und Analyse der Daten muss dabei nach wie vor von sachkundigen Analysten durchgeführt werden.

Sie möchten wissen was Ihre Attack-Surface ist?

Wir bieten Attack Surface Analysen als einzelne Dienstleistung oder in Kombination mit anderen OSINT oder Red Teaming Dienstleistungen an. Kontaktieren Sie uns gerne.