
AIRecon ist ein autonomer Cybersecurity-Agent, der ein selbst gehostetes Large Language Model (Ollama) mit einer Kali-Linux-Docker-Sandbox und einer Textual-TUI kombiniert. Er wurde entwickelt, um Sicherheitsbewertungen, Penetrationstests und Bug-Bounty-Aufklärung zu automatisieren — ganz ohne API-Schlüssel oder Cloud-Abhängigkeit.
AIRecon ist ein autonomer Penetrationstest-Agent, der ein selbst gehostetes Ollama-LLM mit einer Kali-Linux-Docker-Sandbox, nativer Caido-Proxy-Integration, einer strukturierten RECON → ANALYSIS → EXPLOIT → REPORT-Pipeline und einer Echtzeit-Textual-TUI kombiniert — komplett offline, keine API-Schlüssel erforderlich.

Kommerzielle API-basierte Modelle (OpenAI GPT-4, Claude, Gemini) werden für rekursive, autonome Recon-Workflows, die pro Sitzung Tausende von LLM-Aufrufen erfordern können, unerschwinglich teuer.
AIRecon ist zu 100 % für den lokalen, privaten Betrieb konzipiert.
§FUZZ§), findings, scope.dataset_search autonom auf, bevor es unbekannte Techniken ausprobiert — und verankert seine Entscheidungen so in realen indizierten Daten.RECON → ANALYSIS → EXPLOIT → REPORT
Jede Phase hat spezifische Ziele, empfohlene Tools und automatische Übergangskriterien. Die Durchsetzung der Phasen ist soft — der Agent wird geleitet, aber niemals blockiert. Checkpoints laufen alle 5 (Phasenbewertung), 10 (Selbstbewertung) und 15 (Kontextkomprimierung) Iterationen.
AIRecon nimmt kein Fine-Tuning des LLM vor. Sein „Lernen“ ist eine lokale, strukturierte Telemetrie, die die Tool-Auswahl leitet und das Wiederholen fehlgeschlagener Wege vermeidet.
Lokale Persistenz (alles auf der Festplatte, keine Cloud):
~/.airecon/memory/airecon.db, die Sitzungen, Erkenntnisse, Muster, Zielinformationen, Tool-Nutzung, Modellleistung, Skill-Nutzung und entdeckte Angriffsketten speichert.~/.airecon/learning/global_learning.json (Tool-Leistungsstatistiken, Strategiemuster, Beobachtungsprotokoll, destillierte Erkenntnisse).~/.airecon/memory/by_target/, sofern persistiert, mit Endpunkten, Schwachstellen, WAF-Bypasses, sensiblen Parametern und Auth-Endpunkten.workspace/<target>/payload_memory.json gespeichert werden.Wie es das Verhalten beeinflusst:
AIRecon erfordert ein Modell mit erweitertem Denken (<think>-Blöcke) und zuverlässigen Tool-Calling-Fähigkeiten. Die Fähigkeiten werden automatisch über die ollama show-Metadaten erkannt.
⚠️ Tool-Calling-Unterstützung ist ERFORDERLICH. Das Modell muss natives Funktions-/Tool-Calling unterstützen. Modelle ohne diese Fähigkeit können keine Tools ausführen (http_observe, execute, Browser-Aktionen usw.), was AIRecon völlig funktionsunfähig macht.
Empfohlenes Minimum: 8B-9B Parameter. Modelle unter 8B sind technisch nutzbar, aber stark abgeraten — sie halluzinieren häufig Tool-Ausgaben, erfinden CVEs, ignorieren Scope-Regeln und erzeugen unzuverlässige Tool-Aufrufe.
Orientierung zur Modellgröße:
Bekannte Probleme: DeepSeek R1 erzeugt unvollständige Funktionsaufrufe. Modelle < 8B haben keine zuverlässige Tool-Calling-Unterstützung.
Wenn du keine GPU hast oder dein lokaler VRAM unter dem Minimum liegt, kannst du Ollama auf einer kostenlosen Google-Colab-T4-GPU ausführen und AIRecon über einen öffentlichen Tunnel damit verbinden.
So funktioniert es:
Google Colab GPU Your Local Machine
┌─────────────────────────┐ ┌──────────────────────────┐
│ Ollama (qwen3.5:9b) │◄────────►│ AIRecon TUI │
│ cloudflared tunnel │ HTTPS │ ollama_url: tunnel URL │
└─────────────────────────┘ └──────────────────────────┘
Schritte:
~/.airecon/config.yaml:ollama_url: "https://xxxx.trycloudflare.com" # printed by Cell 6
ollama_model: "qwen3.5:9b"
ollama_timeout: 300.0
ollama_chunk_timeout: 300.0
ollama_num_ctx: 32768
ollama_num_ctx_small: 16384
airecon startColab-GPU → Modellverfügbarkeit:
Einschränkungen:
qwen3.5:9b ist das Minimum, das funktioniert — rechne mit langsameren Antworten und mehr Tool-Call-Fehlern als bei einem lokalen 35B+-Modellscripts/airecon_colab.ipynb, falls du es selbst hosten oder modifizieren möchtestVoraussetzungen: Python 3.12+, Docker 20.10+, Ollama (läuft), git, curl
curl -fsSL https://raw.githubusercontent.com/pikpikcu/airecon/refs/heads/main/scripts/install.sh | bash
Das Skript erkennt automatisch, ob Remote- oder lokaler Modus vorliegt, installiert Poetry, falls es fehlt (über den offiziellen Installer — keine Systempaket-Konflikte), baut das Wheel und installiert nach ~/.local/bin.
git clone https://github.com/pikpikcu/airecon.git
cd airecon
./install.sh
# Add to ~/.bashrc or ~/.zshrc if needed
export PATH="$HOME/.local/bin:$PATH"
airecon --version
Konfigurationsdatei: ~/.airecon/config.yaml (wird beim ersten Start automatisch erzeugt). AIRecon erstellt ~/.airecon/, falls es nicht existiert — auch wenn ein benutzerdefinierter ~-Pfad verwendet wird.
# ======================================
# Ollama Connection
# ======================================
# Ollama API endpoint. REQUIRED — must be set. For local: http://127.0.0.1:11434. For remote: http://IP:11434
ollama_url: "http://127.0.0.1:11434"
# Model to use. 122B for best reasoning (requires 60GB+ VRAM). For 12GB VRAM: use qwen2.5:7b or smaller. For 8GB VRAM: use qwen2.5:1.8b.
ollama_model: "qwen3.5:122b"
# Total request timeout (seconds). 180s = 3 min. Stable for most models. Increase to 300s for slow remote servers or 122B models.
ollama_timeout: 180.0
# ======================================
# Ollama Model Settings
# ======================================
# Context window size. 65536 = 64K (stable for 12GB VRAM with 8B models). 131072 = 128K requires 30GB+ VRAM. Set -1 for server default.
ollama_num_ctx: 65536
# Context for CTF/summary mode. 32768 = 32K (stable for 12GB VRAM). Reduced from 64K for stability with 8B+ models.
ollama_num_ctx_small: 32768
# LLM output randomness. 0.0=deterministic, 0.15=recommended (strict), 0.3=creative. Does NOT affect thinking mode — controls output diversity only.
ollama_temperature: 0.15
# Max tokens to generate. 16384 = 16K (stable for 12GB VRAM). 32K requires more VRAM.
ollama_num_predict: 16384
# Enable extended thinking mode (for Qwen3.5+/Qwen2.5+). When enabled, model generates <think> reasoning blocks before answering.
ollama_enable_thinking: true
# Thinking intensity: low|medium|high|adaptive. For 12GB VRAM: use 'low' or 'medium'. 'high' may cause OOM with 8B models. Low=only deep tools, Medium=ANALYSIS+deep tools, High=most iterations (high VRAM only).
ollama_thinking_mode: low
# Protect first N tokens from KV eviction. 4096 = 4K (reduced for 12GB VRAM stability). 8K for larger VRAM.
ollama_num_keep: 4096
# ======================================
# Proxy Server
# ======================================
# Host to bind proxy server. 127.0.0.1 = localhost only.
proxy_host: 127.0.0.1
# Port for proxy server. Default 3000.
proxy_port: 3000
# ======================================
# Timeouts
# ======================================
# Docker command timeout (seconds). 900s = 15 min for long scans (nmap, nuclei).
command_timeout: 900.0
# ======================================
# Docker Sandbox
# ======================================
# Container memory limit. '16g' = 16GB (stable for 32GB+ RAM host, 18GB image + Chromium). Prevents OOM kills. Set to '12g' for 32GB RAM, '8g' for 16GB systems, '4g' for 8GB systems.
docker_memory_limit: 16g
# ======================================
# Deep Recon
# ======================================
# Auto-start deep recon on session start.
deep_recon_autostart: true
# Recon execution mode: standard|full. standard=respect user scope, full=auto-expand simple target prompts into comprehensive recon.
agent_recon_mode: standard
# ======================================
# Safety
# ======================================
# Allow destructive tests (e.g., DELETE requests). Default: False for safety.
allow_destructive_testing: false
Remote-Ollama (LAN-Server oder Google-Colab-Tunnel):
ollama_url: "http://192.168.1.100:11434" # LAN server
ollama_model: "qwen3.5:35b"
# or via Colab tunnel (see "Running Ollama on Google Colab" section above):
ollama_url: "https://xxxx.trycloudflare.com"
ollama_model: "qwen3.5:9b"
ollama_timeout: 300.0
ollama_chunk_timeout: 300.0
AIRecon kann sich mit externen MCP-Servern verbinden und deren Tools dynamisch als mcp_<server>-Tools bereitstellen.
Konfigurationsdatei: ~/.airecon/mcp.json
Beispielkonfiguration:
{
"mcpServers": {
"hexstrike": {
"command": "python3",
"args": [
"/path/hexstrike-ai/hexstrike_mcp.py",
"--server",
"http://127.0.0.1:8888"
],
"env": {
"PYTHONUNBUFFERED": "1"
},
"enabled": true
},
"xssgen": {
"command": "python3",
"args": [
"/path/xssgen/xss_client.py",
"--server",
"http://127.0.0.1:8000"
],
"env": {
"PYTHONUNBUFFERED": "1"
},
"enabled": true
},
"recon": {
"transport": "sse",
"url": "https://example.com/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer xxxxx"
}
}
}
}
MCP-Tools im Chat verwenden:
mcp_<server>list_tools, search_tools, call_toolBeispiel:
{"name": "mcp_acme", "arguments": {"action": "list_tools"}}
airecon-dataset ist ein optionaler Begleiter, der Sicherheitsdatensätze von HuggingFace herunterlädt und sie lokal in SQLite-FTS5-Datenbanken indiziert. Nach der Installation fragt das LLM sie autonom über das dataset_search-Tool ab.
So funktioniert es: dataset_search ist ein Standard-Agent-Tool in tools.json. Das LLM entscheidet selbst, wann es aufgerufen wird — AIRecon löst es nicht automatisch aus. Der System-Prompt weist den Agenten an, die Wissensdatenbank abzufragen, bevor er unbekannte Techniken ausprobiert.
git clone https://github.com/pikpikcu/airecon-dataset.git
cd airecon-dataset && python install.py
Enthaltene Datensätze (~1,09 Mio. Einträge insgesamt, 100 % offline):
Beispiel-Agent-Abfragen (autonom vom LLM aufgerufen):
dataset_search: {"query": "log4j RCE exploitation chain"}
dataset_search: {"query": "SSRF bypass cloud metadata", "category": "bug-bounty"}
dataset_search: {"query": "nuclei template XSS detection"}
dataset_search: {"query": "CVE 2021 44228", "category": "vulnerability"}
Ergebnisse sind jeweils auf 500 Zeichen begrenzt. Sonderzeichen in CVE-IDs (Bindestriche, Klammern) werden automatisch bereinigt.
airecon start # start TUI
airecon start --session <session_id> # resume session
Beispiel-Prompts:
# Full pipeline
full recon on example.com
pentest https://api.example.com
# Specific tasks
find subdomains of example.com
scan ports on 10.0.0.1
check for XSS on https://example.com/search
test SQL injection on https://example.com/api/login parameter: username
run schemathesis on https://example.com/openapi.json
# Authenticated testing
login to https://example.com/login with [email protected] / password123 then test for IDOR
test https://app.example.com with TOTP: JBSWY3DPEHPK3PXP
# Multi-agent
spawn an XSS specialist on https://example.com/search
run parallel recon on: example.com, sub.example.com, api.example.com
# Caido
replay request #1234 with a modified Authorization header
use Caido to fuzz the username parameter in request #45 with §FUZZ§ markers
workspace/<target>/
├── command/ # system-managed logs
├── output/ # Raw tool outputs (nmap, httpx, nuclei, subfinder, ...)
├── tools/ # AI-generated exploit scripts (.py, .sh)
└── vulnerabilities/ # Verified vulnerability reports (.md)
Sitzungen werden unter ~/.airecon/sessions/<session_id>.json gespeichert — Subdomains, Ports, Technologien, URLs, Schwachstellen (Jaccard-Deduplizierung), Auth-Tokens und abgeschlossene Phasen.
Ollama OOM / HTML-Fehlerseite — Am häufigsten bei langen Sitzungen oder großen Modellen nahe der VRAM-Grenzen.
sudo systemctl restart ollama
{ "ollama_num_ctx": 32768, "ollama_num_ctx_small": 16384, "ollama_num_predict": 8192 }
Agent schleift/hängt — Meist ein Reasoning-Fehler. Versuche ein größeres Modell oder reduziere ollama_temperature auf < 0.2.
Docker-Sandbox startet nicht:
docker build -t airecon-sandbox airecon/containers/kali/
Caido-Verbindung abgelehnt — Caido muss vor AIRecon gestartet werden. Standard: 127.0.0.1:48080.
PATH nach der Installation nicht gefunden:
export PATH="$HOME/.local/bin:$PATH" && source ~/.zshrc
Issues und Pull-Requests sind willkommen. Wenn du einen Fehler meldest, füge Protokolle, Konfiguration und minimale Schritte zur Reproduktion bei.
AIRecon ist ausschließlich für autorisierte Sicherheitstests gedacht. Hol immer eine ausdrückliche Genehmigung ein und befolge die geltenden Gesetze sowie den Scope des Programms.
Siehe LICENSE.
| Funktion | AIRecon | Cloud-basierte Agenten |
|---|
| API-Schlüssel erforderlich | Nein | Ja |
| Zieldaten an die Cloud gesendet | Nein | Ja |
| Funktioniert offline | Ja | Nein |
| Caido-Integration | Nativ | Keine |
| Sitzung fortsetzen | Ja | Unterschiedlich |
| Lokale Wissensdatenbank | ~1,09 Mio. Einträge | Keine |
| Modell | Pull | VRAM | Hinweise |
|---|
| Qwen3.5 122B | ollama pull qwen3.5:122b | 48+ GB | Beste Qualität, am zuverlässigsten |
| Qwen3.5 35B | ollama pull qwen3.5:35b | 20 GB | Für die meisten Benutzer empfohlen |
| Qwen3.5 35b | ollama pull qwen3.5:35b-a3b | 16 GB | MoE — weniger VRAM |
| Qwen3.5 9B | ollama pull qwen3.5:9b | 6 GB | Minimal nutzbar — häufige Fehler zu erwarten |
| Colab-GPU | VRAM | Verfügbares Modell | Plan |
|---|
| T4 | 15 GB | qwen3.5:9b | Kostenlos |
| L4 | 22 GB | qwen3.5:35b-a3b (MoE) | Pro |
| A100 | 40 GB | qwen3.5:35b | Pro+ |
| H100 | 80 GB | qwen3.5:122b | Pro+ |
| Schlüssel | Standard | Hinweise |
|---|
ollama_temperature | 0.15 | Bei 0,1–0,2 halten. Höhere Werte verursachen Halluzinationen. |
ollama_num_ctx | 131072 | Bei begrenztem VRAM auf 32768 reduzieren. |
ollama_keep_alive | "60m" | Wie lange das Modell im VRAM gehalten wird. |
deep_recon_autostart | true | Reine Domain-Eingaben werden automatisch zu vollständigem Recon erweitert. |
allow_destructive_testing | false | Schaltet aggressive Modi frei (SQLi-Bestätigung, RCE-Ketten). |
command_timeout | 900.0 | Maximale Sekunden pro Shell-Befehl in Docker. |
vuln_similarity_threshold | 0.7 | Jaccard-Deduplizierungsschwellwert für Schwachstellen. |
| Datensatz | Einträge | Inhalt |
|---|
| Pentest Agent (ChatML) | 322.433 | CVE-basierte Exploit-Workflows (MITRE/NVD/ExploitDB) |
| CTF SaTML 2024 | 190.657 | Echte Angriffs-/Verteidigungs-CTF-Interaktionsdaten |
| CTF Instruct | 141.182 | Pwn, Web, Krypto, Forensik, Reverse Engineering |
| Cybersecurity CVE | 124.732 | CVE-Analyse, CVSS, Exploit-Kontext |
| SQL Injection Q&A | 50.632 | Konversationelles SQLi — Erkennung, Bypass, Exploitation |
| Cybersecurity Fenrir | 83.918 | Angriffs-/Verteidigungs-Anweisungspaare |
| Red Team Offensive | 78.430 | Laterale Bewegung, Privilege Escalation, Umgehung |
| Cybersecurity Q&A | 53.199 | Breites Sicherheitswissen |
| StackExchange RE | 20.641 | Binäranalyse, Disassemblierung, Debugging, Malware |
| Nuclei Templates | 23.180 | Generierung von Nuclei-YAML-Templates |
| NVD Security Instructions | 2.063 | Strukturierte CVE-Analyse mit Schweregrad und Behebung |
| APT Privilege Escalation | 1.000 | Linux-Priv-Esc-Techniken mit APT-Taktiken |
| Bug Bounty & Pentest | 146 | Payloads, Bypass-Methoden, Berichtsvorlagen |