In den ersten beiden Teilen dieser Serie haben wir die Grundlagen von Shodan sowie die Suchsyntax mit Praxisbeispielen behandelt. In diesem Teil widmen wir uns der Shodan-API, die es ermöglicht, Suchabfragen und Sicherheitsanalysen zu automatisieren und in eigene Workflows zu integrieren.
Warum Automatisierung mit Shodan?
Manuelle Suchen über die Weboberfläche eignen sich für einzelne Abfragen.
Die Shodan-API bietet jedoch:
- Automatisierte Prüfungen von Netzwerken
- Integration in Sicherheits-Workflows (z. B. SIEM-Systeme)
- Individuelle Skripte für wiederkehrende Analysen
- Schnelle Reaktion bei neuen Bedrohungen
Voraussetzungen
- Shodan-Account erstellen
- API-Key erhalten (unter My Account in Shodan)
- Python oder ein anderes Skriptwerkzeug installieren
Erste Schritte mit der Shodan-API
Installation des Python-Moduls
pip install shodan
Einfaches Python-Skript
import shodan
API_KEY = "DEIN_API_KEY"
shodan_api = shodan.Shodan(API_KEY)
# Suche nach offenen RDP-Servern in Deutschland
query = "port:3389 country:DE"
result = shodan_api.search(query)
print(f"Gefundene Ergebnisse: {result['total']}")
for service in result['matches'][:5]:
print(f"IP: {service['ip_str']} | Port: {service['port']}")
Dieses Skript listet die ersten fünf offenen RDP-Server in Deutschland auf.
Weitere API-Funktionen
- Host-Informationen abrufen:
host = shodan_api.host("8.8.8.8") print(host)
→ Liefert Details zu IP, offenen Ports, Diensten und Standort. - Count-API:
Für Statistiken und Trendanalysenresult = shodan_api.count("apache") print(f"Anzahl Apache-Server: {result['total']}")
- Streaming-API:
Echtzeitdaten für Sicherheitsüberwachung (nur für Shodan Enterprise).
Automatisierte Sicherheitsprüfungen
Beispiele für automatisierte Workflows:
- Tägliche Scans für neue offene Ports im Firmennetz
- Benachrichtigungen bei neuen sicherheitskritischen Geräten
- Anbindung an SIEM-Systeme, um Alarme auszulösen
Praxisbeispiel:
Ein Python-Skript kann automatisch täglich prüfen, ob interne Server versehentlich im Internet sichtbar sind und eine Warnung versenden.
Schreibe einen Kommentar