flowki@club:~$ Coding, Automation & Security — auf Deutsch
FlowKI Club

Deine KI. Deine Community. Deine Vorteile.

  • KI Know-how
  • Prompts & Tools
  • Security & Privacy
  • Community Support
  • Exklusive Vorteile
Werde Teil der Community

Bug-Bounty-Recon mit KI — Subdomain-Enumeration und Scope-Analyse mit Claude Code

Eine LLM-gestützte Recon-Pipeline für autorisierte Programme auf HackerOne, Intigriti und YesWeHack. Mit Python, amass, subfinder und Claude Code als Orchestrator — plus die klaren rechtlichen Grenzen.

Bug-Bounty-Recon mit KI — Subdomain-Enumeration und Scope-Analyse mit Claude Code

Dieser Beitrag wurde mit KI-Unterstützung aus der angegebenen Quelle erstellt und vor der Veröffentlichung automatisch gegen sie abgeglichen. Nicht jeder Beitrag wird zusätzlich von Hand gelesen — wir prüfen stichprobenweise nach und kennzeichnen Korrekturen. Beruht ein Artikel auf einem selbst durchgeführten Test, weisen wir das ausdrücklich aus.

Worum es geht

Bug-Bounty-Hunting ist für viele weniger wegen der Payouts interessant als wegen des Lernens: Man sieht reale Sicherheits-Setups echter Firmen und lernt, wie aktuelle Stacks in der Praxis aussehen. Was sich nebenbei verdienen lässt, schwankt stark und ist hier nicht belegt — kein Einkommensversprechen, aber ein guter Nebeneffekt.

Der langweiligste Teil ist die Recon-Phase. Sobald ein Programm breit genug gescoped ist, sitzt man zwei Stunden bei Subdomain-Enumeration, klickt sich durch gefundene Assets und dokumentiert, was interessant aussieht. Genau hier ergibt KI als Copilot Sinn.

Diese Pipeline zeigt, wie das aussehen kann.

Hinweis zu den Zahlen: Die Laufzeiten, Asset-Mengen und Payout-Größenordnungen unten sind realistische Richtwerte für eine mittelgroße Recon, keine Messwerte aus einem bestimmten Programm. Reale Werte hängen stark vom Ziel und Scope ab.

Die Scope-Analyse — der erste KI-Schritt

Bug-Bounty-Programme haben oft lange Scope-Dokumente. HackerOne, Intigriti, YesWeHack — alle haben irgendwo eine seitenlange Liste davon, was im Scope ist, was out-of-scope, welche Angriffsklassen akzeptiert werden, welche nicht.

Das manuell zu lesen und die wichtigsten Punkte rauszuziehen kostet jedes Mal 15-20 Minuten. Das lässt sich an Claude Code delegieren:

# Pipe das Scope-Dokument in Claude Code
pbpaste | claude --prompt "Extrahiere aus diesem Bug-Bounty-Scope-Dokument:
1. Erlaubte Assets (Domains, IPs, Subdomains)
2. Explizit ausgeschlossene Assets
3. Akzeptierte Vulnerability-Klassen
4. NICHT akzeptierte Findings (mit Begründung)
5. Besonderheiten (z.B. 'keine DoS', 'keine Social Eng.')
Format als Markdown-Liste."

Zeit: unter einer Minute. Man liest die fünf Abschnitte, macht einen Sanity-Check am Original — und los geht die Recon. Wichtig: Der Sanity-Check am Original ist Pflicht, denn eine falsch extrahierte Scope-Grenze führt schnell in strafbares Terrain (siehe unten).

Subdomain-Enumeration — die klassische Pipeline

amass und subfinder bleiben die Werkzeuge. KI ersetzt sie nicht — aber sie orchestriert sie sauber.

# claude_recon.py — von Claude Code generiert, danach reviewt
import subprocess
import json
import asyncio

async def run_tool(cmd, output_file):
    """Wrapper mit Timeout und Error-Handling"""
    proc = await asyncio.create_subprocess_shell(
        cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE
    )
    stdout, stderr = await asyncio.wait_for(
        proc.communicate(), timeout=1800
    )
    with open(output_file, "w") as f:
        f.write(stdout.decode())
    return proc.returncode

async def main(target):
    tasks = [
        run_tool(f"amass enum -d {target} -o amass.txt", "amass.log"),
        run_tool(f"subfinder -d {target} -o subfinder.txt -silent", "subfinder.log"),
        run_tool(f"assetfinder --subs-only {target} > assetfinder.txt", "assetfinder.log"),
    ]
    await asyncio.gather(*tasks)
    # Deduplizieren und sortieren
    subs = set()
    for f in ["amass.txt", "subfinder.txt", "assetfinder.txt"]:
        with open(f) as fh:
            subs.update(fh.read().strip().splitlines())
    with open("all_subdomains.txt", "w") as f:
        f.write("\n".join(sorted(subs)))
    return len(subs)

if __name__ == "__main__":
    import sys
    total = asyncio.run(main(sys.argv[1]))
    print(f"Total unique subdomains: {total}")

Drei Werkzeuge parallel, Dedup, Sortieren. Der Punkt: Man beschreibt, was man will, Claude schreibt das Gerüst, man reviewt es selbst — der Code läuft nicht ungelesen.

Typische Laufzeit für eine mittlere Firma: 8-15 Minuten parallel statt 30-45 Minuten sequenziell. Das ist schon der erste Gewinn.

Der interessante Teil — Live-Asset-Filtering

Nach der Enumeration hat man typisch 200-2000 Subdomains. Viele davon sind tot (DNS, aber keine HTTP-Response), andere uninteressant (CDN-Endpunkte, Marketing-Landings), ein paar spannend.

httpx liefert Basis-Informationen zu jedem Host:

cat all_subdomains.txt | httpx -silent -title -tech-detect -status-code -o httpx_results.json -json

Jetzt der KI-Teil — das JSON durch Claude piped:

cat httpx_results.json | claude --prompt "Analysiere diese httpx-Outputs.
Gib mir eine priorisierte Liste der interessantesten Targets für Bug-Bounty-Hunting.
Berücksichtige:
- Ungewöhnliche Ports / Technologien
- Auth-Panels, Admin-Interfaces
- Alte Frameworks die bekannte CVEs haben
- Staging-/Dev-Instanzen
Gib mir Top 20 mit Begründung pro Eintrag."

Das Ergebnis ist eine sauber sortierte Shortlist. Man muss nicht mehr manuell durch 1500 Zeilen JSON klicken. Die Einschätzung ist nicht immer richtig — aber sie ist ein sehr guter Startpunkt.

Nuclei-Templates selbst generieren

Der spannendste Teil der Pipeline. Nuclei ist ein Scanner, der YAML-Templates nutzt, um bestimmte Vulnerabilities zu suchen. Es gibt eine große Zahl öffentlicher Templates (aktuelle Zahl im Nuclei-Templates-Repo prüfen). Die decken das meiste ab, aber oft will man etwas Spezifisches.

Angenommen, bei der Recon fällt ein interessantes Setup auf — etwa eine Admin-Panel-Route, die bei einem /admin/status-GET-Request ohne Auth einen JSON-Dump liefert. Verdacht: ähnliche Routen gibt es mehrfach. Mit Claude Code lässt sich dafür ein Template generieren:

# admin-status-leak.yaml — generiert und danach reviewt
id: admin-status-leak

info:
  name: Admin Status Endpoint Information Disclosure
  author: flowki-redaktion
  severity: medium
  description: Detects unauthenticated /admin/status endpoints returning JSON with sensitive info

http:
  - method: GET
    path:
      - "{{BaseURL}}/admin/status"
      - "{{BaseURL}}/admin/info"
      - "{{BaseURL}}/admin/health"
    matchers-condition: and
    matchers:
      - type: status
        status:
          - 200
      - type: word
        part: body
        words:
          - "\"database\""
          - "\"version\""
          - "\"hostname\""
        condition: or

Template-Build in unter einer Minute. Gegen die eigene Subdomain-Liste laufen lassen: nuclei -l active_hosts.txt -t admin-status-leak.yaml. Ein Treffer auf einem der Assets ist dann der Kandidat, den man anschließend manuell validiert — automatisch bestätigt ist nichts.

Die Gesamt-Pipeline als Größenordnung

So verteilt sich der Aufwand in einem typischen Durchlauf (illustrative Richtwerte):

| Phase | Zeit | Output | |---|---|---| | Scope-Analyse | ~1 min (KI) | Priorisierte Scope-Liste | | Subdomain-Enumeration | ~12 min | ~500 Subdomains | | Live-Check mit httpx | ~4 min | ~200 Live-Hosts | | KI-Priorisierung | ~2 min | Top-20-Shortlist | | Manuelles Browsing | ~35 min | wenige verdächtige Targets | | Custom Nuclei-Template | ~3 min | 1 Template gebaut | | Nuclei-Scan | ~2 min | mögliche Hits | | Validation + PoC | ~25 min | Vulnerability bestätigt (falls echt) | | Report schreiben | ~20 min | HackerOne-Report |

Größenordnung: ~100 Minuten bis zum eingereichten Report — statt grob dem Doppelten ohne KI-Assistenz. Der Zeitgewinn liegt fast ausschließlich in Recon, Filtering und Report-Rohbau, nicht im eigentlichen Finden der Lücke.

Bei den Payouts bewegt man sich für Findings dieser Klasse (Medium-Info-Disclosure) meist im mittleren dreistelligen Bereich — stark programmabhängig und keineswegs garantiert.

Was funktioniert — und was nicht

Klar funktioniert:

  • Pipeline-Orchestrierung (Parallelität, Error-Handling, Dedup)
  • Output-Filterung und Priorisierung (aus viel Noise wenig Signal machen)
  • Template-Generierung (Nuclei, Semgrep, auch Burp-Intruder-Lists)
  • Report-Schreiben (Template plus Anpassung)

Bleibt beim Menschen:

  • Die tatsächliche Lücke finden. KI sieht keine Web-App. Klicken, durchdenken, ein Gefühl für das Setup entwickeln — das macht der Mensch.
  • Validation und Exploitation. Nicht jede vermeintliche Lücke ist eine echte. Das Urteil bleibt deins.
  • Das Anti-Drittfolgen-Denken. KI will gern noch eskalieren — "und jetzt probieren wir X". Du musst entscheiden, ob X überhaupt noch im Scope ist.

Rechtlicher Rahmen für Bug-Bounty-Recon

Kurzer, aber wichtiger Absatz. Bug-Bounty-Recon ist in Deutschland nur dann erlaubt, wenn:

  • Das Programm dich ausdrücklich in seinen Scope einschließt
  • Du innerhalb des definierten Scopes bleibst (welche Domains, welche Subdomains)
  • Du keine destruktiven Testing-Techniken verwendest (wenn nicht explizit erlaubt)
  • Du deine Finds nur über das Programm meldest, nicht öffentlich streust

Aktive Enumeration gegen Targets außerhalb deines Scopes ist in Deutschland nach §§ 202a, 202b, 202c StGB strafbar. Auch wenn die Firma offiziell ein Programm hat — Subdomains, die nicht im Scope sind, sind nicht im Scope. Diese Grenze gilt ohne Ausnahme.

Weiterlesen

Die komplette Pipeline (Python-Scripts, Nuclei-Template, OSINT-Erweiterung) liegt öffentlich im flowki-bugbounty-recon Repo. Die Pentesting-Säule hat die weiteren Cluster-Artikel zum Thema. Für die Defender-Perspektive siehe Prompt-Injection-Defense — wenn du selbst LLM-Apps betreibst, sind die Recon-Techniken die gleichen, die gegen dich gerichtet werden können.

Eigene Bug-Bounty-Erfahrungen, Pipelines, Setups? Im Discord Zone "Hacking & Security" läuft die Diskussion.

TeilenXLinkedInWhatsApp
FAQ

Häufige Fragen

Was übernimmt die KI bei Bug-Bounty-Recon, und was bleibt beim Menschen?

Zuverlässig übernimmt die KI Pipeline-Orchestrierung, Noise-Filterung, Template-Generierung für Nuclei und Semgrep sowie Report-Rohfassungen. Beim Menschen bleibt das Finden der echten Lücke, denn die KI sieht die Web-App nicht, sie liest nur Ausgaben. Ebenfalls menschlich: die Validierung eines Fundes und die Scope-Disziplin.

Ist Bug-Bounty-Recon in Deutschland legal?

Nur innerhalb des ausdrücklich definierten Scopes eines Programms. Erlaubt ist es, wenn das Programm dich einschließt, du im Scope bleibst, keine destruktiven Techniken ohne Erlaubnis nutzt und Funde nur über das Programm meldest. Aktive Enumeration gegen Targets außerhalb des Scopes ist nach den Paragrafen 202a bis 202c StGB strafbar. Diese Grenze gilt ohne Ausnahme.

Wie viel schneller ist Recon mit KI-Unterstützung?

In einem typischen Durchlauf etwa 100 Minuten bis zum eingereichten Report statt grob dem Doppelten ohne KI. Der Zeitgewinn liegt fast ausschließlich in Recon, Filtering und Report-Rohbau, nicht im eigentlichen Finden der Lücke. Die Zahlen sind illustrative Richtwerte und hängen stark von Ziel und Scope ab.

Kann Claude Code eigene Nuclei-Templates generieren?

Ja. Fällt bei der Recon ein spezifisches Muster auf, etwa ein ungeschützter /admin/status-Endpoint mit JSON-Dump, lässt sich dafür in unter einer Minute ein YAML-Template bauen. Das läuft dann gegen die eigene Subdomain-Liste. Wichtig: Das Template wird nach der Generierung reviewt, und jeder Treffer wird anschließend manuell validiert, nicht automatisch als Fund gewertet.

Sollte man KI-generierten Recon-Code ungeprüft ausführen?

Nein. Der Grundsatz der Pipeline lautet: Du beschreibst, was du willst, Claude schreibt das Gerüst, und du reviewst es selbst, bevor es läuft. Der Code läuft nicht ungelesen. Das gilt für das Enumeration-Script ebenso wie für Nuclei-Templates. So behältst du die Kontrolle über das, was gegen ein Target ausgeführt wird.

Wie verlässlich ist die KI-Priorisierung der Targets?

Sie ist ein sehr guter Startpunkt, aber nicht immer richtig. Aus 1500 Zeilen httpx-JSON macht die KI eine sortierte Shortlist der interessantesten Hosts, gewichtet nach ungewöhnlichen Ports, Auth-Panels, alten Frameworks mit CVEs und Staging-Instanzen. Die eigentliche Bewertung und Validierung bleibt aber deine Aufgabe.

Weiterlesen

Mehr aus KI-Pentesting

Alle Artikel der Kategorie →
SECURITY

OWASP Top 10 für LLMs: Pentesting-Checkliste deutsch

16 min · 6. Aug.

SECURITY

Prompt-Injection-Testmatrix — 20 Jailbreak-Techniken zum Selbertesten

5 min · 18. Juli

SECURITY

OSINT-Pipelines mit Claude Code — Maltego-Alternative für Bug-Bounty-Recon

8 min · 19. Apr.