تنفيذ هجوم DCSync بإستخدام Empire لعمل Domain users hashdump
في العديد من الحالات أثناء تنفيذنا لـ Red Team مُعين داخل شبكة معينة نريد الحصول على الـ Credentials أوالـ Hashes الخاصه بالمستخدمين لإعادة إستخدامها وتوسيع نطاق عمليتنا داخل الشبكة , ولذلك العديد من الـ Red Teamers / Pentesters يقومون بإستخدام أداة Mimikatz لتنفيذ المطلوب فور الحصول على صلاحيات مُرتفعه داخل الـ Domain وقبل أن أقوم بإستكمال المقال لا بُد من أخذ نظره سريعه وخاطفه جداً عن Mimikatz.
ما هي Mimikatz ؟
أداة Mimikatz هي أداة مفتوحة المصدر تم تطويرها من قبل Benjamin Delpy تقوم بإستخراج الـ credentials وعرضها من داخل نظام Windows من خلال إستخرجها من خدمة lsass (Local Security Authority Subsystem Service) كما تقوم أيضاً بإستخراج الـ kerberos tickets وبعض الأمور الرائعه الأخرى تجدها موجوده بصفحة الـ wiki الخاصه بالأداة على github كما أشرت لها مسبقاً.
في بعص إصدارات windows مثل windows 10 و windows server 2016 لا تستطيع عمل dump للـ plain text credentials ولكن تستطيع عمل dump للـ NTLM hashes لكي تقوم بإعادة إستخدامها لاحقاً.
يوجد من Mimikatz إصدار stand alone exe تستطيع إستخدامه على الأجهزه بشكل منفصل , أو تستطيع إستخدام mimikatz via powershell من خلال Invoke-Mimikatz Module والذي يُمكنك من الإستفادة من Mimikatz عبر تحميلها إلى الـ Memory مباشرة , سوف أقوم بمقالات لاحقه بذكر كيفية إستخدام Mimikatz بشكل أكبر وشرح كيفية عملها على مستوى النظام.
ولكن مُجدداً جميع هذه الهجمات وما تم ذكره يتطلب أن نقوم بتشغيل Mimikatz على جهاز الهدف لكي يقوم بعمل dump للـ hash الخاص به , ولكن هنالك هجوم نستطيع من خلاله عمل dump لجميع الـ hashes الخاص بالـ users على الـ Domain الذي نقوم بمهاجمته من خلال تنفيذ ما يُسمى DCSync attack.
ما هو DCSync attack ؟
هو هجوم نستطيع تنفيذه من خلال Mimikatz يُمكننا من جمع الـ hashes الخاصه بمُستخدمين الـ Domain من خلال مُخاطبة الـ Domain Controller بشكل وهمي كـ Domain Controller أخر لطلب الحصول على نسخة من الـ users hashes.
لتنفيذ هذا الهجوم لا بد أن يتم تنفيذ هذا الهجوم من خلال Domain Admin أو مستخدم ضمن مجموعة مخوله للقيام بهذا الأمر.
سوف نقوم بإستخدام Empire بعد أخذ صلاحيات Domain Administrator ومن ثم عمل DcSync Attack من خلال Mimikatz الموجوده بالأصل داخل Empire , أي أننا سوف نقوم بتحميل Mimikatz على الـ Memory ومن ثم تنفيذ الهجوم.
كما نرى من Empire فإن الـ Empire agent يعمل تحت مُستخدم إسمه sami وهو جزء من الـ DarkSide Domain ويعمل بـ elevated privileges أي كـ admin على الـ local machine:
دعونا نستعرض سريعاً الـ users الموجودين بالـ Domain ولنبحث سريعاً عن الـ user الخاص بنا وهو Sami , من خلال الـ Module المُسمى situational_awareness/network/powerview/get_user:
ونتيجة تنفيذ الأمر هي:
المستخدم Sami هو جزء من الـ Domain Admins Group , طبعاً قمنا بتنفيذ هذه العملية من خلال powerview بالأساس من خلال إستدعاء get_user وتمرير المتغير Identity له بالقيمة Sami لكي يقوم بجلب جميع البيانات عن المستخدم Sami.
الأن وبعدما علمنا أننا جزء من الـ Domain admin group دعونا نقوم بعمل DCSync من خلال Mimikatz , أود التنويه بأن هنالك Module جاهز داخل empire بإسم dcsync_hashdump ولكنه unstable بشكل كبير , لذلك سوف أقوم بإستخدام الـ Module المُسمى credentials/mimikatz/command ومن ثم تمرير الـ command الخاص بعمل dcsync داخل Mimikatz وهو “lsadump::dcsync /domain:domainname /all /csv” وهذا الأمر يقوم بإستخراج جميع الـ hashes من خلال الـ DCSync لدومين مُعين وعرضها بصيغة CSV , دعونا نقوم بتنفيذ الهجوم ولنرى ماذا سوف يحصل:
كما نرى تم إستخراج الـ hashes الخاصه بمُستخدمين الـ domain وأهمها بالنسبة لنا هو krbtgt hash والذي من خلاله نستطيع توليد golden ticket لإستخدامها لاحقاً.
دعونا نتحقق من Administrator hash بإستخدام Impacket psexec من خلال تمريره لـ 172.12.1.25 وهو الجهاز الذي قمنا بإختراقه مسبقاً كما يلي:
كما نرى تمكنا من الحصول على shell بإستخدام psexec من خلال تمرير الـ hash الذي قُمنا بالحصول عليه.
أتمنى أن يكون المقال نال إعجابكم وإلى اللقاء في مقالات أخرى.