
Privilege Escalation - Potatoes Part 1
ในปัจจุบันการโจมตีทาง cyber นั้นมีหลากหลายรูปแบบ และหนึ่งในวิธีการที่เหล่า hacker นิยมทำคือการทำ privilege escalation ยกระดับสิทธิ์ของตนเองเป็นผู้ใช้งานระดับสิทธิสูง เพื่อทำการขยายผลการโจมตีและสร้างความเสียหายได้มากขึ้น ซึ่งในบทความนี้เราจะมาพูดถึงหนึ่งในเครื่องมือที่ใช้ในการยกระดับสิทธิ์บนระบบปฎิบัติการ Windows นั้นก็คือเหล่า Potatoes

amtxd8.gif
เครื่องมือ Potatoes ส่วนใหญ่จะสามารถใช้โจมตีผ่านตัว Windows network authentication เพื่อยกระดับสิทธิ์ของผู้ใช้งาน (user) โดยผู้โจมตีจะต้องมีสิทธิ์อย่าง SeImpersonatePrivilege หรือสิทธิ์อื่น ๆ ที่สามารถนำมาใช้ในการเรียกหรือสวมสิทธิ์เป็น SYSTEM token ได้ แต่โดยหลัก ๆ Potatoes จะใช้โจมตีด้วยสิทธิ SeImpersonatePrivilege เป็นหลัก
โดยหลักการโจมตีของเครื่องมือ Potatoes ส่วนใหญ่จะมี concept คล้าย ๆ กัน คือ
- บังคับให้ SYSTEM authenticate เข้ามาหา process หรือ listener ที่เราควบคุม
- ได้ impersonation token ของ SYSTEM (หรือ Potatoes บางตัวก็ไม่จำเป็นต้องใช้ก็สามารถยกสิทธิเป็น SYSTEM ได้เลยเช่น Hot Potato)
- ใช้สิทธิ์ SeImpersonatePrivilege นำ SYSTEM token แล้วยกสิทธิตัวเองเป็น SYSTEM
แล้ว SeImpersonatePrivilege มันคืออะไร สวมสิทธิ์เป็น SYSTEM ได้ ทำไมมันดูอันตราย?
SeImpersonatePrivilege คือ Windows Privilege ที่อนุญาติให้ผู้ใช้งานหรือ process สวมสิทธิเป็นผู้ใช้งานคนอื่นได้ชั่วคราว เพื่อที่จะทำ action หรือ เข้าถึง resource บนระบบปฎิบัติการของ Windows
โดย Potatoes นั้นมีหลากหลายเวอร์ชัน เนื่องจากทางผู้พัฒนา Microsoft ก็พยายาม patch เพื่อทำให้โจมตีได้ยากขึ้น แต่ในขณะเดียวกันฝั่ง hacker ก็พัฒนาตัว Potatoes ออกมาหลายเวอร์ชัน เพื่อหลบเลี่ยงหรือใช้วิธีการอื่น ๆ ในการโจมตีเช่นกัน โดยเราจะเริ่มอธิบายขั้นตอนในการโจมตีที่ Potatoes แต่ละตัวใช้ โดยตัวแรกเป็น
Hot Potato
ก่อนจะลงเนื้อหาเราต้องรู้จักกับ
- WPAD (Web Proxy Auto-Discovery) เป็นฟังก์ชันช่วยให้ระบบค้นหาไฟล์การตั้งค่า proxy จาก URL โดยอัตโนมัติ
- NBNS (NetBIOS Name Service) คือ protocal บน Windows ที่ใช้หาว่า host นี้คือเครื่องไหน ในเครือข่าย Windows network โดย NBNS จะทำการแปลงตัวชื่อ host เป็น IP address ให้ตัวเครื่องสามารถค้นหาได้ว่าเครื่องที่เราจะติดต่อนั้น IP อะไร
มาทำความรู้จักขั้นตอนการค้นหา Host บน Windows แบบคราว ๆ ดังนี้

potatoes-Host name Resolution.drawio-2.png
1. search in DNS cache และ Host file
Windows จะเริ่มค้นหา hostname ใน DNS cache file และถ้าหากยังหาไม่เจอจะไปหาในไฟล์ hosts (C:\Windows\System32\drivers\etc\hosts) ต่อ
2. DNS Query
Windows จะค้นหา Host บน DNS server ที่ได้ตั้งค่าเอาไว้
3. NBNS Query
ใช้รูปแบบ Boardcast ค้นหาภายในระบบ local network ว่า Hostname นี้คือคอมพิวเตอร์เครื่องไหน
ขั้นตอนการทำงานของ Hot Potato

potatoes-Hot Potatoes-3.png
1. NBNS spoof
ขั้นตอนนี้ตัว Hot Potato จะพยายามทำ NBNS Spoofing กับ Windows โดยจะบังคับให้ Windows ใช้งาน NBNS แต่ถ้าเกิดภายในระบบมีตัวของ DNS record ที่ทำให้ระบบสามารถใช้งานหรือค้นหา IP บนระบบได้โดยที่ไม่ต้องพึ่ง NBNS อยู่แล้ว หล่ะ?
เพื่อให้แน่ใจว่าระบบจะไปใช้งาน NBNS ตัว Hot Potato ใช้เทคนิคที่เรียกว่า "UDP port exhaustion" โดยการจองพอร์ต UDP ทั้งหมดบนเครื่อง (Ephemeral ports) ทำให้การร้องขอ DNS ล้มเหลวและบังคับให้ระบบใช้ NBNS แทน
และเนื่องจาก NBNS query มี field ที่ชื่อว่า TXID เป็นค่าตัวเลขที่สุ่มสร้างขึ้นใน request โดยค่าของ response จะต้องมีค่า TXID ที่ตรงกัน ไม่งั้นตัว packet จะถูก drop ออกไป และเนื่องจากเราไม่สามารถดูข้อมูลของ request ได้ ดังนั้นเราต้อง flood request เพื่อ brute force หาค่า TXID ที่ถูกต้องได้ โดย TXID มีค่า 2-byte หรือมีค่าที่เป็นไปได้ทั้งหมด 65536 ค่า
2. Send Edited NBNS response
ในขั้นตอนนี้ Hot Potato จะปลอมแปลง response ให้ Windows บังคับให้ไปดาวน์โหลด WPAD ปลอมที่ Hot Potato สร้างขึ้นมา
3. Download Fake WPAD
ขั้นตอนนี้ตัว Windows จะไปดาวน์โหลด WPAD ปลอม ซึ่งจะทำการส่ง HTTP request บนระบบ Windows จะต้องส่งผ่าน proxy ซึ่งในที่นี้ก็คือตัว Hot Potato นั้นแหละ
4. SYSTEM send HTTP request through WPAD Proxy
ขั้นตอนนี้หากเราใช้งาน service ที่ทำให้ SYSTEM ได้ส่ง HTTP request เราจะสามารถดักจับ HTTP request ที่ถูกส่งด้วยสิทธิ SYSTEM ได้ โดยตัวอย่าง service ก็จะเป็นพวก Windows Update service หรือ Windows Defender signature update ซึ่ง WPAD ของ Hot potato จะ redirect request ที่ดักเอาไว้ไปยัง http://localhost/GETHASHESxxxxx (listener ของตัว Hot Potato) ซึ่งจะมีการตอบกลับข้อความ 401 request for NTLM authentication เพราะตัว listener ของ Hot Potato ได้ตั้งค่าให้ต้องมีการทำ NTLM Authentication
5. Forced NTLM Authentication (ขั้นตอนที่ 6 และ 7)
จากที่ SYSTEM ส่ง HTTP request และต้องมีการทำ NTLM Authentication ในขั้นตอนนี้ระบบจะให้ SYSTEM ทำ NTLM authentication กับ listener ของ Hot Potato
6. NTLM Relay
ขั้นตอนนี้ Hot Potato จะทำการ relay NTLM - > SMB local listener และทำการ Authentication จนจบจะทำให้มีการสร้าง SYSTEM service ใหม่ ที่รันคำสั่งที่เรากำหนด ซึ่งทำให้เราได้สิทธิ SYSTEM ได้เลย
Does Hot Potato still work ?
Hot Potato เป็นหนึ่งใน Potatoes ที่ไม่ต้องพึ่งพาสิทธิ SeImpersonatePrivilege ในการยกสิทธิตัวเองเป็น SYSTEM ซึ่งสามารถใช้ในการโจมตีได้ง่ายและอันตรายมาก แต่ว่าตัว Hot Potato สามารถใช้กับเครื่อง Windows ที่ไม่ได้อัพเดทมาอย่างน้อย 10 ปี เพราะสำหรับ Windows ที่ทำการติดตั้ง patch ในช่วงปี 2016 เป็นต้นไป จะไม่สามารถใช้ Hot Potato ในการโจมตีได้แล้ว เนื่องจาก Microsoft ได้ทำการแก้ไขช่องโหว่ด้วย patch ดังต่อไปนี้
MS16-075 โดย ไม่อนุญาตให้มีการทำ NTLM authentication แบบโปรโตคอลเดียวกัน (same-protocol) ซึ่งหมายถึงจะไม่สามารถทำการ SMB → SMB NTLM relay ในเครื่องตัวเอง (localhost)
MS16-077 WPAD Name Resolution จะไม่ใช้ NetBIOS และจะไม่ส่ง NTLM เมื่อมีการร้องขอไฟล์ตั้งค่า WPAD ส่งผลให้การโจมตีแบบ WPAD MITM ถูกปิดทั้งหมด
Rotten Potato
ก่อนอื่นเลยเราต้องรู้จักกับ keyword เหล่านี้ก่อนว่ามันคืออะไร
- COM (Component Object Model) คือ เทคโนโลยีที่อนุญาติให้ developer สามารถดึงตัว modular หรือ software compenent ต่าง ๆ มาใช้งานกับ application ที่ตนเองพัฒนาได้
- DCOM (Distributed Component Object Model) คือ โดยทั่วไป COM นั้นสามารถเข้าถึงได้ภายใน local machine เท่านั้น แต่ DCOM เป็นระบบ network ที่จะทำให้เข้าถึง COM ของคอมพิวเตอร์เครื่องอื่น ๆ ภายในเครือข่ายได้
- SSPI (Security Support Provider Interface) framework ด้าน authentication ของ Windows ที่ทำหน้าที่เป็นตัวกลางระหว่าง application กับกลไกยืนยันตัวตนจริง ๆ ภายในระบบ
- AcceptSecurityContext คือ API function หนึ่งใน SSPI ที่ใช้ในการสร้าง security context ระหว่าง server กับ client ได้
- security context คือ เป็นสิ่งที่ใช้ในการระบุตัวตนของผู้ใช้งานและสถานะการยืนยันตัวตนของผู้ใช้งาน บน Windows network
- ImpersonateSecurityContext คือ function ที่อนุญาติให้ผู้ใช้งาน impersonate เป็นเป้าหมายได้โดยต้องรับค่า token ที่ได้มาจากฟังก์ชัน AcceptSecurityContext
ขั้นตอนการทำงานของ Rotten Potato

potatoes-Rotten Potatoes-4.png
1. Get Object with DCOM
Rotten potato เรียกใช้งาน API CoGetInstanceFromIStorage (https://learn.microsoft.com/en-us/windows/win32/api/objbase/nf-objbase-cogetinstancefromistorage) เพื่อให้ DCOM ไปเรียก BITS Object หรือ COM Object (https://learn.microsoft.com/en-us/windows/win32/bits/background-intelligent-transfer-service-portal) อยู่ที่ IP 127.0.0.1:6666 (listener ของ Rotten Potato)
2. NTLM negotiate
เนื่องจากระบบมีการเรียกใช้งาน COM บนเครื่องอื่น จะทำให้ SYSTEM ต้องทำ NTLM authentication over RPC (DCOM) กับเครื่องที่เก็บ COM ดังกล่าวเอาไว้ ซึ่งในเคสนี้คือ listener ที่ Rotten Potato สร้างขึ้นมา
3. Send NTLM Negotiate & 4. Get NTLM Challenge
ในขั้นตอนนี้ Rotten Potato จะส่งให้ NTLM Negotiate (Type 1) ที่ได้มาในขั้นตอนที่ 2 ให้ในฝั่งทั้ง RPC และ AcceptSecurityContext() เพื่อที่เราจะได้ NTLM challenge มาทั้งสองค่า นำมาใช้ในขั้นตอนถัดไป
4. Relay edited NTLM Challenge
โดย NTLM authentication จะมี NTLM Challenge (Type 2) Blob ซึ่งประกอบด้วยค่า Challenge และ Reserved โดยค่า Challenge จะถูกใช้เป็นส่วนหนึ่งของกระบวนการยืนยันตัวตน ขณะที่ค่า Reserved ถูกใช้โดย SSPI เพื่อผูกและตรวจสอบความถูกต้องของ authentication state และ NTLM context ดังนั้นในขั้นตอนนี้ Rotten Potato จะคัดลอกค่า Challenge และ Reserved จาก NTLM Challenge Blob ที่ได้จาก AcceptSecurityContext() ไปใส่ใน NTLM Challenge (Type 2) Blob ของฝั่ง RPC เพื่อทำ NTLM Relay และหลอกให้ AcceptSecurityContext() ยอมรับ NTLM authentication และออก impersonation token (ของ SYSTEM process) ให้กับ Rotten Potato process แทนที่จะออกให้กับ RPC การยืนยันตัวตนผ่าน RPC
5. Get NTLM Auth & 7. Relay NTLM Auth
หลังจากที่ส่ง NTLM Challenge ที่ถูกแก้ไขให้กับ SYSTEM ตัว SYSTEM จะส่งค่า NTLM Auth (Type 3) มาให้ Rotten Potato และจะมีการยืนยันตัวตนภายใน memory และในขั้นตอนนี้ Rotten Potato จะมีการเรียกใช้ฟังก์ชัน AcceptSecurityContext() และนำผลลัพธ์ที่ได้ไปใช้กับฟังก์ชัน ImpersonateSecurityContext() เพื่อที่จะได้รับค่า impersonation token ของ SYSTEM process ที่ใช้ในการ impersonate เป็น SYSTEM
6. Get System Token & 9. impersonate to SYSTEM
เมื่อเราได้รับ impersonation token ของ SYSTEM process ในขั้นตอนนี้ Rotten potato จะนำ token ไปใช้งานร่วมกับสิทธิ "SeImpersonatePrivilege" เพื่อยกสิทธิเป็น SYSTEM ได้เลย โดยหากใช้งาน Rotten Potato ผ่านตัว meterpreter จำเป็นต้องทำผ่าน incognito mode ที่เป็น module ที่ให้ทำการจัดการค่า token ได้ โดยอาศัย Windows Token Impersonation Model ผ่านตัว Windows API
Does Rotten Potato still work ?
โดยเวอร์ชันหลังจาก Windows 10 1809 และ Windows Server 2019 ****จะไม่สามารถใช้ Rotten Potato ในการโจมตีได้ เนื่องจาก ใน Windows patch ใหม่ DCOM จะไม่ทำการติดต่อกับ local listener ที่สร้างในเครื่องเดียวกันได้แล้ว
แต่ถ้าเราทำการส่ง Relay traffice ของ DCOM บน host ที่เรา attack ไปยัง listener ของเราที่เป็นอีก Host หนึ่งละ (ทำเป็นแบบ Proxy) ผลลัพธ์ก็คือตัว Windows จะมองว่าเป็นการทำ Local Authentication ไปยังอีกเครื่อง ซึ่งไม่ถูกต้องและตัว Windows จะปฎิเสธที่จะยืนยันตัวตนกับ listener ของเรา
จริง ๆ แล้วเครื่อง Potatoes ยังมีอีกหลายตัว จะมาเขียนต่อใน Part ถัดไปครับ
Reference
ผู้เขียนบทความ ส่วนใหญ่จะเอาเนื้อหาจากบทความเหล่านี้ มาอ่านและทำความเข้าใจด้วยตนเอง มาสรุปและเขียนบทความนี้ขึ้นมา ท่านผู้อ่านสามารถค้นหาข้อมูลเพิ่มเติมได้ที่ลิงก์นี้ได้เลย
https://jlajara.gitlab.io/Potatoes_Windows_Privesc
https://foxglovesecurity.com/2016/01/16/hot-potato/
https://hideandsec.sh/books/windows-sNL/page/in-the-potato-family-i-want-them-all
https://decoder.cloud/2018/10/29/no-more-rotten-juicy-potato/
https://medium.com/@indigoshadowwashere/a-deep-dive-into-windows-security-tokens-part-1-9a2d37f4c4e5
Up Next

ARTICLES
Mar
11
2026
จาก personal assistance (openclaw) สู่ backdoor เมื่อ telegram bot ที่ deploy ไว้ไม่ใช่มีแค่เราที่ใช้ได้
รีวิวความเสี่ยงเมื่อ AI Agent อย่าง OpenClaw ถูกเชื่อมกับ Telegram โดยไม่จำกัดสิทธิ์ เปิดทางให้ใครก็เข้ามาสั่งรันสคริปต์ได้
READ MORE

ARTICLES
Mar
09
2026
Why EDR Isn’t Enough: A Guide to Monitoring Infostealer Logs with RedAlert
Hackers no longer break in—they log in. Discover how RedAlert provides visibility into leaked credentials from unmanaged devices and the dark web, closing the security gaps that traditional EDR and Antivirus miss.
READ MORE

ARTICLES
Feb
20
2026
Cyber Security Checklist on Digital House
คนเรามักจะเลือกล็อกประตูบ้านเพื่อความปลอดภัย.. แล้วบ้านของคุณในโลก 'ดิจิทัล' มีการล็อกที่แน่นหนาแล้วหรือยัง?
READ MORE

