
Offline-AD/Entra-Angriffspfad-Analysator für SharpHound/AzureHound-JSON. Deckt priorisierte Privilegieneskalations-, Credential- und Fehlkonfigurations-Findings auf, ohne BloodHound oder Neo4j.
Ein SquidSec-Open-Source-Projekt
SquidOffense.com ·
GitHub
BloodBash ist ein quelloffener Offline-Analysator für SharpHound und AzureHound-JSON, erstellt und verwaltet von SquidSec. Er erstellt einen Graphen, deckt AD/Entra-Angriffspfade und Fehlkonfigurationen auf und gibt priorisierte Ergebnisse aus. Keine Neo4j- oder BloodHound-UI erforderlich.
Bei Merges in main werden automatisch Linux- und Windows-Binaries erstellt und eine GitHub-Release veröffentlicht (Tag v1.4.2-build.N).
BloodBash wird von SquidSec für die Sicherheits-Community entwickelt und gepflegt - für Red-Teamer, Pentester und Verteidiger, die eine schnelle Offline-AD/Entra-Analyse benötigen, ohne eine BloodHound-Infrastruktur aufsetzen zu müssen.
Eigenständige SquidSec-BloodBash-Executables - kein Python, pip oder venv erforderlich:
| Plattform | Neuester Download |
|---|---|
| Linux x64 | bloodbash-linux-x64 |
| Windows x64 | bloodbash-windows-x64.exe |
curl -sL -o bloodbash
https://github.com/DotNetRussell/BloodBash/releases/latest/download/bloodbash-linux-x64
chmod +x bloodbash
./bloodbash /path/to/json --all
[Kein Markdown-Inhalt zum Übersetzen bereitgestellt. Bitte fügen Sie den zu übersetzenden Text nach „INPUT:" ein.]```powershell
# Windows (PowerShell)
Invoke-WebRequest -Uri "https://github.com/DotNetRussell/BloodBash/releases/latest/download/bloodbash-windows-x64.exe" `
-OutFile bloodbash.exe
.\bloodbash.exe C:\path\to\json --all
pipx install git+https://github.com/DotNetRussell/BloodBash
Oder aus einem Klon:```bash
git clone https://github.com/DotNetRussell/BloodBash.git
cd BloodBash
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
Abhängigkeiten: networkx, rich, tqdm, pyyaml.
Starten Sie mit diesen 3 (zeigen Sie auf ein SharpHound/AzureHound-Verzeichnis oder eine .zip-Datei):```bash
bloodbash /path/to/json
bloodbash /path/to/json --quick-wins
bloodbash ./sharpout --from-user alice --from-user-export
bloodbash /path/to/json --all --fast
bloodbash /path/to/json --all --inventory
Bei einem Quellcode-Checkout entspricht `python3 BloodBash.py` dem Befehl `bloodbash`.```bash
# Binary / pipx
./bloodbash /path/to/json
bloodbash /path/to/json --from-user alice --from-user-export
# Multi-collection merge (low-priv + DA zip, multi-domain forest)
bloodbash ./lowpriv.zip --merge ./da.zip ./child-domain.zip --all --fast
Mit nur einem Verzeichnis (ohne Prüf-Flags) wird die quick-wins-Triage ausgeführt. Verwende --all für eine vollständige Angriffspfad-Analyse (keine Inventarisierung) oder --wizard für eine interaktive Auswahl.
Bei --all und --quick-wins werden leere Detektor-Abschnitte ausgeblendet, damit die Konsole lesbar bleibt. Selektive Flags geben für die von dir angefragten Prüfungen weiterhin grüne "none found"-Zeilen aus.
Beispieldaten: SampleSharphoundADData/ und SampleAzurehoundData/.```bash
bloodbash --help # start-here + cheat sheet
bloodbash --help-advanced # full flag tables + all examples
Weitere Rezepte: [docs/cookbook.md](https://github.com/squidsec/bloodbash/blob/HEAD/docs/cookbook.md).
## Was es findet
| Bereich | Prüfungen |
|------|--------|
| **AD-Privilegien** | DCSync (GetChanges+GetChangesAll; verschachtelte DA/EA wie erwartet behandelt), gefährliche ACLs auf High-Value-Objekten, **interessanter Non-HV-ACL-Missbrauch** (ForceChangePassword / GenericAll / GenericWrite auf Benutzern/Computern/Gruppen; Bulk-Computer-GenericWrite-Rauschen unterdrückt), GPO-Missbrauch, RBCD (konfiguriert + *kann konfigurieren*), eingeschränkte/unbeschränkte Delegierung (**DC vs. Nicht-DC**-Abschnitte), SID-Verlauf, **Domänenvertrauensstellungen** (`--trust`) |
| **AD-Anmeldedaten** | Kerberoastable, AS-REP-roastable (mit **AdminCount / OWNED / LASTLOG**-Tags), **privileged roast** (`--privileged-roast`: roastable + verschachtelte DA/EA / AdminCount), Schatten-Anmeldedaten, Passwort in Beschreibung, PasswordNeverExpires / PasswordNotRequired. SharpHound `sensitive` (NOT_DELEGATED) schließt Roast-Kandidaten **nicht** aus |
| **ADCS** | ESC1-ESC7 (+ ESC8/ESC9/ESC13, wenn Collector-Eigenschaften vorhanden sind). ESC10-12 benötigen Registrierungs-/HTTP-Rollendaten, die in SharpHound oft fehlen. Sanfte Meldung, wenn das Zip keine Zertifikatobjekte enthält. |
| **Azure / Entra** | Privilegierte Rollen, *Kontroll*pfade für App-/SP-Anmeldedaten, explizite MFA-Deaktivierung, Gastbenutzer, SP-Missbrauchsrechte |
| **Pfade** | Kürzeste Pfade zu High-Value-Zielen (eingeschränkte Menge in `--fast`; HV umfasst Builtin-Administratoren und **Domänencontroller-Computer**), Owned-Prinzipale (`--owned` = eingehend), benutzerdefinierte `--path-from` / `--path-to` |
| **Kompromittierungs-Dossier** | `--from-user` / `--compromise`: ausgehende Mitgliedschaft, AdminTo/RDP/ACL-Zählungen, verschachtelte Gruppen, automatische Pfade zu HV, txt/csv-Export einschließlich **Bulk-AdminTo-Hostlisten** |
| **Pfad-Behebung** | Ranking der am stärksten genutzten Pfade (`--busiest-paths`), Empfehlungen zum Entfernen von Kanten (`--path-break`) |
| **Inventar** | Passwortalters-Leitern, veraltete/inaktive Konten, Berechtigungsgruppen, strukturell (Domänen/DCs/Vertrauensstellungen), Owned-Objekt-Inventar, **Statistik-Dashboard mit %** |
| **PlumHound-artiges CSV-Paket** | `--csv-pack DIR`: Multi-CSV-Inventar (Domänen, DA, Roastables, LAPS, Everyone/überprivilegierte Kanten, Computer-AdminTo-Computer, doppelte Privilegien + lokaler Admin, Bulk-AdminTo-Hosts) + `index.csv` |
| **Multi-Input** | `--merge PATH…` vereinigt zusätzliche Verzeichnisse/Zips zu einem Graphen (Multi-Domänen / duale Low-Priv+DA-Sammlungen) |
| **Sonstiges** | **Erfassungsstatus**-Banner (Objektzahlen, Session-/AdminTo-/RDP-Abdeckung, ADCS-Vorhandensein), LAPS-Abdeckung (`haslaps`) + **LAPS-Passwortleser** (`ReadLAPSPassword`), GPO-XML (`--gpo-content-dir`), Domänen-`Trusts[]`-Kanten, Gruppenverschachtelung, `--list-domains` |
Ergebnisse werden bewertet und in einer **Prioritized Findings**-Tabelle zusammengefasst (Hygiene-Kategorien mit hohem Volumen werden eingeklappt; verwenden Sie `--all-findings` für die vollständige eingeklappte Liste). Missbrauchs-Panels schlagen Tools/Befehle pro Kategorie vor.
Dies ist ein **Offline-Heuristik-Analysator** von SquidSec und kein vollständiger Ersatz für BloodHound CE. Für die Pfad-Parität sollte die Validierung gegen BloodHound CE mit demselben Zip bevorzugt werden.
---
## Beispielbefehle
Ersetzen Sie `./sharpout` durch Ihr SharpHound/AzureHound-Verzeichnis oder Zip. Source-Checkout: verwenden Sie `python3 BloodBash.py` anstelle von `bloodbash`.
### Grundlagen```bash
# Help (tables + examples)
bloodbash --help
bloodbash --help-advanced
# Default = quick wins (high-signal day-0 triage)
bloodbash ./sharpout
bloodbash ./sharpout --quick-wins
bloodbash ./sharpout --quick-wins --domain CORP.LOCAL
bloodbash ./2024-collection.zip --quick-wins
# Interactive picker
bloodbash ./sharpout --wizard
# Full attack analysis (--all auto --fast on large graphs; inventory is separate)
bloodbash ./sharpout --all
bloodbash ./sharpout --all --fast
bloodbash ./2024-collection.zip --all
bloodbash ./sharpout --all --inventory
# Merge multiple collections into one graph
bloodbash ./lowpriv.zip --merge ./da.zip --all --fast
bloodbash ./forest-root --merge ./child-a.zip ./child-b.zip --quick-wins
# One domain / tenant only
bloodbash ./sharpout --all --domain CORP.LOCAL
bloodbash ./azureout --azure-privileged-roles --domain <tenantId>
# Domain trusts
bloodbash ./sharpout --trust
bloodbash ./sharpout --all --trust
# In-repo samples
bloodbash SampleSharphoundADData --quick-wins
bloodbash SampleSharphoundADData --all --fast --all-findings
bloodbash SampleAzurehoundData --azure-privileged-roles --azure-guest-access --all-findings
--quick-wins ausführtKuratierte Auswahl mit hoher Signalqualität (impliziert --fast, ausführliche Zusammenfassung, vollständige Ergebnistabelle). Kein vollständiger Inventar-/Azure-Dump. Leere Abschnitte bleiben unerwähnt.
| Bereich | Module |
|---|---|
| Privilegien | DCSync (unerwartet), ADCS, dangerous ACLs + interesting non-HV ACLs, RBCD + can-configure, unconstrained (DC vs non-DC), constrained, shadow creds, LAPS (+ readers), trusts |
Entsprechendes Profil: --profile quick-wins (siehe profiles/quick-wins.yaml).
Outbound-Ansicht: „Ich habe gerade diesen Principal kompromittiert – was kann er tun?“
bloodbash ./sharpout --from-user alice bloodbash ./sharpout --compromise [email protected]
bloodbash ./sharpout --from-user alice --from-user-export bloodbash ./sharpout --from-user alice --from-user-export ./alice-dossier
bloodbash ./sharpout --from-user alice,bob,svc_backup --from-user-export ./footholds
bloodbash ./sharpout --from-user alice --domain CORP.LOCAL --from-user-export --all-findings
bloodbash SampleSharphoundADData --from-user SCOTT --from-user-export ./scott-out --fast
bloodbash ./sharpout --from-user alice --inspect alice bloodbash ./sharpout --path-from alice --path-to 'domain [email protected]'
bloodbash ./sharpout --owned alice --owned-inventory --shortest-paths bloodbash ./sharpout --owned-file ./owned.txt --owned-inventory
bloodbash ./sharpout --from-user-file ./footholds.txt --from-user-export ./out
**Export-Layout** (pro Principal):```text
compromise-alice/
summary.md README.txt counts.csv
membership_direct.txt membership_effective.txt
adminto_hosts.txt adminto_hosts.csv # bulk AdminTo/LocalAdmin host list
paths_to_high_value.txt paths_to_high_value.csv
dossier.json
rights/
AdminTo.txt AdminTo.csv CanRDP.txt LocalAdmin.txt GenericAll.txt ...
bloodbash ./sharpout --shortest-paths bloodbash ./sharpout --shortest-paths --indirect --fast
bloodbash ./sharpout --shortest-paths --path-mode abuse
bloodbash ./sharpout --deep-paths bloodbash ./sharpout --path-mode deep --path-depth 16 --path-sources 400 --max-paths 20
bloodbash ./sharpout --golden-path
bloodbash ./sharpout --golden-path --from-user alice --domain CORP.LOCAL
bloodbash ./sharpout --busiest-paths short --busiest-paths-top 10
bloodbash ./sharpout --busiest-paths all --busiest-paths-top 5
bloodbash ./sharpout --path-break --path-break-top 20
bloodbash ./sharpout --busiest-paths short --path-break --fast
--report-pack ./path-reports --export-zip path-reports.zip
bloodbash ./sharpout --path-from helpdesk --path-to 'domain [email protected]'
bloodbash ./sharpout --path-from alice,bob --path-to 'domain admins,enterprise admins'
bloodbash ./sharpout --deep-analysis
bloodbash ./sharpout --inspect 'DOMAIN [email protected]'
### Selektive AD-Checks```bash
# Critical / common engagement set
bloodbash ./sharpout --dcsync --adcs --dangerous-permissions --verbose
bloodbash ./sharpout --dcsync --adcs --dangerous-permissions --all-findings
# Credentials (+ privilege-context tags on roast findings)
bloodbash ./sharpout --kerberoastable --as-rep-roastable --password-descriptions
# High-priority: roastable users nested into DA/EA/...
bloodbash ./sharpout --privileged-roast
bloodbash ./sharpout --password-never-expires --password-not-required --password-age
# Delegation / RBCD (configured + who can configure AllowedToAct) / shadow creds
bloodbash ./sharpout --unconstrained-delegation --constrained-delegation --rbcd
bloodbash ./sharpout --shadow-credentials
# Trusts, sessions, LAPS (coverage + ReadLAPSPassword readers), SID history, GPO
bloodbash ./sharpout --trust --sessions --laps --sid-history
bloodbash ./sharpout --gpo-abuse --gpo-parsing
bloodbash ./sharpout --gpo-abuse --gpo-content-dir ./sysvol-gpo-xml
bloodbash ./sharpout --list-domains
bloodbash ./sharpout --inventory bloodbash ./sharpout --stale-accounts --password-age --privilege-inventory bloodbash ./sharpout --owned alice --owned-inventory
bloodbash ./sharpout --profile quick bloodbash ./sharpout --profile quick-wins # same set as --quick-wins bloodbash ./sharpout --profile adcs-heavy bloodbash ./sharpout --profile hygiene bloodbash ./sharpout --profile ./my-engagement.yaml
bloodbash ./sharpout --inventory --busiest-paths short --path-break
--report-pack ./reports --export-zip bloodbash-reports.zip --log-file ./bloodbash.log
bloodbash ./sharpout --csv-pack ./ph-reports bloodbash ./sharpout --csv-pack ./ph-reports --export-zip ph-reports.zip bloodbash ./sharpout --all --fast --csv-pack ./ph-full --export-zip ph-full.zip
bloodbash ./sharpout --all --export=md bloodbash ./sharpout --all --export=html bloodbash ./sharpout --all --export=csv bloodbash ./sharpout --all --export=json --export-bh --dot graph.dot bloodbash ./sharpout --all --export=yaml
bloodbash ./sharpout --dcsync # builds + caches graph bloodbash ./sharpout --kerberoastable # cache hit; only runs kerberoast check bloodbash ./sharpout --all --rebuild-cache # force re-ingest bloodbash ./sharpout --all --no-cache # disable cache bloodbash ./sharpout --cache-dir /tmp/bb-cache --all
bloodbash ./sharpout --all --db bloodbash.db bloodbash . --db bloodbash.db --from-user alice --from-user-export
### PlumHound-Stil CSV-Pack-Inhalte
`--csv-pack DIR` schreibt für jede Inventaraufgabe eine CSV-Datei sowie `index.csv` / `README.txt` (ohne Neo4j):
| CSV | Beschreibung |
|-----|-------------|
| `domains.csv` | AD-Domänen in der Sammlung |
| `domain_admins.csv` | Prinzipale, die in DA/EA-artige Gruppen verschachtelt sind |
| `users.csv` / `computers.csv` / `groups.csv` | Kernobjekt-Inventar |
| `kerberoastable.csv` / `asrep_roastable.csv` | Kandidaten für Credential Roasting (+ Tags) |
| `password_never_expires.csv` | PNE-Benutzer |
| `laps_not_enabled.csv` | Computer ohne LAPS |
| `local_admins_users.csv` | Benutzer/Gruppe → Computer AdminTo/LocalAdmin |
| `user_sessions.csv` | HasSession-Computer ↔ Benutzer |
| `relationships_everyone.csv` (und Auth Users, Domain Users, …) | Kanten von übermäßig weit gefassten Prinzipalen |
| `overprivileged_relationships.csv` | Kombinierte Everyone/Auth/Domain-Users/…-Kanten |
| `computer_adminto_computer.csv` | Maschine → Maschine AdminTo |
| `dual_privileged_and_local_admin.csv` | DA/EA-Mitglieder, die ebenfalls AdminTo besitzen (Tiering) |
| `bulk_adminto_hosts.csv` | Prinzipale, sortiert nach Anzahl der AdminTo-Hosts |
| `index.csv` | Berichtsindex (Datei → Zeilenanzahl) |
### Azure / Entra```bash
bloodbash ./azureout --azure-privileged-roles
bloodbash ./azureout --azure-app-secrets --azure-sp-abuse
bloodbash ./azureout --azure-mfa-bypass --azure-guest-access
bloodbash ./azureout \
--azure-privileged-roles --azure-app-secrets --azure-mfa-bypass \
--azure-guest-access --azure-sp-abuse --all-findings --export=html
bloodbash SampleAzurehoundData \
--azure-privileged-roles --azure-guest-access --all-findings
bloodbash ./sharpout --all --fast --all-findings
--report-pack ./nightly --export-zip nightly.zip --log-file nightly.log
bloodbash ./lowpriv.zip --merge ./da.zip --all --fast --csv-pack ./ph-full
bloodbash ./sharpout --from-user alice --from-user-export ./dossiers bloodbash ./sharpout --profile hygiene --report-pack ./hygiene --export-zip hygiene.zip
bloodbash ./sharpout --profile adcs-heavy --path-break --busiest-paths short
--report-pack ./adcs-paths --export-zip adcs-paths.zip
---
## Flag-Referenz
### Report-Pakete, Profile, Dossiers, Deliverables (v1.4+)
| Flag | Zweck |
|------|---------|
| `--from-user` / `--compromise USER` | **Kompromittierungs-Dossier** (ausgehend): verschachtelte Gruppen, AdminTo-/RDP-/ACL-Zählungen, Pfade zu High-Value-Zielen |
| `--from-user-export [DIR]` | Export des Dossiers als txt/csv/json + **adminto_hosts**-Listen (Standard: `compromise-<user>/`) |
| `--busiest-paths [short\|all]` | Rangfolge der Principals mit den meisten Pfaden zu High-Value-Zielen |
| `--path-break` | Empfehlen, welche Beziehungen entfernt werden sollten, um die meisten Angriffspfade zu unterbrechen |
| `--inventory` | Strukturelle + Kennwortalter- + veraltete + Berechtigungsinventare |
| `--password-age` / `--stale-accounts` / `--privilege-inventory` | Einzelne Inventarmodule |
| `--owned-inventory` | AdminTo-/MemberOf-Inventar für `--owned`-/`--owned-file`-Principals |
| `--owned-file FILE` | Zeilenweise getrennte Owned-Principals (wird mit `--owned` zusammengeführt) |
| `--from-user-file FILE` | Zeilenweise getrennte Ausgangspunkte für Kompromittierungs-Dossiers (wird mit `--from-user` zusammengeführt) |
| `--report-pack DIR` | Mehrseitige HTML-Suite + `index.html` + CSVs pro Abschnitt |
| `--csv-pack DIR` | **Multi-CSV-Paket im PlumHound-Stil** (Inventar + Overpriv- + AdminTo-Berichte + `index.csv`) |
| `--export-zip [FILE]` | Packt ein `--report-pack`- oder `--csv-pack`-Verzeichnis in ein einziges Deliverable |
| `--profile FILE\|name` | YAML-Analyseprofil (`quick`, `quick-wins`, `adcs-heavy`, `hygiene` oder Pfad) |
| `--log-file [FILE]` | Fortschreibbares Laufprotokoll (Standard: `bloodbash.log`) |
| `--all-findings` | Am Ende des Laufs: Tabelle mit **allen** Befunden ausgeben (auch wenn leer) |
### Weitere nützliche Flags
| Flag | Zweck |
|------|---------|
| `--all` | Führt jedes Analysemodul aus (leere AD-Abschnitte werden unterdrückt) |
| `--quick-wins` | **Hochsignifikante Day-0-Triage** (außerdem die **Standardoption**, wenn keine Check-Flags gesetzt sind; impliziert `--fast`) |
| `--merge PATH…` | Zusätzliche SharpHound-/AzureHound-Verzeichnisse oder ZIP-Dateien, die zu einem einzigen Graphen vereinigt werden |
| `--trust` | Prüfungen auf Domain-Trust-/SID-Filtering-Missbrauch |
| `--wizard` | Interaktiver Modus-Auswähler (quick-wins / full / dossier / profile) |
| `--help-advanced` | Vollständige Flag-Tabellen + alle Beispiele (das kurze `--help` ist nur der Einstieg) |
| `--fast` | Begrenzt die Pfadsuche auf Top-Ziele im DA/EA-Stil (kein vollständiges Überspringen). Automatisch aktiv für große Graphen mit `--all` |
| `--domain X` | Auf eine AD-Domäne oder Azure-`tenantId` filtern (Groß-/Kleinschreibung wird ignoriert) |
| `--list-domains` | AD-Domänen / Azure-Tenants in der Sammlung auflisten und beenden |
| `--owned a,b` | Pfade **zu** Owned-Principals (eingehend) |
| `--owned-file FILE` | Wie `--owned`, aus einer zeilenweise getrennten Datei (`#`-Kommentare ok) |
| `--from-user-file FILE` | Wie `--from-user`, aus einer zeilenweise getrennten Datei |
| `--path-from` / `--path-to` | Beliebige kürzeste Pfade |
| `--inspect NODE` | Eigenschaften + Kanten eines Knotens ausgeben |
| `--indirect` | Gruppenvermittelte Pfade/Rechte einbeziehen |
| `--deep-analysis` | Langsame Gruppenverschachtelung + Zykluserkennung |
| `--privileged-roast` | Kerberoast-/AS-REP-Benutzer, die in DA/EA/anderen privilegierten Gruppen verschachtelt sind (oder AdminCount) |
| `--gpo-content-dir DIR` | GPO-XMLs parsen (Aufgaben, Skripte, cPassword) |
| `--export {md,json,html,csv,yaml}` | Einen Bericht schreiben (High-Value-Ziele + priorisierte Befunde) |
| `--export-bh` | Graph-JSON im BloodHound-Stil |
| `--dot [FILE]` | Graphviz-DOT-Export |
| `--db FILE` | SQLite-Pfad des Graphen (Standard: Auto-Cache anhand des Fingerabdrucks der Sammlung unter `~/.cache/bloodbash/`) |
| `--cache-dir DIR` | Automatisches Graph-Cache-Verzeichnis überschreiben |
| `--no-cache` | Immer neu einlesen; Graph-Cache weder lesen noch schreiben |
| `--rebuild-cache` | Neueinlesen erzwingen und Graph-Cache aktualisieren |
| `--debug` | Ausführliches Logging beim Parsen/Aufbauen |
Ebenfalls unter `--all` / selektiven Flags enthalten: Banner zur Integrität der Sammlung; interessante Nicht-HV-ACL-Missbrauchsfälle; Privilegien-Kontext-Tags bei Roast-Befunden; unerwarteter DCSync-Split; uneingeschränkter DC vs. Nicht-DC; LAPS-Leser; RBCD konfigurierbar; Prozentangaben im Statistik-Dashboard; stille, leere Abschnitte bei breiten Läufen.
Nur-Azure-Optionen: `--azure-privileged-roles`, `--azure-app-secrets`, `--azure-mfa-bypass`, `--azure-guest-access`, `--azure-sp-abuse`.
Führen Sie `bloodbash --help` für den Einstieg + Spickzettel aus, oder `--help-advanced` für vollständige Flag-Tabellen und Beispiele.
## Hinweise zu SharpHound CE
Der Ingest versteht moderne Collector-Ausgaben: Gruppen-`Members`, `AllowedToAct` (RBCD), Sessions / LocalGroups, Domain-`Trusts[]`, SID-Historie, CE-Eigenschaftsnamen-Aliasse und sichere ZIP-Extraktion (Zip Slip blockiert). DCSync erfordert **GetChanges + GetChangesAll**. ADCS-Beschriftungen folgen SpecterOps ESC1-ESC8 (+ ESC9/ESC13-Kandidaten, wenn Flags vorhanden sind). Computerobjekte von Domänencontrollern bleiben High-Value-Ziele. `highvalue`-Flags von Workstations auf lokalen Admin-Gruppen überfluten die HV-Menge nicht.
## Metasploit-Modul
Kapselt die SquidSec BloodBash-CLI (v1.4+) und schreibt Befunde in die Metasploit-DB.
Die Optionen entsprechen denen der CLI: AD/Azure-Checks, Inventar, busiest-paths / path-break,
`--from-user`-Kompromittierungs-Dossiers, Profile, Report-Pakete, Exporte und Graph-Cache (`--db` / Auto-Cache).```bash
cp modules/auxiliary/analyzer/bloodbash_analyzer.rb \
/opt/metasploit-framework/modules/auxiliary/analyzer/
# then in msfconsole: reload_all
Please provide the Markdown content to translate.```text use auxiliary/analyzer/bloodbash_analyzer set BLOODBASH_PATH /path/to/BloodBash/BloodBash.py set JSON_DIR /path/to/collector_json_or.zip set ALL_CHECKS true run
I'm ready to translate the content, but the chunk text appears to be missing from your message. Please provide the actual Markdown content for chunk 35, and I'll translate it from English to German following all the specified rules.```text
# Foothold dossier + hygiene (parity with CLI examples)
set FROM_USER alice
set FROM_USER_EXPORT
set PASSWORD_NEVER_EXPIRES true
set KERBEROASTABLE true
set ALL_FINDINGS true
run
Setze PYTHON, wenn python3 nicht im PATH ist. Setze BLOODBASH_PATH auf eine eigenständige
Binärdatei (nicht-.py), um den Python-Interpreter zu überspringen. Die Domänenfilterung ist case-insensitiv
(entspricht der CLI).
pip install -r requirements-dev.txt
python3 -m pytest test_bloodbash.py test_members_ingest.py
test_detection_variations.py test_compromise_dossier.py
test_synthetic_corpus.py test_ludus_collections.py
test_real_data_reliability.py test_graph_cache.py
test_owned_file.py test_golden_path.py test_deep_paths.py
test_ci_pytest_suite.py -q
### Synthetisches SharpHound-Korpus (Hochenropie-Regression)
Öffentliche Beispieldumps sind klein und haben eine geringe Entropie. Für die Detektor-Regression liefern wir ein
**synthetisches SharpHound-CE-Labor** (`testData/synthetic-corp-lab/`) mit bekannter
Ground Truth (unerwartetes DCSync, Auth Users GPO write, bulk can-configure RBCD,
ESC1, roast, LAPS mix usw.). Keine echten Engagement-Daten.```bash
# Regenerate corpus + ground_truth.json
python3 tools/generate_synthetic_sharphound.py --out testData/synthetic-corp-lab
# Smoke BloodBash against it
python3 BloodBash.py testData/synthetic-corp-lab --all --fast --all-findings
python3 BloodBash.py testData/synthetic-corp-lab --from-user alice.low --fast
# 20 multi-hop engagement scenarios (classic + common debt paths)
python3 tools/run_scenario_battery.py
python3 tools/run_scenario_battery.py --count 20 --seed 42 -v
python3 tools/run_scenario_battery.py --list-profiles
python3 tools/run_scenario_battery.py --keep --work-dir /tmp/bb-engagements
CI (PR + main) führt Unit-/Integrationstests und run_scenario_battery.py --count 20 --seed 42 aus (20 Engagement-Ketten). Branch Protection erfordert den Statuscheck test.
Genauigkeits-Helfer (keine Kundendaten):```bash
python3 tools/mutate_corpus.py --in testData/synthetic-corp-lab --out /tmp/mut --seed 1 python3 BloodBash.py /tmp/mut --all --fast
python3 BloodBash.py testData/synthetic-corp-lab
--gpo-content-dir testData/gpo-xml-fixtures --gpo-parsing
### Lokaler Binär-Build```bash
python3 -m venv .venv-build && source .venv-build/bin/activate
pip install -r requirements.txt -r requirements-build.txt
pyinstaller --onefile --console --name bloodbash-linux-x64 BloodBash.py
# -> dist/bloodbash-linux-x64
CI (bei jedem Push auf main) führt Tests aus, erstellt Linux- und Windows-Ein-Datei-Binaries mit PyInstaller und veröffentlicht ein Release mit stabilen Asset-Namen für die /releases/latest/download/... Links oben. Tags sehen aus wie v1.4.1-build.N.
MIT - nur für autorisierte Sicherheitstests und Red Teaming.
BloodBash ist ein Open-Source-Projekt, das von SquidSec erstellt und verwaltet wird.
| Organisation | SquidSec |
| Website | https://squidoffense.com/ |
| App-Version | v1.4.2 |
| Neuestes Binary | |
| Lizenz | MIT |
| Laufzeit (Quellcode) | Python 3.9+ |
| Anmeldedaten | Kerberoast, AS-REP, privileged roast, password-in-description, PasswordNotRequired |
| Betrieb | Sessions / local admin summary, collection health |
| Pfade | Shortest paths to HV, busiest short paths, path-break |
| Flag | Bedeutung |
|---|
--from-user / --compromise | Dossier erstellen (verschachtelte Gruppen, Rechte, HV-Pfade) |
--from-user-export [DIR] | Schreibt txt/csv/json-Listen (Standard: compromise-<user>/) |
--owned / --owned-file | Anders: Pfade zu diesem Principal (eingehend); Datei ist zeilengetrennt |