
ProfileHound - جامع BloodHound OpenGraph لملفات تعريف المستخدمين المخزنة على أجهزة المجال. اتخذ قرارات مستنيرة بشأن نهب الأسرار من خلال تحديد ملفات تعريف المستخدمين النشطة على أجهزة المجال.
____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/
ProfileHound هي أداة ما بعد تصعيد الصلاحيات تساعد في العثور على أهداف عمليات الفريق الأحمر وتحقيقها من خلال تحديد ملفات تعريف المستخدمين في المجال على الأجهزة. تستخدم تنسيق BloodHound OpenGraph لإنشاء حافة جديدة تُسمى HasUserProfile تحدد ما إذا كان ملف تعريف مستخدم موجودًا على حاسوب معين. تتيح هذه الحافة للمشغّلين اتخاذ قرارات مستنيرة بشأن الأجهزة التي يجب استهدافها لسرقة الأسرار.
تتطلب هذه الأداة وصولًا إداريًا إلى مشاركة C$ على الأجهزة المستهدفة لتعداد ملفات تعريف المستخدمين.
شكرٌ كبير لـ Remi Gascou (@podalirius) على أداتي ShareHound و bhopengraph. لقد رغبت منذ فترة في بناء أداة لجمع هذه البيانات، واستخدام هذه المكتبات سمح لي بالتركيز على البناء بدلاً من الانشغال بالتفاصيل الداخلية.
[!WARNING] ProfileHound في مراحل تطوير مبكرة ولا تتوفر فيها جميع أوضاع الجمع بعد. استخدمها بحذر في بيئات الإنتاج، وتتحمل أنت مسؤولية المخاطر الناتجة عن استخدام هذه الأداة.
تحولت أهداف ما بعد الاستغلال في Active Directory من البيانات المخزنة محليًا إلى تطبيقات SaaS والسحابة. ولإثبات القيمة في مجال الأمن الهجومي (offsec)، نحتاج إلى إظهار كيفية اختراق الوصول إلى هذه الخدمات. في كثير من الحالات، لا تُستخدم هذه الخدمات إلا من قبل مجموعات أو مستخدمين معينين، مثل الموارد البشرية والمالية وغيرها. في بعض السيناريوهات، لا يمكن الوصول إلى تطبيقات SaaS معينة إلا من أجهزة محددة.
حافة HasSession في BloodHound رائعة، لكنها مفيدة فقط عندما يكون المستخدم مسجلاً الدخول إلى جهاز. إذا لم يكن المستخدم مسجلاً الدخول إلى الجهاز عند جمع البيانات، فقد يكون من الصعب العثور على الحاسوب الذي قد يحتوي على أسرار تسهّل المزيد من الاستغلال. قد تحتوي ملفات تعريف المستخدمين على قدر كبير من المعلومات القيّمة ضمن DPAPI وبيانات الاعتماد المخزنة مؤقتًا ومفاتيح SSH ومفاتيح السحابة والمزيد - ولا يتطلب الوصول إلى هذه البيانات جلسة مستخدم نشطة.

تستخدم ProfileHound تنسيق OpenGraph الخاص بـ BloodHound لبناء حافة رسم بياني جديدة تُسمى HasUserProfile تحدد ما إذا كان ملف تعريف مستخدم موجودًا على جهاز في المجال. يساعد ذلك المشغّلين على التركيز على الأجهزة التي يمتلك فيها مستخدم أو مجموعة عالية القيمة ملف تعريف.
تحتوي حافة HasUserProfile على خصائص لتاريخ إنشاء الملف الشخصي وتاريخ آخر تعديل. تساعد هذه المعلومات في تحديد:

تحتوي هذه الحافة أيضًا على خصائص للطوابع الزمنية لإنشاء الملف الشخصي وتعديله، مما يسمح باستعلامات Cypher محددة للعثور على ملفات تعريف مستخدمين نشطة أو طويلة الأمد على أجهزة معينة.
ثبّت ProfileHound باستخدام pipx (إلا إذا كنت تستمتع بجحيم الاعتماديات):
pipx install profilehound
لاستخدام أحدث إصدار تجريبي، يمكنك التثبيت من المصدر:
pipx install git+https://github.com/m4lwhere/profilehound.git
لاستخدام نهج الحاويات، قم ببناء الصورة وتشغيل الأداة بما يلي:
docker build -t profilehound .
docker run --rm profilehound --help
docker run --rm -v ${PWD}:/profilehound profilehound --auth-user alice --auth-password whiteRabbit --auth-domain sccm.lab --dns 192.168.57.10 --auth-dc-ip 192.168.57.10
على سبيل المثال، للتشغيل باستخدام حساب مسؤول مجال sccm.lab\alice وكلمة مرور whiteRabbit:
$ profilehound --auth-user alice --auth-password whiteRabbit --auth-domain sccm.lab --target 192.168.57.0/27
____ _____ __ __ __ __
/ __ \_________ / __(_) /__ / / / /___ __ ______ ____/ /
/ /_/ / ___/ __ \/ /_/ / / _ \/ /_/ / __ \/ / / / __ \/ __ /
/ ____/ / / /_/ / __/ / / __/ __ / /_/ / /_/ / / / / /_/ /
/_/ /_/ \____/_/ /_/_/\___/_/ /_/\____/\__,_/_/ /_/\__,_/ v0.1.1
@m4lwhere
BloodHound CE OpenGraph collector for user profiles stored on domain machines.
[12/30/25 11:58:05] INFO Loaded 32 targets
[12/30/25 11:58:08] INFO Successful authentication on 192.168.57.10 (192.168.57.10) as sccm.lab\alice
INFO Successfully connected to share \\192.168.57.10\C$ as sccm.lab\alice
INFO Enumerating profiles in \\192.168.57.10\C$\Users\...
INFO vagrant: S-1-5-21-3016982856-3796307652-1246469985-1000 created:2025-11-07 modified:2025-11-07
INFO Found 1 domain profile(s) for 192.168.57.10
INFO Successful authentication on 192.168.57.11 (192.168.57.11) as sccm.lab\alice
[12/30/25 11:58:09] INFO Successfully connected to share \\192.168.57.11\C$ as sccm.lab\alice
INFO Enumerating profiles in \\192.168.57.11\C$\Users\...
INFO administrator: S-1-5-21-3016982856-3796307652-1246469985-500 created:2025-11-07 modified:2025-11-07
INFO alice: S-1-5-21-3016982856-3796307652-1246469985-1112 created:2025-12-28 modified:2025-11-07
INFO eve: S-1-5-21-3016982856-3796307652-1246469985-1116 created:2025-12-27 modified:2025-11-07
INFO Found 3 domain profile(s) for 192.168.57.11
INFO Successful authentication on 192.168.57.12 (192.168.57.12) as sccm.lab\alice
INFO Successfully connected to share \\192.168.57.12\C$ as sccm.lab\alice
INFO Enumerating profiles in \\192.168.57.12\C$\Users\...
INFO alice: S-1-5-21-3016982856-3796307652-1246469985-1112 created:2025-12-28 modified:2025-12-28
INFO franck: S-1-5-21-3016982856-3796307652-1246469985-1117 created:2025-12-27 modified:2025-11-07
INFO sccm-sql: S-1-5-21-3016982856-3796307652-1246469985-1121 created:2025-11-07 modified:2025-11-07
INFO Found 3 domain profile(s) for 192.168.57.12
INFO Successful authentication on 192.168.57.13 (192.168.57.13) as sccm.lab\alice
INFO Successfully connected to share \\192.168.57.13\C$ as sccm.lab\alice
INFO Enumerating profiles in \\192.168.57.13\C$\Users\...
INFO alice: S-1-5-21-3016982856-3796307652-1246469985-1112 created:2025-12-26 modified:2025-12-28
INFO sccm-account-da: S-1-5-21-3016982856-3796307652-1246469985-1119 created:2025-12-26 modified:2025-11-07
INFO Found 2 domain profile(s) for 192.168.57.13
[12/30/25 11:59:27] INFO Found 4 machines with profiles
INFO Exported OpenGraph intel to profilehound_20251230-115805.json
يؤدي هذا إلى إنشاء ملف باسم profilehound_20251230-115805.json في الدليل الحالي. يمكن استيراد هذا الملف مباشرة إلى BHCE عن طريق سحبه وإفلاته في واجهة BloodHound. سيتم تحليله تلقائيًا وربط العقد عبر SID. سيتم إنشاء الحافة الجديدة HasUserProfile لإظهار العلاقة بين المستخدم والملف الشخصي.