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. Ein paar hundert Euro pro Monat neben dem Hauptjob sind für erfahrene Hunter ein realistischer Rahmen — nichts Weltbewegendes, 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 etwa 9000 öffentliche Templates. 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
Weiterlesen

Mehr aus KI-Pentesting

Alle Artikel der Kategorie
SECURITY

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

15 min · 6. Aug.

SECURITY

Safety-Pipelines für eigene LLM-Apps — Input, Output, Audit, alles drum herum

8 min · 19. Apr.

SECURITY

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

5 min · 18. Juli