Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 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
31225602 mesi 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
<p align="center">
  <img width="350" height="350" alt="Logo di TaskHound" src="https://assets.kitploit.com/production/public/readmes/9903/f048c922e3b550dd3bc0880bd2e9ba4bebdfdb710812a9a7eec7249bce3e112e.png" />
</p>

<p align="center">
  <strong>Strumento per la scoperta di attività pianificate privilegiate su Windows</strong> per divertimento e profitto.
</p>

<p align="center">
  <a href="https://github.com/1r0BIT/TaskHound/releases">
    <img src="https://img.shields.io/github/v/release/1r0BIT/TaskHound?style=flat-square&amp;logo=github&amp;color=blue" alt="Ultima release">
  </a>
  <a href="https://bloodhound.specterops.io/">
    <img src="https://img.shields.io/badge/BloodHound-OpenGraph-red.svg?style=flat-square&amp;logo=neo4j" alt="BloodHound OpenGraph">
  </a>
  <a href="https://www.python.org/">
    <img src="https://img.shields.io/badge/python-3.11+-blue.svg?style=flat-square&amp;logo=python&amp;logoColor=white" alt="Python 3.11+">
  </a>
  <br>
  <a href="https://deepwiki.com/1r0BIT/TaskHound">
    <img src="https://deepwiki.com/badge.svg" alt="Chiedi a DeepWiki">
  </a>
  <a href="https://twitter.com/0xr0BIT">
    <img src="https://img.shields.io/badge/Twitter-@0xr0BIT-1DA1F2?style=flat-square&amp;logo=twitter&amp;logoColor=white" alt="Twitter">
  </a>
  <a href="https://r0bit.io">
    <img src="https://img.shields.io/badge/Blog-r0bit.io-orange?style=flat-square&amp;logo=rss&amp;logoColor=white" alt="Blog">
  </a>
</p>
<hr />

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](https://r0bit.io/posts/taskhound/part1/index.html) e [Parte 2](https://r0bit.io/posts/taskhound/part2/index.html).

## Caratteristiche principali

| Funzionalità | Descrizione |
|---------|-------------|
| **Rilevamento Tier 0 & Alto Valore** | Identifica automaticamente le attività eseguite come Amministratori di Dominio, Amministratori Enterprise e altri account privilegiati |
| **Integrazione BloodHound** | Connettiti a istanze BHCE/Legacy live o importa esportazioni per il rilevamento di utenti ad alto valore |
| **Supporto OpenGraph** | Visualizza le attività pianificate come nodi di percorso di attacco in BloodHound CE |
| **Integrazione LAPS** | Recupera e utilizza automaticamente le password LAPS (sia Windows LAPS che Legacy) per l'autenticazione per host |
| **Estrazione credenziali DPAPI** | Raccogli e decifra i blob DPAPI contenenti credenziali di attività memorizzate |
| **Scansione multi-thread** | Elaborazione parallela dei target con limitazione della velocità per ambienti di grandi dimensioni |
| **Rilevamento Tier-0 basato su LDAP** | Rileva account privilegiati tramite appartenenza a gruppi senza BloodHound |
| **Validazione credenziali** | Verifica se le password delle attività memorizzate sono ancora valide tramite RPC |
| **Analisi offline** | Elabora immagini disco montate o file XML precedentemente raccolti |
| **Formati di output multipli** | Report di sicurezza in testo semplice, JSON, CSV e HTML con punteggio di gravità |
| **Risoluzione SID** | Risoluzione multi-livello tramite BloodHound → Cache → LSARPC → LDAP → GC |
| **Caching** | Cache persistente basata su SQLite per le ricerche SID e le credenziali LAPS |

## 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
```
> **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](https://github.com/Adaptix-Framework/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

                     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                         │
╰──────────────────────────────────────────────────────────────────────────────╯
```
---

## 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

| Fonte | Metodo di Rilevamento |
|--------|------------------|
| **BHCE** | `isTierZero`, tag di sistema (`admin_tier_0`), AdminSDHolder |
| **Legacy** | AdminSDHolder (`admincount=1`), rilevamento basato su SID |
| **LDAP** | Query di appartenenza ai gruppi (`--ldap-tier0`) |
| **Built-in** | SID di Tier 0 noti (Domain Admins, Enterprise Admins, ecc.) |

### 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;
```
**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

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/9903/43ec2d44fef6e06a4aee6b0cad113991182e24d877f0d9099cd6b479554b3362.jpg" alt="Percorso di attacco OpenGraph" />
</p>

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
```
> **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:**
| Tipo | Attributo | Crittografato |
|------|-----------|---------------|
| Windows LAPS | `msLAPS-Password` | No |
| Windows LAPS | `msLAPS-EncryptedPassword` | Sì (MS-GKDI) |
| Legacy LAPS | `ms-Mcs-AdmPwd` | No |

---

## 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
```
> **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:

| Status | Meaning |
|--------|---------|
| `CONFIRMED_VALID` | Password invariata dalla creazione dell'attività E attività eseguita entro la pianificazione prevista - credenziali confermate funzionanti |
| `HIGH_CONFIDENCE_VALID` | Password invariata dalla creazione dell'attività, ma tempistica del trigger sconosciuta (es. trigger di avvio) - credenziali probabilmente valide |
| `LIKELY_VALID` | Password cambiata ma attività eseguita entro la pianificazione (credenziali aggiornate), OPPURE attività eseguita con successo (modalità solo RPC) |
| `POSSIBLY_STALE` | L'attività avrebbe dovuto essere eseguita ma non lo è stata - potrebbe indicare credenziali obsolete |
| `DEFINITELY_STALE` | Password cambiata dopo l'ultima esecuzione riuscita - credenziali decisamente errate |
| `NEVER_RAN_LIKELY_VALID` | L'attività non è mai stata eseguita, ma password invariata dalla creazione - probabilmente valida (potrebbe mancare diritti di accesso batch) |
| `NEVER_RAN_POSSIBLY_STALE` | L'attività non è mai stata eseguita e password cambiata dopo la creazione - probabilmente obsoleta |
| `NEVER_RAN_UNKNOWN` | L'attività non è mai stata eseguita, nessun contesto AD - era valida alla creazione, stato attuale sconosciuto |
| `UNKNOWN` | Impossibile determinare (account bloccato, ecc.) |

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

| Format | Flag | Description | Use Case |
|--------|------|-------------|----------|
| **Plain** | `-o plain` | Output console leggibile dall'uomo (predefinito) | Uso interattivo, revisione rapida |
| **JSON** | `-o json` | Esportazione strutturata leggibile dalla macchina | Automazione, analisi dati, scripting |
| **CSV** | `-o csv` | Esportazione compatibile con fogli di calcolo | Reportistica, filtraggio, analisi Excel |
| **HTML** | `-o html` | Report di sicurezza con punteggio di gravità | Audit del blue team, report per stakeholder |

### 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
```
### 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...
```
---

## 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:

| Filtro | Predefinito | Override |
|--------|-------------|----------|
| Account disabilitati | Esclusi | `--include-disabled` |
| Computer obsoleti (>60 giorni) | Esclusi | `--stale-threshold 0` (disabilita) |
| Controller di dominio | Esclusi | `--include-dcs` |

**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
```
---

## 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

| Protocollo | Operazioni | Flag per disabilitare |
|----------|------------|-----------------|
| SMB | Enumerazione 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` |

### 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)
```
### 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
```
<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)
```

---

[Read more](https://github.com/1r0bit/taskhound)
Scarica lo strumento