Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ThreatIntel-Aggregator — Selbstgehostete Threat-Intelligence-Plattform — Feed-Aggregation, KI-Triage, MITRE-ATT&CK-Abdeckung und Sentinel-integrierte Detection-Engineering. Läuft eigenständig oder vollständig Azure-integriert. | Kitploit
Tools/GitHubGitHub/ethan-andrews/threatintel-aggregator
DefensivwerkzeugeManagement von Indicators of Compromise (IOC)Bedrohungsfeeds & AggregatorenSchwachstellenanalyseInformationsbeschaffungSicherheitsvirtualisierungBedrohungsanalyseIncident ResponseKI-Sicherheit

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Log-Analyse
GitHubethan-andrews/threatintel-aggregator

ThreatIntel-Aggregator

Selbstgehostete Threat-Intelligence-Plattform — Feed-Aggregation, KI-Triage, MITRE-ATT&CK-Abdeckung und Sentinel-integrierte Detection-Engineering. Läuft eigenständig oder vollständig Azure-integriert.

Repository anzeigen
149vor 1 TagNoch nicht geprüft
Teilen

Threat Intel Aggregator

Banner

Typing SVG

License Backend Tests Frontend Build Buy Me a Coffee

Eine selbst gehostete Threat-Intelligence-Plattform, die RSS-Feeds von über 60 Sicherheitsanbietern aggregiert, KI-gestützte Triage durchführt, Ergebnisse mit Ihrem RunZero-Asset-Inventar korreliert und umsetzbare Warnmeldungen über ein Dark-Mode-Web-Dashboard bereitstellt.

Entwickelt, um eigenständig ohne Cloud-Abhängigkeit zu laufen oder vollständig in eine Azure/Entra/Sentinel-Umgebung integriert zu werden — wählen Sie die Stufe, die zu Ihren Gegebenheiten passt.


Bereitstellungsstufen

StufeSkriptKI-TriageAuthentifizierungSpeicherDas erhalten Sie
Basicscripts/setup-basic.shAusLokaler API-SchlüsselLokales Postgres (Docker)Feed-Aggregation, IOC-Extraktion, MITRE-Matrix, Dashboards — keine KI, keine Cloud, keine Registrierung erforderlich
Basic + APIscripts/setup-basic-api.shAnthropic (direkt)Lokaler API-SchlüsselLokales Postgres (Docker)Alles oben Genannte, plus KI-gestützte Triage von Schweregrad/TTP/Zusammenfassung
Azure + APIscripts/setup-azure.ps1Azure AI FoundryMicrosoft Entra ID SSOIhr eigenes Postgres (Azure DB for PostgreSQL usw.)Vollständige Bereitstellung in Azure Container Apps, SSO mit benutzerspezifischen Rollen. (Die Integration der detections.ai-Pipeline kommt in einer zukünftigen Version — siehe unten.)

Alle drei führen exakt denselben Anwendungscode aus — das Einzige, was sich ändert, sind die gesetzten Umgebungsvariablen. Die vollständige Referenz finden Sie unter Environment Variables.```bash

Basic — no AI, no cloud

./scripts/setup-basic.sh

Basic + API — adds direct Anthropic triage

./scripts/setup-basic-api.sh

Azure + API — full SIEM-integrated deployment (PowerShell 7+, az CLI)

./scripts/setup-azure.ps1

root@kitploit:~
Die beiden Bash-Skripte starten einen lokalen Postgres-Container, wenden das Schema an und generieren `backend/.env` / `frontend/.env.local` für dich — dann geben sie die beiden Befehle aus, mit denen du die App tatsächlich startest (`pip install` + Backend ausführen, `npm install` + Frontend-Dev-Server ausführen). `setup-azure.ps1` ist ein dünner Wrapper um `infra/provision.ps1`, das eigentliche Azure Container Apps Deployment-Runbook.

---

## Features

- **Feed-Aggregation** — fragt 60+ Tier-1/2/3-Security-RSS-Feeds nach einem Zeitplan ab; dedupliziert und filtert Werbeinhalte automatisch heraus
- **KI-Triage** — klassifiziert jeden Eintrag mit Schweregrad (Critical/High/Medium/Low/Informational), MITRE ATT&CK TTPs und einer allgemein verständlichen Zusammenfassung. Provider-modular: direkte Anthropic API oder Azure AI Foundry, umschaltbar über eine einzige Env-Variable, ohne dass in beiden Fällen Funktionalität verloren geht
- **IOC-Extraktion** — extrahiert automatisch IPs, Domains, URLs, Datei-Hashes und CVEs aus jedem Eintrag
- **RunZero-Integration** — synchronisiert dein Asset-Inventar und korreliert Threat Intel mit Live-Assets; Abgleich über CVEs, Softwarenamen, OS-Versionen und IP-Adressen. Drei Unter-Tabs unter `RUNZERO`: **Matches** (Einträge, die mit deinem Inventar korreliert wurden, filterbar nach Schweregrad/Datum/Konfidenz/KEV), **Exposure** (organisationsweiter bestätigter/möglicher Status mit Remediation-Tracking) und **Metrics** (Trends von Eingang vs. Remediation über die Zeit)
- **Your Stack** — definiere die Software/OS in deiner Umgebung; bewertet alle Einträge neu nach Relevanz
- **IOC-Ledger** — durchsuchbares Verzeichnis aller extrahierten Indikatoren mit Eintrags-Querverweisen und STIX/CSV-Export
- **MITRE ATT&CK-Matrix** — Heatmap der TTP-Abdeckung über deinen erfassten Threat Intel
- **Feed-Health-Dashboard** — Poll-Status pro Feed, Verfolgung aufeinanderfolgender Fehler und Artikelvolumen über 7 Tage
- **Detections** — eine Review-Oberfläche mit 9 Tabs (siehe unten), die alles abdeckt, was als Detection registriert ist, egal ob KI-generiert, aus deinen eigenen Dateien importiert oder aus einem Live-Sentinel-Workspace synchronisiert
- **Modulare Authentifizierung** — Microsoft Entra ID SSO mit rollenbasierter Zugriffskontrolle oder ein einzelner gemeinsam genutzter lokaler API-Key ohne jegliche Azure-Abhängigkeit. Wird vom Frontend automatisch erkannt; siehe [Auth-Modi](#auth-modes)

### Zwei detections-bezogene Features

Dieses Repo liefert tatsächlich zwei verwandte, aber unabhängig nutzbare Dinge unter dem Dach „detections":

1. **Der `DETECTIONS`-Tab** — eine in sich geschlossene Review-Oberfläche, aufgeteilt in neun Unter-Tabs:
   - **All Detections** — der vollständige Katalog registrierter Analysen, filterbar nach Technik/Disposition/Review-Status, jede erweiterbar zu ihrer Beschreibung und vollständigem KQL.
   - **Defender Custom Detections** — derselbe Katalog, beschränkt auf Detections, die für die Custom Detection Rules von Microsoft Defender for Endpoint statt für Sentinel Analytics Rules bestimmt sind.
   - **Alignment Reviews** — wann immer eine Detection-Analyse gegen eine MITRE-Technik registriert wird, vergleicht eine KI-Prüfung ihre tatsächliche Abdeckung mit MITREs eigener Beschreibung dieser Technik. Wenn sie abweicht oder die Technik nur teilweise abdeckt, landet sie hier als menschlicher Review-Eintrag mit der Begründung der KI, einem vorgeschlagenen KQL-Fix und dem eigenen Validierungsergebnis dieses Fixes (statisches Gate + Backtest) — niemals ein blinder Vorschlag.
   - **Disposition Alerts** — eine Rot-Detection-Warteschlange: eine genehmigte Analyse, deren Telemetrie verfällt oder deren zugrundeliegende Regel anfängt zu fehlern, wird hier zur erneuten Prüfung markiert, benannt nach ihrer eigenen Detection statt nur nach der geteilten MITRE-Technik.
   - **Generated Hunts** — Detections werden in Hunts gruppiert (heute eine pro importierter Datei; eine pro ursprünglichem TI-Artikel/detections.ai-Projekt, sobald diese Integration ausgeliefert wird), passend zu Microsoft Sentinels eigener Hunts-Funktion. Eine Hunt kann als `Microsoft.SecurityInsights/hunts`-Objekt plus ihre zugehörigen Saved-Search-Queries in einen echten Sentinel-Workspace synchronisiert werden (gesteuert durch `SENTINEL_HUNTING_SYNC_ENABLED` und einen `mode` — off/manual/auto — pro Team konfigurierbar unter Settings > API Settings; niemals ein stiller Auto-Push, es sei denn, du entscheidest dich dafür).
   - **Sentinel Hunts** — das Live-Inventar dessen, was tatsächlich in der Hunting-Funktion deines Sentinel-Workspace deployt ist, direkt aus ARM gezogen statt aus der eigenen Sync-Historie dieser App; enthält Test-/Tune-Vorschläge pro Query, die du direkt anwenden oder verwerfen kannst.
   - **Sentinel Analytics Rules** — dieselbe Idee für Microsoft Sentinels Analytics Rules (`Microsoft.SecurityInsights/alertRules`) — ein von Hunting verschiedener Sentinel-Ressourcentyp, da diese es sind, die tatsächlich nach Zeitplan Incidents/Alerts auslösen — mit demselben Workflow zum Anwenden/Verwerfen von Tune-Vorschlägen.
   - **Local Detections** — siehe [Running without Sentinel or an AI provider](#running-without-sentinel-or-an-ai-provider-local-detections-import) unten.
   - **Audit Log** (nur Admin) — eine pipelineübergreifende Aufzeichnung jeder Prüfung, die diese App tatsächlich ausgeführt hat: KI-generierte Detection-Gate-/Control-Probe-Ergebnisse, Sentinel-Hunt-Sync-Versuche und Testläufe von Sentinel-Hunt-Queries/Analytics-Rules, kombiniert in einer paginierten, filterbaren Liste — bewusst abdeckend, was kein einzelner Review-Tab für sich allein tut.

   Läuft vollständig im Haupt-Backend, kein zusätzliches Deployment für die Review-Oberfläche selbst nötig. Ihr eigenes API-Design folgt bewusst den detections.ai-Konventionen unten, obwohl sie vollständig eigenständig ist.
2. **detections.ai Pipeline-Orchestrator — kommt bald.** detections.ai hat eine öffentliche API in Entwicklung für KI-gestützte Detection-Generierung, und dieses Repo hat eine echte Integration dafür gebaut (`backend/detection_pipeline/orchestrator.py`), die triagierten Threat Intel nimmt, ihn gegen bestehende Detection-Abdeckung prüft und Entwurfs-KQL für deinen Sentinel-Workspace als geplanten Job generiert. Diese Integration wird diese API unterstützen, sobald sie verfügbar ist, und ist noch nicht Teil dieses öffentlichen Releases. In der Zwischenzeit **brauchst du sie überhaupt nicht, um den Detections-Tab zu nutzen** — [Local Detections Import](#running-without-sentinel-or-an-ai-provider-local-detections-import) unten deckt dasselbe Ziel „echte Detections in diese App bekommen" für Setups ohne KI-Generierung und ohne Sentinel heute ab.

### Running without Sentinel or an AI provider: Local Detections Import

Angesichts des Namens und des Hauptversprechens der App wird die häufigste Frage eines Self-Hosters auf dem **Basic**-Tier wahrscheinlich sein: *„Ich habe weder Sentinel noch einen KI-Provider konfiguriert — kann ich trotzdem etwas aus den Detections-/Hunts-Tabs herausholen?"* Die Antwort ist ja: Richte die App auf einen Ordner mit deinen eigenen Detection-Regeldateien (handgeschrieben, aus einem echten Sentinel-/Defender-Tenant exportiert oder aus einem öffentlichen Sigma-/Sentinel-Regel-Repo gezogen) und sie wird sie katalogisieren, MITRE-taggen und statisch validieren — dafür ist weder eine Sentinel-Verbindung noch ein `DETECTIONS_AI_API_KEY`/Anthropic-Key erforderlich.

- **Unterstützte Formate, ab Tag eins:** rohe `.kql`/`.txt`/`.yar`/`.spl`- oder Dateien mit beliebiger Endung, jeweils optional mit einer `.json`/`.yaml`-Sidecar-Datei (`{"file": "myrule.kql", "title": "...", "description": "...", "technique_id": "T1059.001"}`) für Metadaten, die Microsofts eigener Export nicht separat deklarieren muss; YARA; Suricata; Sigma YAML (ein- oder mehrdokumentig); Splunk SPL; und Microsofts eigene native exportierte Analytics Rule/Hunting Query JSON (nur Regeln vom Typ `Scheduled` tragen eine rohe KQL-Query, die diese App auswerten kann — jeder andere Typ wird erkannt und gemeldet, nicht stillschweigend übersprungen).
- **Was bei einer importierten Datei tatsächlich läuft:** statische Validierung (dieselbe Durability-/Findings-Engine, die der KI-Generierungspfad nutzt) für KQL-Inhalte; außerdem eine MITRE-Alignment-Prüfung, wenn du *tatsächlich* einen KI-Provider konfiguriert hast (eine von Sentinel unabhängige Achse — du kannst eines, beides oder keines haben); alles Sentinel-Abhängige (Backtesting, Telemetrie-Probes, Disposition-Tracking) bleibt außerhalb des Geltungsbereichs und wird als „no Sentinel connection configured" dargestellt statt als irreführende leere Zelle.
- **Wo es auftaucht:** importierter Inhalt wird zu einer normalen Hunt-/Detection-Zeile — dieselben Tabellen, derselbe Review-Workflow, dieselbe MITRE-Technik-Anzeige wie alles, was die KI-Pipeline generiert — sodass er auch in den regulären `ALL DETECTIONS`/`GENERATED HUNTS`-Ansichten erscheint, nicht nur in seinem eigenen Tab. Der dedizierte **Local Detections**-Unter-Tab (unter `DETECTIONS`, nur Admins können einen Import auslösen) ist der Ort, an dem du ihn auf einen Ordner richtest und den Fortschritt/die Ergebnisse pro Datei beobachtest.
- **Setup:** setze `LOCAL_IMPORT_DIR` auf einen absoluten Pfad im Dateisystem des Backends (ein gemountetes Volume in einem Container-Deployment) — alles Importierte muss unter diesem Root liegen; die UI lässt dich einen Unterpfad darunter auswählen, niemals einen beliebigen Dateisystemort. Siehe [Environment Variables](#environment-variables).
- **Sofort ausprobieren:** `examples/local-detections-samples/` liefert einen kleinen, sofort importierbaren Ordner — zwei gültige KQL-Regeln (eine mit einer `.json`-Sidecar-Datei, um diesen Mechanismus zu zeigen), eine absichtlich ungültige Regel (um das als ungültig markierte Banner zu sehen) und eine nicht erkannte Datei (um das fehlgeschlagene Import-Banner zu sehen). Richte `LOCAL_IMPORT_DIR` darauf, um alle drei Ergebniszustände bei deinem allerersten Import zu sehen, ohne eine Regel schreiben zu müssen.

**Local Detections** — ein abgeschlossener Importlauf: das Zusammenfassungs-Banner hebt Dateien hervor, die katalogisiert, aber von der statischen Analyse als ungültig markiert wurden (hier eine Regel, die bei einem einzelnen hartcodierten Hash alarmiert), direkt neben denen, die sauber importiert wurden, und jede Datei wird zu einer normalen Hunt-/Detection-Zeile darunter

![Local Detections](https://assets.kitploit.com/production/public/readmes/55296/caf1d88594b2bef58bc52b99a779da6d51aeb2b032ae1808fb114c1b8d6aca07/8985c51d3404ac6592121c1d2217d5faa6551c97d65600b3a9b050d5cd4767ce-display-v1.webp)

---

## Screenshots

Alle Screenshots unten verwenden synthetische Daten (fiktive Organisationsnamen, RFC 5737-Beispiel-IPs, `.example`-Domains), die für die Dokumentation generiert wurden — keine echten Threat-Intel- oder Kundendaten.

**Feed** — triagierte Threat-Intel-Einträge mit Schweregrad, Tags, IOCs und TTPs durchsuchen und filtern

![Feed](https://assets.kitploit.com/production/public/readmes/55296/e75cea290ced1c3b96346bf04578c6964569b5c70ac4982b91a9f2fea761c4e9/75ad877a8fafd97692b94e9f033f28191973ff10ec6d94626633f13cad189cc1-display-v1.webp)

<br>

**Dashboard** — Schweregrad-Aufschlüsselung auf einen Blick und Top-MITRE-ATT&CK-Techniken

![Dashboard](https://assets.kitploit.com/production/public/readmes/55296/eb48a8bbda9454d3f9e134228080ca250d581375f16e4828da282592278c7118/58f1568d9f9896867c01334e00cc8ef3dfb55f2e31a637a349ff2c5f0718b4c2-display-v1.webp)

<br>

**MITRE ATT&CK** — vollständige Matrix-Heatmap der Technik-Abdeckung über den erfassten Intel

![MITRE ATT&CK](https://assets.kitploit.com/production/public/readmes/55296/9df0d60a5197e785dd85356a6beba126ef16bd91518f2d84108b987afaaf9b06/cac6e7cbe4f1b993265c84719288aa8789814fe1aff97821b5f0f27baaf65e3d-display-v1.webp)

<br>

**Your Stack** — definiere deine Umgebung; Feed-Einträge werden nach Relevanz neu bewertet

![Your Stack](https://assets.kitploit.com/production/public/readmes/55296/40839d08db86d678c276bb6d52ec403f807a6593f58b341db27e3e7d8701f652/b7ebedd6e968a264cdf73259aa8d8fef404795023efd998f5a9b0255556f77c2-display-v1.webp)

<br>

**IOCs** — durchsuchbares Verzeichnis aller extrahierten Indikatoren mit STIX/CSV-Export

![IOCs](https://assets.kitploit.com/production/public/readmes/55296/87ac0ff28d571697f6f3ab0ca6905ab5e137bb190cc0bca1fc064db88904614b/e7f960a68d10c87a9467eb42e438cdd81026c5eb5daa9667f9185dc7b395ebe6-display-v1.webp)

<br>

**Integrations** — Connector-Übersicht für Sentinel, Defender und RunZero: konfigurierter/aktivierter Status und Shortcuts in den jeweiligen eigenen Tab

![Integrations](https://assets.kitploit.com/production/public/readmes/55296/b261064e5162d7dd615fab4d8eb332735cc412ae6ada1e095c2bca0f0afcf989/d92aa2477825a8eeb126bb5fa3396f3292fe8af23a7806538d9f74eb561efac2-display-v1.webp)

<br>

**RunZero** — Asset-Korrelation, organisationsweites Exposure-Tracking und Remediation-Metriken, alle aus deinem RunZero-Inventar bezogen

![RunZero](https://assets.kitploit.com/production/public/readmes/55296/1c14c9bf6fa927012db3fef13c5fbe9187aaf3a9e914358b7408a872f61dc6d0/be053e10181d5b79a14a9aff7b249c3450cf787f0379d84651bb060bf9c2b8b6-display-v1.webp)

<br>

**Exposure** — Organisationen nach Anzahl der Threat-Matches gereiht; klicke auf eine beliebige Karte, um passende Einträge zu sehen

![Exposure](https://assets.kitploit.com/production/public/readmes/55296/f80096a602e70e3b462c5d98ac4f04b0ebdc6c47c1efb055bd56f552d55823e4/0bfec2320b8e1f189bfd645a816444587f7fd056377e85ff2c1d34df12b1ab44-display-v1.webp)

<br>

**Detections** — der vollständige Katalog registrierter Analysen (KI-generiert und lokal importiert gleichermaßen), jede mit ihrem Static-Gate-/Backtest-/Review-Status und MITRE-Technik

![Detections](https://assets.kitploit.com/production/public/readmes/55296/bbf5ddc849c368101e54def614a377ba8bcca705cecf65949dc7b93f1a9dea1f/75df6746fea32f7dac1a0f52b099142c3d48fcdd1dbfcea87b9d20306d178ccd-display-v1.webp)

<br>

**Settings** — KI-Triage-Steuerung, Feed-Health-Monitoring, Source-Trust-Scores und Benutzerverwaltung

![Settings](https://assets.kitploit.com/production/public/readmes/55296/af5be9150416723dd8d0bd311029cc530869c52d514c67f4974a9bbf3d699f99/5964908fc2ae52d0f88149bb6d040898addf7fe99ef154eb7598e1adc3fefda5-display-v1.webp)

---

## Architektur```
┌─────────────────────────────────────────┐
│  Next.js 16 frontend (port 3000)        │
│  Tailwind CSS · dark theme              │
└──────────────┬──────────────────────────┘
               │ REST API (Bearer token)
┌──────────────▼──────────────────────────┐
│  FastAPI backend (port 8000)            │
│  APScheduler · slowapi rate limiting    │
└──┬──────────┬──────────┬────────────┬───┘
   │          │          │            │
Postgres   AI provider  RunZero API  detections.ai
           (modular:    (asset sync)  (coming soon --
           Anthropic or                see Features below)
           Azure AI Foundry)

Backend (backend/) — Python 3.12 + FastAPI. Postgres für die gesamte Speicherung (SQLite und Azure Blob Storage wurden vollständig eingestellt). KI-Anbieter und Authentifizierungsmethode werden beide per Umgebungsvariable ausgewählt, nicht fest codiert — siehe unten.

Frontend (frontend/) — Next.js 16, reines JavaScript, Tailwind CSS. Erkennt den Authentifizierungsmodus automatisch vom Backend beim Laden.

Infra (infra/) — Azure Bicep-Vorlagen für Container Apps, Key Vault und Container Registry (apps.bicep + platform.bicep + app-stack.bicep, bereitgestellt über provision.ps1). Nur relevant für den Azure + API-Tier.


Authentifizierungsmodi

AZURE_AD_TENANT_ID gesetzt → Entra-Modus: Microsoft Entra ID SSO, benutzerspezifische Rollen (erste Anmeldung wird Admin, alle anderen standardmäßig Viewer).

AZURE_AD_TENANT_ID nicht gesetzt → Lokaler Modus: ein einzelner gemeinsamer LOCAL_API_KEY gewährt Admin-Zugriff für jeden, der ihn besitzt. Keine Benutzerverwaltung, keine Azure-Abhängigkeit. Das Frontend ruft beim Laden GET /api/auth/mode auf und rendert automatisch den passenden Anmeldebildschirm — auf der Frontend-Seite ist nichts zu konfigurieren.

Beide Modi stellen anschließend dieselbe Art von app-signiertem JWT aus, sodass jede andere Route (require_auth/require_admin) identisch funktioniert, unabhängig davon, welcher Modus das Token ausgestellt hat.


Lokale Entwicklung

Voraussetzungen

  • Python 3.12+
  • Node.js 20+
  • Docker (für lokales Postgres — siehe die Setup-Skripte)

Schnellster Weg

Führen Sie scripts/setup-basic.sh oder scripts/setup-basic-api.sh aus (siehe Deployment-Stufen) — sie kümmern sich um Postgres und die .env-Generierung für Sie. Dann:```bash cd backend && pip install -r requirements.txt && uvicorn main:app --reload --port 8000 cd frontend && npm install && npm run dev

root@kitploit:~
### Manuelle Einrichtung```bash
cd backend
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp env.example .env              # fill in required values — see Environment Variables below
uvicorn main:app --reload --port 8000

| --no-verify | -n | SSL-Zertifikatsprüfung überspringen | | --timeout | -t | HTTP-Anfrage-Timeout in Sekunden (Standard: 10) | | --user-agent | -A | Benutzerdefinierter User-Agent-String | | --proxy | -p | Proxy-URL (z. B. http://127.0.0.1:8080) | | --header | -H | Benutzerdefinierter Header (wiederholbar) | | --cookie | -b | Cookie-String | | --follow-redirects | -L | HTTP-Weiterleitungen folgen | | --max-redirects | | Maximale Anzahl von Weiterleitungen (Standard: 5) | | --threads | | Anzahl gleichzeitiger Threads (Standard: 10) | | --delay | | Verzögerung zwischen Anfragen in Sekunden | | --retries | | Anzahl der Wiederholungsversuche bei fehlgeschlagenen Anfragen (Standard: 3) | | --output | -o | Ausgabedatei (Standard: stdout) | | --format | -f | Ausgabeformat: text, json, csv (Standard: text) | | --verbose | -v | Ausführliche Ausgabe | | --quiet | -q | Stiller Modus (nur Ergebnisse) | | --no-color | | Farbige Ausgabe deaktivieren | | --config | -c | Pfad zur Konfigurationsdatei | | --version | -V | Version anzeigen und beenden | | --help | -h | Hilfemeldung anzeigen und beenden |

Beispiele

root@kitploit:~
# Grundlegende Verwendung
scanner -u https://example.com

# Mehrere URLs aus einer Datei
scanner -l urls.txt

# Mit benutzerdefinierten Headern und Cookies
scanner -u https://example.com -H "Authorization: Bearer token" -b "session=abc123"

# Ausgabe im JSON-Format
scanner -u https://example.com -f json -o results.json

# Mit Proxy und erhöhten Threads
scanner -u https://example.com -p http://127.0.0.1:8080 --threads 20

# Stiller Modus mit Weiterleitungsverfolgung
scanner -u https://example.com -q -L

Konfigurationsdatei

Das Tool unterstützt eine YAML-Konfigurationsdatei. Standardmäßig sucht es nach ~/.scanner/config.yaml.

root@kitploit:~
# Beispiel für eine Konfigurationsdatei
timeout: 15
threads: 20
user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
follow_redirects: true
max_redirects: 10
headers:
  Authorization: "Bearer your-token"
  X-Custom-Header: "value"
cookies:
  session: "abc123"
proxy: "http://127.0.0.1:8080"
output_format: "json"
verbose: false

Exit-Codes

CodeBeschreibung
0Erfolg
1Allgemeiner Fehler
2Ungültige Argumente
3Netzwerkfehler
4Authentifizierungsfehler
5Zeitüberschreitung

Umgebungsvariablen

VariableBeschreibung
SCANNER_TIMEOUTStandard-Timeout in Sekunden
SCANNER_THREADSStandardanzahl von Threads
SCANNER_USER_AGENTStandard-User-Agent
SCANNER_PROXYStandard-Proxy-URL
SCANNER_CONFIGPfad zur Konfigurationsdatei
SCANNER_NO_COLORFarbige Ausgabe deaktivieren (1 oder true)
SCANNER_VERBOSEAusführliche Ausgabe aktivieren (1 oder true)

Fehlerbehebung

Verbindungszeitüberschreitung

Wenn Verbindungszeitüberschreitungen auftreten, erhöhen Sie den Timeout-Wert:

root@kitploit:~
scanner -u https://example.com --timeout 30

SSL-Zertifikatsfehler

Wenn SSL-Zertifikatsfehler auftreten, können Sie die Überprüfung überspringen (nicht für die Produktion empfohlen):

root@kitploit:~
scanner -u https://example.com --no-verify

Ratenbegrenzung

Wenn Sie auf Ratenbegrenzung stoßen, reduzieren Sie die Anzahl der Threads und fügen Sie eine Verzögerung hinzu:

root@kitploit:~
scanner -u https://example.com --threads 5 --delay 1

Proxy-Verbindungsprobleme

Wenn Sie Probleme mit der Proxy-Verbindung haben, überprüfen Sie, ob der Proxy erreichbar ist:

root@kitploit:~
curl -x http://127.0.0.1:8080 https://example.com

Beitragen

Beiträge sind willkommen! Bitte lesen Sie die CONTRIBUTING.md für Richtlinien.

  1. Forken Sie das Repository
  2. Erstellen Sie einen Feature-Branch (git checkout -b feature/amazing-feature)
  3. Committen Sie Ihre Änderungen (git commit -m 'Add amazing feature')
  4. Pushen Sie zum Branch (git push origin feature/amazing-feature)
  5. Öffnen Sie einen Pull Request

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die LICENSE-Datei für Details.

Danksagungen

  • requests – HTTP-Bibliothek für Python
  • click – Kommandozeilen-Schnittstelle
  • rich – Terminal-Formatierung
  • PyYAML – YAML-Parser

Haftungsausschluss

Dieses Tool ist nur für Bildungs- und autorisierte Sicherheitstests gedacht. Die Nutzer sind dafür verantwortlich, die geltenden Gesetze und Vorschriften einzuhalten. Die Autoren übernehmen keine Haftung für Missbrauch oder Schäden, die durch dieses Tool entstehen.


Hinweis: Stellen Sie immer sicher, dass Sie die Erlaubnis haben, das Zielsystem zu testen, bevor Sie dieses Tool verwenden.```bash cd frontend npm install cp env.local.example .env.local # set NEXT_PUBLIC_API_URL=http://localhost:8000 npm run dev

root@kitploit:~
### Docker Compose (beide Dienste)```bash
cp backend/env.example backend/.env   # fill in required values
docker compose up --build

Frontend → http://localhost:3000 Backend-API-Dokumentation → http://localhost:8000/docs


Umgebungsvariablen

Kopiere backend/env.example nach backend/.env und fülle sie aus. Gruppiert danach, welcher Tier sie benötigt:

Immer erforderlich:

VariableBeschreibung
PG_DSNPostgres-Verbindungszeichenfolge
JWT_SECRET_KEYSecret zum Signieren von App-Session-Tokens (python -c "import secrets; print(secrets.token_hex(32))")

Authentifizierung — einen Modus wählen:

VariableBeschreibung
LOCAL_API_KEYLokaler Modus: gemeinsamer Schlüssel, der Admin-Zugriff gewährt. Lasse AZURE_AD_TENANT_ID ungesetzt, um diesen Modus zu aktivieren
AZURE_AD_TENANT_IDEntra-Modus: Tenant-ID für SSO. Das Setzen aktiviert den Entra-Modus
AZURE_AD_CLIENT_IDEntra-Modus: Client-ID der App-Registrierung
AZURE_AD_CLIENT_SECRETEntra-Modus: Secret der App-Registrierung (nur Frontend)
NEXTAUTH_SECRETEntra-Modus: NextAuth-Session-Verschlüsselungs-Secret (nur Frontend)

KI-Triage — optional, einen Anbieter wählen (beide weglassen, um mit deaktivierter Triage zu laufen):

VariableBeschreibung
AI_PROVIDERanthropic (Standard) oder azure
ANTHROPIC_API_KEYDirekter Anthropic-API-Schlüssel
AZURE_FOUNDRY_ENDPOINTAzure AI Foundry-Endpunkt, z. B. https://<resource>.services.ai.azure.com/anthropic
AZURE_FOUNDRY_API_KEYAzure AI Foundry-API-Schlüssel
AZURE_FOUNDRY_DEPLOYMENTFoundry-Bereitstellungsname (Standard claude-haiku-4-5)
AZURE_FOUNDRY_API_VERSIONFoundry-API-Version (Standard 2025-05-01)

Optional:

VariableBeschreibung
RUNZERO_API_TOKENAktiviert RunZero-Asset-Synchronisierung und -Korrelation
ALLOWED_ORIGINSKommagetrennte CORS-Allowlist (Standard http://localhost:3000)
ENABLE_SCHEDULERAuf false setzen, um den Hintergrund-Feed-Poller zu deaktivieren (Standard true)
ARCHIVE_AFTER_DAYSAuto-Archivierungsschwelle in Tagen (Standard 90)
PG_POOL_MIN / PG_POOL_MAX / PG_POOL_TIMEOUTPostgres-Verbindungspool-Tuning (Standardwerte 1 / 10 / 30)
LOCAL_IMPORT_DIRAktiviert Local Detections Import — absoluter Pfad im Dateisystem des Backends, auf den jeder Import beschränkt ist. Ungesetzt deaktiviert die Funktion vollständig (der zugehörige Tab zeigt eine „nicht konfiguriert"-Meldung)

Frontend (frontend/.env.local oder frontend/env.local.example):

VariableBeschreibung
NEXT_PUBLIC_API_URLBackend-URL aus Sicht des Browsers. Wird zur Build-Zeit in das JS-Bundle eingebettet. Ungesetzt lassen, um API-Aufrufe stattdessen über den integrierten Same-Origin-Proxy (frontend/pages/api/[...proxy].js) zu leiten — erforderlich, wann immer das Backend keinen öffentlichen Ingress hat (z. B. die nur intern erreichbare Container App des Azure + API-Tiers)
BACKEND_URLBackend-URL aus Sicht des Next.js-Servers selbst. Wird vom Login-Austausch von NextAuth verwendet und, wenn NEXT_PUBLIC_API_URL ungesetzt ist, vom Same-Origin-Proxy, der jede /api/*-Browser-Anfrage serverseitig weiterleitet

detections.ai-Orchestrator — demnächst verfügbar (noch nicht Teil dieses öffentlichen Releases; hier dokumentiert für den Fall der Veröffentlichung. Azure + API-Tier, separat bereitstellbar — siehe backend/detection_pipeline/orchestrator.py):

VariableBeschreibung
DETECTIONS_AI_API_KEYErforderlich, um den Orchestrator überhaupt auszuführen
SENTINEL_WORKSPACE_IDCustomer ID (GUID) des Log Analytics Workspace, für Backtesting. Optional
PIPELINE_BATCH_SIZEEinträge pro Lauf (Standard 5)
PIPELINE_DRY_RUNtrue, um zu beanspruchen und zu protokollieren, ohne die API aufzurufen
PIPELINE_LANGUAGEAbfragesprache für Detections (Standard kql)

Sentinel Hunts-Synchronisierung (optional, standardmäßig aus — siehe Einstellungen > API-Einstellungen für den Modus an/aus/manuell/automatisch):

VariableBeschreibung
SENTINEL_HUNTING_SYNC_ENABLEDtrue, um überhaupt einen Hunt-Sync-Versuch zuzulassen. Ungesetzt/false ist ein reiner No-Op — null ARM-Aufrufe
AZURE_SUBSCRIPTION_IDSubscription, die den Sentinel-Workspace enthält
AZURE_RESOURCE_GROUPRessourcengruppe, die den Sentinel-Workspace enthält
SENTINEL_WORKSPACE_NAMEDer Name des Workspace, nicht seine Customer ID — ein anderer Wert als SENTINEL_WORKSPACE_ID oben, den stattdessen der Data-Plane-Client für Backtesting verwendet

Azure-Bereitstellung

Die echte, aktuelle IaC ist infra/apps.bicep + infra/platform.bicep + infra/app-stack.bicep, bereitgestellt über infra/provision.ps1 (oder den dünnen Wrapper scripts/setup-azure.ps1). Sie provisioniert Container Apps, Key Vault-gestützte Secrets und Managed Identities — Postgres selbst wird von diesem Repository nicht provisioniert; richte PG_DSN (gespeichert als das Key Vault-Secret pg-dsn) auf einen beliebigen erreichbaren Postgres-Server aus.```powershell ./scripts/setup-azure.ps1

or directly:

cd infra cp migration.psd1.example migration.psd1 # fill in your resource group, apps, etc. ./provision.ps1

root@kitploit:~
`provision.ps1` ist idempotent — kann nach dem Bearbeiten des Manifests bedenkenlos erneut ausgeführt werden. Siehe den eigenen Header-Kommentar für die vollständige Schritt-für-Schritt-Anleitung (Plattform → App-Stack → Secrets → Easy Auth → Image-Import → Apps → Post-Checks).

Der detections.ai-Orchestrator (ein geplanter Container Apps Job, gesteuert durch einen `Orchestrator`-Block in `migration.psd1` — siehe `migration.psd1.example` für die Struktur, und speichere deinen Schlüssel als `DETECTIONSAIAPIKEY` Key Vault Secret) ist noch nicht Teil dieses öffentlichen Releases — siehe [Two detections-related features](#two-detections-related-features) oben.

---

## Projektstruktur```
├── backend/
│   ├── main.py                  # FastAPI app, all endpoints
│   ├── db.py                    # Postgres queries
│   ├── pgcompat.py              # connection pool + SQLite-style placeholder translation
│   ├── feed_manager.py          # RSS polling, AI triage (provider-modular), scheduler
│   ├── enrichment.py            # IOC extraction, KEV cache, stack rematch
│   ├── runzero_sync.py          # RunZero asset sync and correlation engine
│   ├── dedup.py                 # CVE deduplication logic
│   ├── auth.py                  # Entra ID SSO + local API-key auth, app JWT sign/verify
│   ├── ioc_export.py            # STIX 2.1 and CSV export
│   ├── stack_presets.py         # Pre-built tech stack templates
│   ├── detection_pipeline/      # detections.ai orchestrator, MITRE alignment-check,
│   │                            # Sentinel hunts/analytics-rules sync + tuning,
│   │                            # audit log, local_import.py (Local Detections Import)
│   └── tests/                   # pytest test suite, incl. fixtures/local_import/
├── frontend/
│   ├── pages/
│   │   ├── index.js              # Main app shell + tab routing
│   │   └── login.js              # Entra ID or local API-key login, auto-detected
│   ├── lib/
│   │   ├── authMode.js           # GET /api/auth/mode, cached per page load
│   │   ├── authFetch.js          # Bearer auth + 401-retry wrapper
│   │   └── authSession.js        # token storage, JWT decode/expiry helpers
│   └── components/
│       ├── layout/                # TopBar, Sidebar, TabBar, TopFilterBar, TimeRangeToggle
│       ├── feed/                  # FeedList, FeedCard
│       ├── integrations/          # IntegrationsPanel, ExposurePanel, RunZeroPanel,
│       │                          # RunZeroMatchesPanel, RunZeroMetricsPanel
│       ├── detections/            # DetectionsPanel (tab shell) + one component per
│       │                          # sub-tab: DetectionsCatalogPanel, AlignmentReviewPanel,
│       │                          # DispositionAlertsPanel, HuntsPanel, SentinelHuntsPanel,
│       │                          # SentinelAnalyticsRulesPanel, LocalDetectionsPanel,
│       │                          # AuditPanel, plus shared TuningSuggestionBadge
│       ├── settings/              # SettingsPanel, CadencePicker, SeverityCards
│       └── mitre/                 # MitreMatrix
├── infra/                       # Azure Bicep templates + provision.ps1
├── scripts/                     # Tiered setup scripts (see Deployment tiers)
└── docker-compose.yml

Feed-Quellen

63 Feeds über drei Stufen:

  • Stufe 1 — CISA, Cisco Talos, Fortinet Threat Signal, ESET WeLiveSecurity, Microsoft Security Blog, SentinelOne Labs, Google Project Zero, Zero Day Initiative, Check Point Research, Talos Intelligence Blog, The DFIR Report, Oracle
  • Stufe 2 — Recorded Future, Malpedia, SANS ISC, Securelist, Unit42, Proofpoint TI, Malwarebytes TI, Wiz Blog, Datadog Security Labs, ReversingLabs, Sekoia, Cyble, ANY.RUN Blog, und weitere
  • Stufe 3 — BleepingComputer, Krebs on Security, Schneier on Security, The Hacker News, Dark Reading, CrowdStrike Blog, Snyk, Semgrep, und weitere

Sicherheit

  • Alle API-Endpunkte erfordern Authorization: Bearer <token>
  • Timing-sicherer Token-Vergleich (secrets.compare_digest) für den lokalen Auth-Schlüssel
  • Durchgängig parametrisiertes SQL — keine String-Interpolation in Abfragen
  • CORS auf explizite Origin-Allowlist beschränkt
  • LLM-Eingaben vor AI-Provider-Aufrufen bereinigt; Ausgaben vor der Speicherung validiert
  • Container laufen als Non-Root mit allen entfernten Linux-Capabilities
  • Keine Secrets in Images eingebettet — zur Laufzeit aus .env / Azure Key Vault geladen

Lizenz

MIT — siehe LICENSE.

Tool herunterladen