Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
TaskHound — Werkzeug zur Aufzählung privilegierter geplanter Aufgaben auf entfernten Systemen | Kitploit
Tools/GitHubGitHub/1r0bit/taskhound
Privilege EscalationAufklärungLaterale BewegungInformationsbeschaffungPost-ExploitationPenetrationstestsRed Teaming
GitHub1r0bit/taskhound

TaskHound

Werkzeug zur Aufzählung privilegierter geplanter Aufgaben auf entfernten Systemen

Repository anzeigen
312254vor 5 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

TaskHound-Logo

Windows Tool zur Erkennung privilegierter geplanter Aufgaben für Spaß und Profit.

Letzte Version BloodHound OpenGraph Python 3.11+
Fragen Sie DeepWiki Twitter Blog


TaskHound jagt nach Windows-geplanten Aufgaben, die mit privilegierten Konten und gespeicherten Anmeldeinformationen ausgeführt werden. Es listet Aufgaben über SMB auf, analysiert XMLs und identifiziert hochwertige Angriffsmöglichkeiten durch BloodHound-Integration.

Hintergrundgeschichte und ausführliche Erklärungen finden Sie in den zugehörigen Blogbeiträgen – Teil 1 und Teil 2.

Hauptmerkmale

Schnellstart```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:~
> **Auth-Unterstützung**: TaskHound unterstützt die meisten gängigen Authentifizierungsmechanismen, darunter Passwort, NTLM-Hash, Kerberos (auch mit ccache) und AES-Key-Authentifizierung.

## Konfigurationsdatei

TaskHound unterstützt TOML-Konfigurationsdateien für dauerhafte Einstellungen. Erstellen Sie `taskhound.toml` in Ihrem Arbeitsverzeichnis oder 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ät: CLI args > Umgebungsvariablen > Lokale Konfiguration > Benutzerkonfiguration > Standardwerte

AdaptixC2 Integration

TaskHound's BOF ist im Adaptix Extension-Kit unter SAR-BOF/taskhound/ enthalten.

Demo-Ausgabe```

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

## BloodHound-Integration

TaskHound unterstützt sowohl **Legacy BloodHound** (Neo4j) als auch **BloodHound Community Edition (BHCE)** mit automatischer Format-Erkennung.

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

Tier 0 Erkennungsmethoden

Offline-Dateneingabe

Falls eine Live-Verbindung nicht möglich ist, exportieren Sie hochwertige Benutzer mit diesen Cypher-Abfragen:

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:~
**Veraltet:**```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

Dann verwenden Sie: taskhound --bh-data exported_users.json ...


OpenGraph-Angriffspfad-Visualisierung

OpenGraph-Angriffspfad

TaskHound erstellt benutzerdefinierte Knoten und Kanten in BloodHound CE, um geplante Aufgaben-Angriffspfade zu visualisieren.

Was Sie erhalten:

  • Benutzerdefinierte Knoten: ScheduledTask mit 20+ Eigenschaften (Anmeldeinformationen, Trigger, Passwortanalyse, Validierungsstatus)
  • Benutzerdefinierte Kanten: HasTask, HasTaskWithStoredCreds, RunsAs
  • Angriffspfade: `(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:~
> **Hinweis**: OpenGraph ist BHCE-only. Legacy BloodHound unterstützt keine benutzerdefinierten Knotentypen.

---

## LAPS-Integration

TaskHound kann LAPS-Passwörter automatisch abrufen und für die Authentifizierung pro Host verwenden. Unterstützt sowohl Windows LAPS (`msLAPS-Password`) als auch Legacy LAPS (`ms-Mcs-AdmPwd`), einschließlich verschlüsselter Passwörter über 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

Unterstützte LAPS-Typen:

TypAttributVerschlüsselt
Windows LAPSmsLAPS-PasswordNein

DPAPI Anmeldeinformationen extrahieren

TaskHound extrahiert und entschlüsselt gespeicherte Aufgabenanmeldeinformationen mithilfe von DPAPI. DPAPI-Plünderung ist standardmäßig aktiviert.```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:~
> **Wichtig**: Jeder Host hat einen eindeutigen DPAPI_SYSTEM-Schlüssel. Bei Multi-Target-Scans sammeln (Standard) und dann jedes Ziel offline entschlüsseln.

---

## Validierung von Anmeldedaten

TaskHound bewertet, ob gespeicherte Aufgabenkennwörter wahrscheinlich noch gültig sind, indem es die Aufgabenausführungshistorie über RPC abfragt und Heuristiken anwendet. Dies ist **standardmäßig aktiviert**.```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

So funktioniert es

Die Windows Taskplanung zeichnet nur erfolgreiche Aufgabenausführungen auf. Fehlgeschlagene Authentifizierungen (falsches Passwort, gesperrtes Konto usw.) werden stillschweigend ignoriert. Die Aufgabe wird einfach nicht ausgeführt.

Wichtige Erkenntnis: Windows validiert Anmeldeinformationen zum Zeitpunkt der Aufgabenerstellung. Wenn Sie versuchen, eine Aufgabe mit einem falschen Passwort zu erstellen, erhalten Sie ERROR_LOGON_FAILURE und die Aufgabe wird nicht erstellt. Das bedeutet: Wenn eine Aufgabe mit gespeicherten Anmeldeinformationen vorhanden ist, war das Passwort zum Zeitpunkt der Aufgabenerstellung gültig.

TaskHound verwendet Heuristiken, um die Gültigkeit von Anmeldeinformationen einzuschätzen:

Der entscheidende Einblick: Der Vergleich von pwdLastSet aus AD mit LastRunTime aus der Taskplanung zeigt uns, ob das Passwort nach der letzten erfolgreichen Ausführung geändert wurde. Bei Aufgaben, die nie ausgeführt wurden, zeigt der Vergleich von pwdLastSet mit task_creation_date, ob das Passwort nach der Erstellung der Aufgabe mit gültigen Anmeldeinformationen geändert wurde.

Ohne AD-Daten (z. B. --no-ldap und kein BloodHound): TaskHound fällt in den reinen RPC-Modus zurück und verwendet nur den Rückgabecode und die letzte Ausführungszeit. Eine erfolgreiche Ausführung gibt LIKELY_VALID zurück; die zeitplanbasierte Erkennung veralteter Anmeldeinformationen wird weiterhin angewendet, wenn das Trigger-Intervall aus dem Aufgaben-XML bekannt ist.

Hinweis: Deaktiviert bei Verwendung von --opsec oder --no-rpc.


Ausgabeformate

TaskHound unterstützt mehrere Ausgabeformate für verschiedene Anwendungsfälle. Alle Ausgaben verwenden ein strukturiertes Verzeichnislayout unter --output-dir (Standard: ./output).

Verfügbare Formate

Anwendungsbeispiele```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:~
### Verzeichnisstruktur```
./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

HTML-Sicherheitsberichte

Die HTML-Ausgabe erzeugt einen umfassenden Sicherheitsbericht, der für Bewertungen durch Blue Teams konzipiert ist:

  • Schweregradbewertung: Aufgaben, die nach Risikostufe bewertet werden, basierend auf Berechtigungen, gespeicherten Anmeldeinformationen und Konfiguration
  • Aufgabendetails: Vollständige Metadaten einschließlich Trigger, Aktionen, Ausführungskonten und Validierungsstatus
  • Filterung: Clientseitige Filterung nach Host, Schweregrad und Anmeldeinformationsstatus
  • Exportbereit: Geeignet für Managementberichte und Auditdokumentation

Sicherungssammlung

Standardmäßig speichert TaskHound rohe XML-Aufgabendateien und DPAPI-Anmeldeinformationsblobs für die Offline-Analyse:```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:~
---

## Multithread-Scanning

Für große Umgebungen verwenden Sie paralleles Scannen mit Ratenbegrenzung:```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

Automatische Zielfilterung

Standardmäßig wendet --auto-targets eine intelligente Filterung an, um Rauschen und fehlgeschlagene Verbindungen zu reduzieren:

FilterStandardÜberschreibung
Deaktivierte Konten

Datenquellen-Priorität: BloodHound (falls konfiguriert) → LDAP Fallback

Bei Verwendung von BloodHound fragt TaskHound mit include_properties=true für eine effiziente Einzelabfrage-Aufzählung ab. Wenn BloodHound-Daten älter als 7 Tage sind, wird eine Warnung angezeigt; über 30 Tage wird eine dringende Warnung ausgelöst.

Filtervoreinstellungen:

  • servers - Nur Windows Server-Betriebssysteme
  • workstations - Nur Nicht-Server-Betriebssysteme
  • (raw LDAP) - Benutzerdefinierter LDAP-Filter (erfordert LDAP-Quelle)

SID-Auflösung

TaskHound löst SIDs mithilfe einer mehrstufigen Fallback-Kette in lesbare Namen auf:

  1. BloodHound (falls verbunden) - schnellste, kein Netzwerkverkehr
  2. Cache - SQLite persistenter Cache (Standard 24h TTL)
  3. LSARPC - direkte Zielabfrage (am genauesten für lokale Konten)
  4. LDAP - Domänencontroller-Abfrage
  5. Globaler Katalog - für domänen-/waldübergreifende SIDs```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:~
## Offline-Analyse

Analysieren Sie Aufgaben ohne Netzwerkzugriff:```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

OPSEC-Überlegungen

TaskHound bietet eine granulare Kontrolle über Netzwerkoperationen, um Stealth vs. Funktionalität auszugleichen.

Auswirkungen auf Protokolle

SID-Auflösungskette```

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

root@kitploit:~
### Standardverhalten

TaskHound ist **standardmäßig sehr laut** – alle Funktionen sind für maximale Sichtbarkeit aktiviert. Dies macht es ideal für Audits und umfassende Bewertungen, bei denen OPSEC keine Rolle spielt:

- **Credential Guard-Erkennung** – Standardmäßig aktiviert (deaktivieren mit `--no-credguard`)
- **Anmeldeinformationsvalidierung** – Standardmäßig aktiviert (deaktivieren mit `--no-validate-creds`)
- **DPAPI-Plünderung** – Standardmäßig aktiviert (deaktivieren mit `--no-loot`)
- **LDAP-Auflösung** – Standardmäßig aktiviert (deaktivieren mit `--no-ldap`)
- **RPC-Operationen** – Standardmäßig aktiviert (deaktivieren mit `--no-rpc`)

> [!WARNING]
> **Credential Guard-Überprüfungen sind HOCHGRADIG erkennbar.** Da der Remoteregistrierungsdienst auf modernen Windows-Systemen standardmäßig gestoppt ist, startet TaskHound den Dienst **remote** über SCM, führt die Prüfungen durch und stoppt ihn dann (genau wie secretsdump). Dadurch leuchtet jedes halbwegs gute SOC wie ein Weihnachtsbaum. **Verwenden Sie unbedingt `--no-credguard`, wenn Sie dies in Engagements vermeiden möchten!**

Apropos Engagements: Verwenden Sie für Red Team/Stealth-Operationen `--opsec`, um alle lauten Funktionen auf einmal zu deaktivieren. (Oder verwenden Sie den BOF).

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

Best Practices für Stealth

  1. BloodHound-Daten vorab laden - Domaindaten zuerst mit --bh-live importieren
  2. --opsec Flag verwenden - Deaktiviert alle lauten Operationen auf einmal
  3. --jitter für Timing-Randomisierung hinzufügen - Vermeidet vorhersehbare Scanmuster
  4. XMLs auf anderem Weg sammeln - Offline mit --offline analysieren
  5. BOF-Implementierung verwenden - Verfügbar in AdaptixC2

Vollständige CLI-Referenz

TaskHound verwendet Rich für formatierte Konsolenausgabe mit farbigen Tabellen und Fortschrittsanzeigen.``` taskhound --help

root@kitploit:~
<details>
<summary>Klicken Sie, um die vollständige Nutzung anzuzeigen</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

Fahrplan

Wenn Koffeinkonsum und Freizeit zusammenkommen:

Kürzlich abgeschlossen

  • API-Key-Authentifizierung - HMAC-SHA256-signierte Anfragen
  • LAPS-Unterstützung - Windows LAPS + Legacy + verschlüsselt über MS-GKDI
  • Multithread-Verarbeitung - Paralleles Scannen mit Ratenbegrenzung
  • Anmeldedatenvalidierung - RPC-basierte Passwortgültigkeitsprüfung
  • Mehrere Ausgabeformate - Klartext, JSON, CSV, HTML mit strukturiertem Verzeichnislayout
  • Automatische Zielerkennung - LDAP-basierte Computeraufzählung
  • Offline-Datenträgermodus - Analyse eingehängter Datenträgerabbilder
  • Permanentes Caching - SQLite-Cache für SID/LAPS-Daten
  • Umfangreiche Konsolenausgabe - Farbige Tabellen und Fortschrittsanzeigen
  • Domänenübergreifende Unterstützung - Multi-Domänenumgebungen mit Vertrauensstellungen

Geplant

  • Modularisierung der Phasen: Das ist zu einem Ungetüm mit viel zu vielen Schaltern geworden. Das werde ich beheben.
  • Missbrauchsinfo-Integration: MITRE ATT&CK-Techniken in BloodHound-Knoten
  • Benutzerdefinierte Tier-0-Zuordnungen: Unterstützung für benutzerdefinierte Privilegienzonen in BHCE
  • Linux-Prüfungen: Unterstützung zum Scannen von *nix-basierten Betriebssystemen

Danksagungen

  • Fortra/Impacket - SMB/RPC/Kerberos, DPAPI-NG, MS-GKDI
  • SpecterOps/BloodHound - Angriffspfadanalyse
  • Podalirius/bh-opengraph - OpenGraph-Inspiration
  • Pennyw0rth/NetExec - LAPS-Implementierungsreferenz
  • jborean93/dpapi-ng - DPAPI-NG-Forschung
  • tijldeneut/DPAPIck3 - DPAPI-Entschlüsselungsreferenz
  • gentilkiwi/mimikatz - DPAPI-Forschung

Und allen, die dazu beigetragen haben, offensive Sicherheitstools zugänglich zu machen.


Haftungsausschluss

TaskHound ist streng ein Audit- und Bildungs-Tool. Verwenden Sie es nur in Umgebungen, die Ihnen gehören oder für die Sie ausdrückliche Testgenehmigung haben. Ernsthaft. Seien Sie kein Idiot.

Mitwirken

PRs willkommen. Die Hälfte davon war koffeininduziertes Vibe-Coding, also erwarten Sie keine Wunder.

Lizenz

Verantwortungsvoll nutzen. Keine Gewährleistung. Siehe LICENSE für Details.

Tool herunterladen
FunktionBeschreibung
Erkennung von Tier 0 und hochwertigen KontenErmittelt automatisch Aufgaben, die als Domänen-Admins, Unternehmens-Admins und andere privilegierte Konten ausgeführt werden
BloodHound-IntegrationVerbinden Sie sich mit live BHCE/Legacy-Instanzen oder importieren Sie Exporte zur Erkennung hochwertiger Benutzer
OpenGraph-UnterstützungVisualisieren Sie geplante Aufgaben als Angriffspfadknoten in BloodHound CE
LAPS-IntegrationAutomatisches Abrufen und Verwenden von LAPS-Passwörtern (sowohl Windows LAPS als auch Legacy) für die Authentifizierung pro Host
DPAPI-Anmeldeinformations-ExtraktionSammeln und entschlüsseln Sie DPAPI-Blobs, die gespeicherte Aufgabenanmeldeinformationen enthalten
Multithread-ScanningParallele Zielverarbeitung mit Ratenbegrenzung für große Umgebungen
LDAP-basierte Tier-0-ErkennungErkennen Sie privilegierte Konten über Gruppenmitgliedschaft ohne BloodHound
AnmeldeinformationsvalidierungÜberprüfen Sie, ob gespeicherte Aufgabenpasswörter über RPC noch gültig sind
Offline-AnalyseVerarbeiten Sie gemountete Datenträgerimages oder zuvor gesammelte XMLs
Mehrere AusgabeformateKlartext-, JSON-, CSV- und HTML-Sicherheitsberichte mit Schweregradbewertung
SID-AuflösungMehrstufige Auflösung über BloodHound → Cache → LSARPC → LDAP → GC
ZwischenspeicherungSQLite-basierter persistenter Cache für SID-Suchvorgänge und LAPS-Anmeldeinformationen
QuelleErkennungsmethode
BHCEisTierZero, System-Tags (admin_tier_0), AdminSDHolder
LegacyAdminSDHolder (admincount=1), SID-basierte Erkennung
LDAPGruppenmitgliedschaftsabfragen (--ldap-tier0)
EingebautBekannte Tier 0 SIDs (Domänen-Admins, Enterprise-Admins, usw.)
Windows LAPS
msLAPS-EncryptedPassword
Ja (MS-GKDI)
Legacy LAPSms-Mcs-AdmPwdNein
StatusBedeutung
CONFIRMED_VALIDPasswort seit Aufgabenerstellung unverändert UND Aufgabe wurde innerhalb des erwarteten Zeitplans ausgeführt – Anmeldeinformationen als funktionierend bestätigt
HIGH_CONFIDENCE_VALIDPasswort seit Aufgabenerstellung unverändert, aber Trigger-Zeitpunkt unbekannt (z. B. Start-Trigger) – Anmeldeinformationen wahrscheinlich gültig
LIKELY_VALIDPasswort geändert, aber Aufgabe innerhalb des Zeitplans ausgeführt (Anmeldeinformationen aktualisiert) ODER Aufgabe erfolgreich ausgeführt (nur RPC-Modus)
POSSIBLY_STALEAufgabe hätte ausgeführt werden sollen, wurde es aber nicht – könnte auf veraltete Anmeldeinformationen hindeuten
DEFINITELY_STALEPasswort nach der letzten erfolgreichen Ausführung geändert – Anmeldeinformationen sind definitiv falsch
NEVER_RAN_LIKELY_VALIDAufgabe nie ausgeführt, aber Passwort seit Erstellung unverändert – wahrscheinlich gültig (könnte fehlende Batch-Logon-Rechte haben)
NEVER_RAN_POSSIBLY_STALEAufgabe nie ausgeführt und Passwort nach Erstellung geändert – wahrscheinlich veraltet
NEVER_RAN_UNKNOWNAufgabe nie ausgeführt, kein AD-Kontext – bei Erstellung gültig, aktueller Status unbekannt
UNKNOWNKann nicht ermittelt werden (Konto gesperrt usw.)
FormatFlagBeschreibungAnwendungsfall
Plain-o plainFür Menschen lesbare Konsolenausgabe (Standard)Interaktive Nutzung, schnelle Überprüfung
JSON-o jsonMaschinenlesbarer strukturierter ExportAutomatisierung, Datenanalyse, Scripting
CSV-o csvTabellenkalkulations-kompatibler ExportBerichterstellung, Filterung, Excel-Analyse
HTML-o htmlSicherheitsbericht mit SchweregradbewertungBlauteam-Audits, Berichte für Stakeholder
Ausgeschlossen
--include-disabled
Veraltete Computer (>60 Tage)Ausgeschlossen--stale-threshold 0 (deaktivieren)
DomänencontrollerAusgeschlossen--include-dcs
ProtokollOperationenFlag zum Deaktivieren
SMBAufgabenaufzählung (immer verwendet)N/A
LDAP (389/636)SID-Auflösung, Tier-0-Erkennung, pwdLastSet--no-ldap
Global Catalog (3268)Domainübergreifende SID-Auflösung--no-ldap
LSARPC (SMB-Pipe)Fallback-SID-Auflösung--no-rpc
Remote Registry (SMB-Pipe)Credential Guard-Erkennung--no-credguard
Task Scheduler RPC (SMB-Pipe)Anmeldeinformationsvalidierung--no-validate-creds
DPAPI-Dateisammlung (SMB)DPAPI-Credential-Blob-Sammlung--no-loot