เจาะลึก Proving Grounds: แกะรอย “Fired” สู่เส้นทาง OSCP

เจาะลึก Proving Grounds: แกะรอย “Fired” สู่เส้นทาง OSCP

เริ่มต้นสแกนหาช่องโหว่

การเริ่มต้นพิชิตเซิร์ฟเวอร์ใด ๆ มักเริ่มจากการสำรวจอย่างละเอียด เครื่องมืออย่าง Nmap เป็นกุญแจสำคัญในการค้นหาพอร์ตและบริการที่เปิดอยู่บนเป้าหมาย สำหรับเครื่อง “Fired” การสแกนเผยให้เห็นพอร์ตที่น่าสนใจหลายแห่ง พอร์ต 22 สำหรับ SSH, พอร์ต 80 สำหรับเว็บเซิร์ฟเวอร์ Apache มาตรฐาน และที่สำคัญคือพอร์ต 8080 ซึ่งรัน Apache Tomcat

Apache Tomcat บนพอร์ต 8080 ดึงดูดความสนใจเป็นพิเศษ เพราะมักมีช่องโหว่ให้โจมตีได้ การลองใช้เครื่องมือสำหรับ Directory brute-forcing ช่วยให้ค้นพบพาธที่ซ่อนอยู่ เช่น /manager/html ซึ่งเป็นส่วนจัดการของ Tomcat

เจาะระบบเว็บแอปพลิเคชัน: Tomcat Manager

การเข้าถึงหน้า /manager/html ต้องใช้ข้อมูลรับรอง ซึ่งโดยปกติแล้วมักมีการตั้งค่าเริ่มต้นหรือรหัสผ่านที่ไม่แข็งแกร่ง การพยายามล็อกอินด้วย Credentials ทั่วไป ที่ใช้กับ Tomcat Manager เช่น tomcat:s3cret หรือ admin:s3cret มักเป็นจุดเริ่มต้นที่ดี ในกรณีนี้ การค้นหาข้อมูลรับรองที่ถูกต้องทำให้สามารถเข้าสู่ระบบได้สำเร็จ

เมื่อได้สิทธิ์ในการเข้าถึง Tomcat Manager สิ่งที่สามารถทำได้คือการอัปโหลดและติดตั้งแอปพลิเคชันในรูปแบบไฟล์ .war ไฟล์ .war นี้ถูกสร้างขึ้นโดยใช้ msfvenom ซึ่งบรรจุ Reverse Shell แบบ JSP เอาไว้ เมื่ออัปโหลดและรันไฟล์นี้บนเซิร์ฟเวอร์ และตั้งค่า Netcat Listener ไว้บนเครื่องโจมตี จะสามารถได้รับ Initial Shell Access ในฐานะผู้ใช้งานระดับต่ำบนเซิร์ฟเวอร์เป้าหมาย

ยกระดับสิทธิ์สู่ Root ด้วย PATH Hijacking

หลังจากได้ Initial Shell เข้ามา การยกระดับสิทธิ์เป็นสิ่งจำเป็น ขั้นตอนแรกคือการสำรวจภายในระบบเพื่อหาช่องโหว่เพิ่มเติม การตรวจสอบคำสั่ง sudo -l ช่วยให้ทราบว่าผู้ใช้ปัจจุบันมีสิทธิ์รันคำสั่งใดในฐานะ root ได้บ้าง แต่ในกรณีนี้ไม่พบสิทธิ์พิเศษใด ๆ

การค้นหาไฟล์ที่มี SUID Bit ถูกตั้งค่าไว้ ก็เป็นอีกเทคนิคหนึ่งที่ใช้บ่อย แต่เครื่อง “Fired” นำไปสู่การค้นพบที่น่าสนใจยิ่งกว่า นั้นคือสคริปต์ backups.sh ที่อยู่ในพาธ /opt/scripts/backups.sh สคริปต์นี้เป็นของ root และถูกรันเป็นประจำ

เมื่อตรวจสอบเนื้อหาของ backups.sh พบว่าสคริปต์มีการเรียกใช้คำสั่ง tar โดยไม่ได้ระบุ Full Path (เช่น /bin/tar) นี่คือจุดตายที่สามารถนำไปสู่การโจมตีแบบ PATH Hijacking ได้

โดยการสร้างไฟล์ executable ชื่อ tar ขึ้นมาใหม่ในไดเรกทอรีที่ผู้ใช้งานระดับต่ำสามารถเขียนได้ (เช่น /tmp) และใส่คำสั่งสำหรับยกระดับสิทธิ์เข้าไป จากนั้นทำการปรับเปลี่ยนค่าตัวแปรสภาพแวดล้อม PATH ให้ไดเรกทอรี /tmp มาอยู่ก่อนหน้าพาธมาตรฐาน

เมื่อสคริปต์ backups.sh ถูกรันโดย root ในครั้งถัดไป ระบบจะค้นหาคำสั่ง tar ตามลำดับในตัวแปร PATH และจะไปเจอไฟล์ tar ที่สร้างขึ้นใน /tmp ก่อนที่จะเจอ tar จริง ๆ ทำให้สคริปต์ที่เป็นอันตรายถูกรันด้วยสิทธิ์ของ root ส่งผลให้สามารถ ได้รับสิทธิ์ Root Shell ได้สำเร็จ

บทเรียนจากการพิชิต “Fired”

การโจมตีเครื่อง “Fired” เป็นตัวอย่างที่ดีของการเรียนรู้ทักษะการเจาะระบบที่จำเป็นต่อการเตรียมตัวสอบอย่าง OSCP มันแสดงให้เห็นถึงความสำคัญของการสำรวจระบบอย่างละเอียด ทั้งในส่วนของเครือข่ายและภายในระบบปฏิบัติการ การทำความเข้าใจช่องโหว่ของเว็บแอปพลิเคชันอย่าง Apache Tomcat และเทคนิคการยกระดับสิทธิ์ที่ซับซ้อนอย่าง PATH Hijacking เป็นสิ่งสำคัญยิ่ง ความสำเร็จในการพิชิตเครื่องนี้เน้นย้ำถึงคุณค่าของการลงมือปฏิบัติจริง และการคิดนอกกรอบเพื่อค้นหาวิธีการโจมตีที่ไม่คาดคิด