| FOTO | AUTO | EDV | AUDIO |

Dies ist eine alte Version des Dokuments!


====== Shodan in Claude Code (Linux Shell) – Einrichtung & Nutzung ======
<note important>
Voraussetzung: Claude Code ist bereits in der Linux-Shell eingerichtet und das Hacker-Profil (''hacker.md'') ist aktiv. Diese Anleitung baut auf dem bestehenden Setup auf.
</note>
===== 1. Shodan installieren & initialisieren =====
==== 1.1 Python-Paket installieren ====
<code bash>
pip install shodan
</code>
Überprüfen:
<code bash>
shodan --version
</code>
==== 1.2 API-Key registrieren ====
Shodan-Account anlegen unter: https://account.shodan.io
Den API-Key aus dem Account-Dashboard kopieren, dann initialisieren:
<code bash>
shodan init DEIN_API_KEY
shodan info
</code>
Erwartete Ausgabe (Free Account):
<code>
Successfully initialized
Query credits available: 0
Scan credits available: 0
</code>
<note warning>
**Sicherheitshinweis:** Den API-Key niemals im Chat, in Git-Repositories oder in geteilten Dokumenten im Klartext angeben. Den Key bei Verdacht auf Kompromittierung sofort unter https://account.shodan.io
regenerieren.
</note>
===== 2. Claude Code konfigurieren =====
Die Konfiguration erfolgt in ''~/.claude/settings.json'' (globale Nutzereinstellungen).
==== 2.1 settings.json bearbeiten ====
<code bash>
nano ~/.claude/settings.json
</code>
Inhalt (bestehende Einträge beibehalten und ergänzen):
<code json>
{
  "env": {
    "SHODAN_API_KEY": "DEIN_API_KEY"
  },
  "permissions": {
    "allow": [
      "Bash(shodan:*)"
    ]
  }
}
</code>
^ Schlüssel ^ Bedeutung ^
| ''env.SHODAN_API_KEY'' | API-Key wird in jeder Claude-Session als Umgebungsvariable gesetzt |
| ''permissions.allow'' | ''shodan:*'' erlaubt alle Shodan-CLI-Befehle ohne Rückfrage |
==== 2.2 Konfiguration testen ====
Claude Code neu starten, dann direkt in der Claude-Session:
<code>
führe "shodan info" aus
</code>
Claude ruft den Befehl ohne Bestätigungsdialog auf und gibt die Account-Infos zurück.
===== 3. Shodan über Claude nutzen =====
Ab jetzt kann Claude Shodan-Abfragen direkt ausführen, kombinieren und die Ergebnisse interpretieren. Spracheingaben wie die folgenden reichen aus:
==== 3.1 Einfache Abfragen ====
^ Eingabe an Claude ^ Ausgeführter Befehl ^
| „Wie viele Shodan-Hosts gibt es für bgv.de?" | ''shodan count 'hostname:bgv.de''' |
| „Zeig Infos zur IP 8.8.8.8" | ''shodan host 8.8.8.8'' |
| „Welche offenen RDP-Ports gibt es in DE?" | ''shodan count 'port:3389 country:DE''' |
==== 3.2 Subdomains & IPs via crt.sh (ohne Credits) ====
Claude kombiniert Shodan mit externen Quellen automatisch:
<code>
Führe eine passive Recon auf bgv.de durch: crt.sh-Subdomains auflisten,
IPs per DNS auflösen und offene Ports per nmap prüfen.
</code>
Claude führt dann folgende Schritte eigenständig aus:
<code bash>
# Schritt 1: Subdomains via crt.sh
curl -s "https://crt.sh/?q=%.bgv.de&output=json" | python3 -c "
import sys, json
data = json.load(sys.stdin)
names = set()
for e in data:
    for n in e['name_value'].split('\n'):
        names.add(n.strip())
for n in sorted(names): print(n)
"
# Schritt 2: DNS-Auflösung
for sub in citrix vpn owa mail login portal exchange; do
  ip=$(host $sub.bgv.de 2>/dev/null | grep "has address" | awk '{print $4}')
  [ -n "$ip" ] && echo "$sub.bgv.de -> $ip"
done
# Schritt 3: Port-Scan auf externe IPs
nmap -sV -p 80,443,22,3389,8443 --open -T4 <gefundene_IPs>
</code>
==== 3.3 Mit Membership: Search & Vulnerability-Scan ====
Ab dem bezahlten Plan (Membership ab $49/Jahr) stehen Query Credits und der ''vuln:''-Filter zur Verfügung:
<code>
Suche alle Apache-Hosts in Deutschland mit Log4Shell-Schwachstelle.
</code>
<code bash>
shodan search 'vuln:CVE-2021-44228 country:DE product:Apache' --limit 50
</code>
<code>
Zeig alle offenen MongoDB-Instanzen ohne Auth in DE.
</code>
<code bash>
shodan search 'port:27017 country:DE "MongoDB Server Information"' --limit 20
</code>
==== 3.4 Python-API für komplexe Auswertungen ====
Claude kann auch direkt Python-Code gegen die Shodan-API ausführen:
<code>
Werte alle Shodan-Hosts für bgv.de aus und zeige CVEs gruppiert.
</code>
Claude generiert und führt aus:
<code python>
import shodan, os
api = shodan.Shodan(os.environ['SHODAN_API_KEY'])
results = api.search('hostname:bgv.de', limit=100)
print(f"Hosts gefunden: {results['total']}")
for r in results['matches']:
    print(f"\n{r['ip_str']}:{r['port']}  {r.get('product','')} {r.get('version','')}")
    if 'vulns' in r:
        for cve, info in r['vulns'].items():
            print(f"  ⚠ {cve}  CVSS:{info.get('cvss','-')}")
</code>
===== 4. Shodan nur im Hacker-Profil verwenden (optional) =====
Ziel: Shodan-Berechtigungen nur aktiv, wenn Claude mit dem Hacker-Profil gestartet wird – nicht in anderen Kontexten (''dev.md'', ''architekt.md'' usw.).
==== 4.1 Konzept: Projektverzeichnis als Hacker-Workspace ====
Claude Code liest Einstellungen hierarchisch:
<code>
~/.claude/settings.json          ← global (alle Profile)
~/hacking/.claude/settings.json  ← nur in diesem Verzeichnis aktiv
~/hacking/CLAUDE.md              ← lokale Instruktionen
</code>
Die Shodan-Konfiguration aus Abschnitt 2 aus der globalen ''settings.json'' **entfernen** und stattdessen nur lokal ablegen:
==== 4.2 Hacker-Workspace einrichten ====
<code bash>
mkdir -p ~/hacking/.claude
</code>
''~/hacking/.claude/settings.json'' mit folgendem Inhalt anlegen:
<code json>
{
  "env": {
    "SHODAN_API_KEY": "DEIN_API_KEY"
  },
  "permissions": {
    "allow": [
      "Bash(shodan:*)",
      "Bash(nmap:*)",
      "Bash(curl:*)",
      "Bash(host:*)",
      "Bash(dig:*)",
      "Bash(python3:*)"
    ]
  }
}
</code>
''~/hacking/CLAUDE.md'' anlegen:
<code markdown>
# Hacker-Workspace
Profil: Ethical Hacker & Forensiker
Alle Aktionen erfolgen im Rahmen autorisierter Penetrationstests.
Tools verfügbar: shodan, nmap, curl, dig, python3 (shodan-API)
</code>
==== 4.3 Claude im Hacker-Workspace starten ====
<code bash>
cd ~/hacking
claude --profile hacker
</code>
Damit gilt:
  * Shodan-Berechtigungen **nur** innerhalb von ''~/hacking/''
  * Kein Shodan-Zugriff in anderen Projekten oder ohne ''--profile hacker''
  * Globale ''settings.json'' bleibt sauber
==== 4.4 Einschränkung ====
<note>
Claude Code unterstützt derzeit keine bedingten Berechtigungen pro Profil in einer einzigen ''settings.json''. Die Trennung erfolgt ausschließlich über separate Verzeichnisse mit eigenen
''.claude/settings.json''-Dateien. Das Profil (''--profile hacker'') steuert das Verhalten Claudes, aber nicht die Toolberechtigungen – diese kommen aus der Verzeichnishierarchie.
</note>
===== 5. Shodan-Plan-Übersicht =====
^ Feature ^ Free ^ Membership ($49/a) ^ API ($59/mo) ^
| ''shodan info'' | ✓ | ✓ | ✓ |
| ''shodan count'' | ✓ | ✓ | ✓ |
| ''shodan host <IP>'' | ✗ | ✓ | ✓ |
| ''shodan search'' | ✗ | ✓ | ✓ |
| ''shodan domain'' | ✗ | ✓ | ✓ |
| ''vuln:''-Filter | ✗ | ✓ | ✓ |
| Query Credits/Monat | 0 | 100 | unbegrenzt |
| Scan Credits | 0 | 0 | 100 |
===== 6. Typischer Workflow mit Claude =====
<code>
1. cd ~/hacking && claude --profile hacker
2. "Führe passive Recon auf ziel.de durch"
   → Claude: crt.sh + DNS + nmap automatisch
3. "Zeig Shodan-Infos zur IP 1.2.3.4"
   → Claude: shodan host 1.2.3.4
4. "Welche CVEs sind für diese IP bekannt?"
   → Claude: shodan host 1.2.3.4 + vuln-Auswertung
5. "Erstelle einen Recon-Report als Markdown"
   → Claude fasst alle Ergebnisse strukturiert zusammen
</code>
===== Quellen =====
  1. SHODAN COMPUTER SEARCH ENGINE. Shodan Help Center. https://help.shodan.io [Zugriff: 2026-03-19]
  2. MATHERLY, John, 2015. Complete Guide to Shodan. Shodan, LLC. https://leanpub.com/shodan
  3. ANTHROPIC, 2024. Claude Code Documentation. https://docs.anthropic.com/claude-code [Zugriff: 2026-03-19]
  4. BSI, 2023. Technische Richtlinie BSI TR-03186: Penetrationstest. Bundesamt für Sicherheit in der Informationstechnik. https://www.bsi.bund.de

Anmerkung zur Hacker-only-Option:

Das sauberste Verfahren ist das Workspace-Prinzip aus Abschnitt 4 – ein eigenes Verzeichnis ~/hacking/ mit lokaler .claude/settings.json. Eine native Profil-Bindung für Berechtigungen (also "Permission X
nur wenn --profile hacker") gibt es in Claude Code aktuell nicht, aber der Workaround mit dem Arbeitsverzeichnis ist in der Praxis genauso effektiv.