พอดีช่วงที่ผ่านมาได้ไปสมัครเว็บ Hack The Box เข้า ซึ่งมีทั้ง CTF, Challenge, Machine เหมือนกับ Vulnhub ให้แฮ็ค แล้วผมคิดว่ามันน่าสนใจดีเพราะตัวเป้าหมายนั้นมี Windows Machine ด้วย (Vulnhub มีแต่ Linux Server) ซึ่ง Machine นั้นมีหลายเครื่องมาก ก็เลยลองเล่นดูก็สนุกดีครับ ก็เลยทำ Walkthrough ออกมาครับ

ปล. ตอนที่ผมเขียนบทความนี้นั่นคือเล่นจบไปแล้ว และส่วนใหญ่ไม่ได้เก็บคำสั่งไว้นะครับ จะมีแต่ screenshot ซะส่วนใหญ่ครับ

(ตัวเครื่องนั้นมีการ reset บ่อยมาก เนื่องด้วยตัวที่ผมใช้เป็นเครื่องสำหรับ user ทั่วไปแฮ็คร่วมกัน ไม่ใช่ VIP user ดังนั้นคนจะ reset เครื่องยังไงก็ได้แล้วแต่อยากจะกดเลย (ถึงขั้นมีการด่ากันใน forum เลยว่าอย่ากด reset กันบ่อยสิเฮ้ย))

เป้าหมาย: Jeeves

IP: 10.10.10.63

Flag: user.txt ใน user ธรรมดา และ root.txt ใน SYSTEM user

1. NMAP scan หา port ของเป้าหมาย

2. เข้าใช้งานเว็บไซด์ที่ port 80 ซึ่งปรากฏว่าไม่เจออะไรดีๆเลย พอ query พวก sqli ดูก็กลายเป็นเจอหน้า error ที่เป็นรูปภาพ capture มาให้ดูคิดว่าเป็น sqli อีกต่างหาก

3. หลังจากนั้นก็เข้าไปที่อีก port ที่เปิดอยู่นั่นคือ port 50000 ก็พบว่าเป็น Application ที่ชื่อว่า Jetty 9.4.z-SNAPSHOT

4. หลังจากหาข้อมูลอยู่นานก็ไม่ได้อะไร เลยใช้ Dirbuster ในการหา path ที่น่าจะเป็นในเว็บไซด์ทั้ง 2 port

5. ปรากฏว่าไปเจอ path ที่ชื่อว่า “http://10.10.10.63:50000/askjeeves” ซึ่งเมื่อเข้าไปก็พบว่ามันคือ Jenkins นั่นเอง งานนี้ก็สนุกละสิ เราก็เลยใช้ Jenkin ในการรัน Windows Command ซะเลย (Powershell)

โดย payload ที่ผมใช้นั้นเป็น powershell ที่ถูกสร้างด้วย msfvenom ซึ่งปรากฏว่าใช้ไม่ได้เพราะติด Antivirus ของ Windows 10 ซะงั้น

ก็เลยเปลี่ยนใหม่โดยการไปใช้ powershell download & execute from memory แทนไปเลย

แล้วก็ได้ shell มาเป็น user ที่ชื่อว่า “Kousuke”

6. เมื่อเข้าไปที่ C:/Users/kousuke/Desktop ก็จะได้ flag แรก (user.txt)

7. หลังจากนั้นก็พยายามกันต่อในการพยายาม login จาก user ธรรมดาให้กลายเป็น system โดย user kousuke นั้นไม่ได้อยู่ใน Admin Group, ติด UAC ดังนั้นสิ่งที่ทำต่อคือหาข้อมูลภายในเครื่องซึ่งก็ได้ไฟล์ที่น่าสนใจมามากมาย

ซึ่งตัวที่น่าสนใจที่เจอคือ CEH.kdbx เพราะมันคือไฟล์ password database ที่ใช้ใน Keepass2 นั่นเอง

8. ดังนั้นสิ่งที่เราทำต่อคือการ crack master password ของไฟล์ CEH.kdbx ให้ได้ ซึ่งเริ่มจากการสร้าง hash โดยใช้ keepass2john และใช้ john the ripper ในการถอดรหัส

9. หลังจากนั้นก็เปิด CEH.kdbx โดยใช้ Keepass2

10. จากนั้นก็ไล่ใช้ password เหล่านั้น login เป็น Administrator ด้วย pth-winexe (Pass-The-Hash) ปรากฏว่า winexesvc service นั้นถูกปิดไว้

(ถึงตรงนี้ผมไม่แน่ใจว่า password ถูกจริงๆมั้ยก็เลยใช้ medusa login แบบ pth อีกที ปรากฏว่า login success)

11. จากนั้นใช้ smbclient.py ซึ่งเป็น script หนึ่งในชุดของ impacket ในการ mount แล้วเข้าไปสำรวจไฟล์ภายในเครื่องด้วย user password ของ Administrator

จากนั้นก็เข้าไปเรื่อยๆจนถึง C:\Users\Administrator\hm.txt ซึ่งดันบอกว่าให้ “Look Deeper”

12. ผมก็เลยต้องหาทาง login เป็น shell ให้ได้ ก็เลยกลับไปใช้ Metasploit ใช้ module “exploit/windows/smb/psexec” เพื่อทำการ login ซึ่งปรากฏว่าได้ Shell โดยสิทธิ์เป็น SYSTEM จนได้ (getsystem)

13. พอเข้ามาที่ path เดิมคือ C:\Users\Administrator\Desktop ก็ใช้ dir /R เพื่อ list ไฟล์ทั้งหมดที่ซ่อนอยู่ก็พบว่าเจอไฟล์ที่เป็น Alternative Data Stream (นั่นคือทำไมใช้ smbshare เข้าไปถึงไม่เจอไฟล์นี้) สุดท้ายก็ได้ flag จนได้ครับ

Resource:: 

  • https://www.greyhathacker.net/?p=500
  • http://www.harmj0y.net/blog/penetesting/pass-the-hash-is-dead-long-live-pass-the-hash/
  • https://www.howtogeek.com/howto/windows-vista/stupid-geek-tricks-hide-data-in-a-secret-text-file-compartment/
  • https://blog.ropnop.com/practical-usage-of-ntlm-hashes/