
Analisador offline de caminhos de ataque do AD/Entra para JSON do SharpHound/AzureHound. Apresenta descobertas priorizadas de escalonamento de privilégios, credenciais e má configuração sem BloodHound ou Neo4j.
Um Projeto Open Source da SquidSec
SquidOffense.com ·
GitHub
BloodBash é um analisador open source offline de JSON do SharpHound e do AzureHound, criado e mantido pela SquidSec. Ele constrói um grafo, expõe caminhos de ataque e misconfigurations de AD/Entra e exibe descobertas priorizadas. Não é necessário Neo4j nem interface BloodHound.
Merges para main compilam automaticamente binários para Linux e Windows e publicam uma GitHub Release (tag v1.4.2-build.N).
O BloodBash é desenvolvido e mantido pela SquidSec para a comunidade de segurança — red teamers, pentesters e defensores que precisam de análise offline rápida de AD/Entra sem montar infraestrutura BloodHound.
Executáveis independentes SquidSec do BloodBash — sem necessidade de Python, pip ou venv:
| Plataforma | Download mais recente |
|---|---|
| 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
Please provide the Markdown content to translate.```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
Ou a partir de um clone:```bash
git clone https://github.com/DotNetRussell/BloodBash.git
cd BloodBash
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
Dependências: networkx, rich, tqdm, pyyaml.
Comece com estes 3 (aponte para um diretório SharpHound/AzureHound ou .zip):```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
A partir de um checkout do código-fonte, `python3 BloodBash.py` é equivalente a `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
Diretório simples (sem flags de verificação) executa triagem quick-wins. Use --all para análise completa de caminhos de ataque (não inventário), ou --wizard para um seletor interativo.
Em --all e --quick-wins, seções de detecção vazias são suprimidas para que o console permaneça legível. Flags seletivas ainda imprimem linhas verdes de "nada encontrado" para as verificações solicitadas.
Dados de exemplo: SampleSharphoundADData/ e SampleAzurehoundData/.```bash
bloodbash --help # start-here + cheat sheet
bloodbash --help-advanced # full flag tables + all examples
Mais receitas: [docs/cookbook.md](https://github.com/squidsec/bloodbash/blob/HEAD/docs/cookbook.md).
## O que ele encontra
| Área | Verificações |
|------|--------|
| **Privilégio de AD** | DCSync (GetChanges+GetChangesAll; DA/EA aninhados tratados como esperado), ACLs perigosas em objetos de alto valor, **interessante abuso de ACL não-HV** (ForceChangePassword / GenericAll / GenericWrite em usuários/computadores/grupos; ruído de GenericWrite em massa de computadores suprimido), abuso de GPO, RBCD (configurado + *pode configurar*), delegação restrita/não restrita (seções **DC vs não-DC**), histórico de SID, **confianças de domínio** (`--trust`) |
| **Credenciais de AD** | Kerberoastable, AS-REP roastable (com tags **AdminCount / OWNED / LASTLOG**), **roast privilegiado** (`--privileged-roast`: roastable + DA/EA aninhados / AdminCount), credenciais shadow, senha na descrição, PasswordNeverExpires / PasswordNotRequired. O `sensitive` do SharpHound (NOT_DELEGATED) **não** exclui candidatos a roast |
| **ADCS** | ESC1-ESC7 (+ ESC8/ESC9/ESC13 quando as propriedades do coletor existem). ESC10-12 precisam de dados de função de registro/HTTP frequentemente ausentes do SharpHound. Mensagem discreta quando o zip não tem objetos de certificado |
| **Azure / Entra** | Funções privilegiadas, caminhos de *controle* de credenciais de app/SP, desativação explícita de MFA, usuários convidados, direitos de abuso de SP |
| **Caminhos** | Caminhos mais curtos para alvos de alto valor (conjunto limitado em `--fast`; HV inclui Builtin Administrators e **computadores controladores de domínio**), principais marcados como owned (`--owned` = entrada), personalizado `--path-from` / `--path-to` |
| **Dossiê de comprometimento** | `--from-user` / `--compromise`: associação de saída, contagens de AdminTo/RDP/ACL, grupos aninhados, caminhos automáticos para HV, exportação txt/csv incluindo **listas de hosts AdminTo em massa** |
| **Remediação de caminhos** | Classificação de caminhos mais movimentados (`--busiest-paths`), recomendações de remoção de arestas (`--path-break`) |
| **Inventário** | Escadas de idade de senha, contas obsoletas/inativas, grupos de privilégio, estruturais (domínios/DCs/confianças), inventário de objetos marcados como owned, **painel de estatísticas com %** |
| **Pacote CSV estilo PlumHound** | `--csv-pack DIR`: inventário multi-CSV (domínios, DA, roastables, LAPS, arestas Everyone/sobreprivilégio, computador AdminTo computador, privilégio duplo + admin local, hosts AdminTo em massa) + `index.csv` |
| **Multi-entrada** | `--merge PATH…` une diretórios/zips adicionais em um único grafo (coleções multi-domínio / dupla de baixo privilégio+DA) |
| **Outros** | banner **saúde da coleta** (contagens de objetos, cobertura de sessão/AdminTo/RDP, presença de ADCS), cobertura de LAPS (`haslaps`) + **leitores de senha LAPS** (`ReadLAPSPassword`), XML de GPO (`--gpo-content-dir`), arestas `Trusts[]` de domínio, aninhamento de grupos, `--list-domains` |
Os resultados são pontuados e resumidos em uma tabela **Prioritized Findings** (categorias de higiene de alto volume são recolhidas; use `--all-findings` para a lista completa recolhida). Os painéis de abuso sugerem ferramentas/comandos por categoria.
Este é um **analisador heurístico offline** da SquidSec, não um substituto completo do BloodHound CE. Prefira validar com o BloodHound CE no mesmo zip para paridade de caminhos.
---
## Exemplos de comandos
Substitua `./sharpout` pelo seu diretório ou zip do SharpHound/AzureHound. Checkout do código-fonte: use `python3 BloodBash.py` em vez de `bloodbash`.
### Noções básicas```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 executaConjunto selecionado de alto sinal (implica --fast, resumo detalhado, tabela completa de descobertas). Não é um inventário completo/dump do Azure. Seções vazias permanecem silenciosas.
| Area | Modules |
|---|---|
| Privilégio | DCSync (inesperado), ADCS, ACLs perigosas + ACLs não-HV interessantes, RBCD + can-configure, unconstrained (DC vs non-DC), constrained, shadow creds, LAPS (+ leitores), trusts |
Perfil equivalente: --profile quick-wins (veja profiles/quick-wins.yaml).
Visão de saída: "Acabei de comprometer este principal - o que ele pode fazer?"
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
**Layout de exportação** (por 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]'
### Verificações seletivas de AD```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
### Conteúdo do pacote CSV estilo PlumHound
`--csv-pack DIR` escreve um CSV por tarefa de inventário, mais `index.csv` / `README.txt` (sem Neo4j):
| CSV | Descrição |
|-----|-------------|
| `domains.csv` | Domínios AD na coleção |
| `domain_admins.csv` | Principals aninhados em grupos estilo DA/EA |
| `users.csv` / `computers.csv` / `groups.csv` | Inventário de objetos principais |
| `kerberoastable.csv` / `asrep_roastable.csv` | Candidatos a credential roast (+ tags) |
| `password_never_expires.csv` | Usuários PNE |
| `laps_not_enabled.csv` | Computadores sem LAPS |
| `local_admins_users.csv` | Usuário/grupo → computador AdminTo/LocalAdmin |
| `user_sessions.csv` | HasSession computador ↔ usuário |
| `relationships_everyone.csv` (e Auth Users, Domain Users, …) | Arestas de principals excessivamente amplos |
| `overprivileged_relationships.csv` | Arestas combinadas de Everyone/Auth/Domain Users/… |
| `computer_adminto_computer.csv` | Máquina → máquina AdminTo |
| `dual_privileged_and_local_admin.csv` | Membros DA/EA que também possuem AdminTo (tiering) |
| `bulk_adminto_hosts.csv` | Principals ranqueados por contagem de hosts AdminTo |
| `index.csv` | Índice do relatório (arquivo → contagem de linhas) |
### 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
---
## Referência de flags
### Pacotes de relatórios, perfis, dossiê, entregáveis (v1.4+)
| Flag | Objetivo |
|------|---------|
| `--from-user` / `--compromise USER` | **Dossiê de comprometimento** (saída): grupos aninhados, contagens de AdminTo/RDP/ACL, caminhos para alvos de alto valor |
| `--from-user-export [DIR]` | Exporta o dossiê em txt/csv/json + listas **adminto_hosts** (padrão `compromise-<user>/`) |
| `--busiest-paths [short\|all]` | Classifica as entidades de segurança com mais caminhos para alvos de alto valor |
| `--path-break` | Recomenda quais relações remover para quebrar o maior número de caminhos de ataque |
| `--inventory` | Inventários estrutural + idade de senha + contas obsoletas + privilégios |
| `--password-age` / `--stale-accounts` / `--privilege-inventory` | Módulos de inventário individuais |
| `--owned-inventory` | Inventário de AdminTo / MemberOf para as entidades de segurança de `--owned` / `--owned-file` |
| `--owned-file FILE` | Entidades de segurança comprometidas delimitadas por linha (mescla com `--owned`) |
| `--from-user-file FILE` | Pontos de apoio (footholds) delimitados por linha para dossiês de comprometimento (mescla com `--from-user`) |
| `--report-pack DIR` | Suíte HTML de várias páginas + `index.html` + CSVs por seção |
| `--csv-pack DIR` | **Pacote multi-CSV estilo PlumHound** (inventário + overpriv + relatórios AdminTo + `index.csv`) |
| `--export-zip [FILE]` | Compacta em ZIP um diretório de `--report-pack` ou `--csv-pack` como um único entregável |
| `--profile FILE\|name` | Perfil de análise YAML (`quick`, `quick-wins`, `adcs-heavy`, `hygiene` ou caminho) |
| `--log-file [FILE]` | Log de execução que permite anexar (padrão `bloodbash.log`) |
| `--all-findings` | Ao final da execução: imprime uma tabela de **todas** as descobertas (mesmo que vazias) |
### Outras flags úteis
| Flag | Objetivo |
|------|---------|
| `--all` | Executa todos os módulos de análise (seções de AD vazias são suprimidas) |
| `--quick-wins` | **Triagem day-0 de alto sinal** (também é o **padrão** sem flags de verificação; implica `--fast`) |
| `--merge PATH…` | Diretórios ou zips extras do SharpHound/AzureHound para unificar em um único grafo |
| `--trust` | Verificações de confiança de domínio / abuso de filtragem de SID |
| `--wizard` | Seletor interativo de modo (quick-wins / full / dossier / profile) |
| `--help-advanced` | Tabelas completas de flags + todos os exemplos (o `--help` resumido é apenas para começar) |
| `--fast` | Limita o pathfinding a alvos de topo do tipo DA/EA (não é uma omissão completa). Ativa automaticamente para grafos grandes com `--all` |
| `--domain X` | Filtra para um domínio AD ou `tenantId` do Azure (sem diferenciar maiúsculas/minúsculas) |
| `--list-domains` | Lista domínios AD / tenants do Azure na coleta e encerra |
| `--owned a,b` | Caminhos **para** entidades de segurança comprometidas (entrada) |
| `--owned-file FILE` | Igual a `--owned`, a partir de um arquivo delimitado por linha (comentários com `#` são permitidos) |
| `--from-user-file FILE` | Igual a `--from-user`, a partir de um arquivo delimitado por linha |
| `--path-from` / `--path-to` | Caminhos mais curtos arbitrários |
| `--inspect NODE` | Despeja propriedades + arestas de um nó |
| `--indirect` | Inclui caminhos/direitos mediados por grupos |
| `--deep-analysis` | Aninhamento de grupos lento + detecção de ciclos |
| `--privileged-roast` | Usuários Kerberoast/AS-REP aninhados em grupos DA/EA/outros grupos privilegiados (ou AdminCount) |
| `--gpo-content-dir DIR` | Analisa XMLs de GPO (tarefas, scripts, cPassword) |
| `--export {md,json,html,csv,yaml}` | Gera um relatório (alvos de alto valor + descobertas priorizadas) |
| `--export-bh` | JSON de grafo estilo BloodHound |
| `--dot [FILE]` | Exportação Graphviz DOT |
| `--db FILE` | Caminho do SQLite do grafo (padrão: cache automático por impressão digital da coleta em `~/.cache/bloodbash/`) |
| `--cache-dir DIR` | Substitui o diretório automático de cache do grafo |
| `--no-cache` | Sempre reingere; não lê/grava o cache do grafo |
| `--rebuild-cache` | Força a reingestão e atualiza o cache do grafo |
| `--debug` | Log detalhado de análise/construção |
Também incluídos em `--all` / flags seletivas: banner de saúde da coleta; abuso de ACL interessante em objetos não-HV; tags de contexto de privilégio em descobertas de roast; divisão inesperada de DCSync; DC com delegação irrestrita vs não-DC; leitores de LAPS; pode configurar RBCD; percentuais do painel de estatísticas; seções vazias silenciadas em execuções amplas.
Opções exclusivas do Azure: `--azure-privileged-roles`, `--azure-app-secrets`, `--azure-mfa-bypass`, `--azure-guest-access`, `--azure-sp-abuse`.
Execute `bloodbash --help` para o guia inicial + folha de consulta rápida, ou `--help-advanced` para tabelas completas de flags e exemplos.
## Notas sobre o SharpHound CE
A ingestão entende a saída moderna do coletor: `Members` de grupos, `AllowedToAct` (RBCD), Sessions / LocalGroups, `Trusts[]` de domínio, histórico de SID, aliases de nomes de propriedades do CE e extração segura de zip (Zip Slip bloqueado). DCSync exige **GetChanges + GetChangesAll**. Os rótulos de ADCS seguem a nomenclatura ESC1-ESC8 da SpecterOps (+ candidatos a ESC9/ESC13 quando as flags existem). Objetos de computador controladores de domínio permanecem como alvos de alto valor. Flags `highvalue` de estações de trabalho em grupos de administradores locais não inundam o conjunto de HV.
## Módulo Metasploit
Encapsula a CLI BloodBash da SquidSec (v1.4+) e registra as descobertas no banco de dados do Metasploit.
As opções acompanham a CLI: verificações de AD/Azure, inventário, busiest-paths / path-break,
dossiês de comprometimento `--from-user`, perfis, pacotes de relatórios, exportações e cache do grafo (`--db` / cache automático).```bash
cp modules/auxiliary/analyzer/bloodbash_analyzer.rb \
/opt/metasploit-framework/modules/auxiliary/analyzer/
# then in msfconsole: reload_all
I notice that the input provided contains only the translation instructions and no actual content to translate. The "INPUT:" section is empty.
Could you please provide the chunk of content you'd like me to translate from English to Portuguese?```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
Nenhum conteúdo foi fornecido para tradução.```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
Defina PYTHON se python3 não estiver no PATH. Aponte BLOODBASH_PATH para um
binário independente (não .py) para ignorar o interpretador Python. A filtragem de domínio não diferencia maiúsculas de minúsculas
(corresponde à 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
### Corpus Sintético do SharpHound (regressão de alta entropia)
Os dumps de amostras públicas são pequenos e de baixa entropia. Para a regressão de detectores, disponibilizamos um **laboratório sintético SharpHound CE** (`testData/synthetic-corp-lab/`) com ground truth conhecido (DCSync inesperado, escrita de GPO por Auth Users, can-configure RBCD em massa, ESC1, roast, mix de LAPS, etc.). Nenhum dado real de engajamento.```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) executa testes de unidade/integração e run_scenario_battery.py --count 20 --seed 42
(20 cadeias de engajamento). A proteção de branch exige a verificação de status test.
Auxiliares de precisão (sem dados de clientes):```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
### Compilação binária local```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 (a cada push para main) executa testes, compila binários de arquivo único para Linux + Windows com PyInstaller e publica uma Release com nomes de assets estáveis para os links /releases/latest/download/... acima. As tags têm o formato v1.4.1-build.N.
MIT - apenas para testes de segurança autorizados e red team.
BloodBash é um projeto de código aberto criado e gerenciado por SquidSec.
| Organização | SquidSec |
| Site | https://squidoffense.com/ |
| Versão do aplicativo | v1.4.2 |
| Binário mais recente | |
| Licença | MIT |
| Runtime (código-fonte) | Python 3.9+ |
| Credenciais | Kerberoast, AS-REP, privileged roast, password-in-description, PasswordNotRequired |
| Operações | Sessões / resumo de administrador local, saúde da coleta |
| Caminhos | Caminhos mais curtos para HV, caminhos curtos mais movimentados, path-break |
| Flag | Significado |
|---|
--from-user / --compromise | Construir dossiê (grupos aninhados, direitos, caminhos HV) |
--from-user-export [DIR] | Escrever listas txt/csv/json (padrão compromise-<user>/) |
--owned / --owned-file | Diferente: caminhos para esse principal (de entrada); o arquivo é delimitado por linhas |