
แกะรอยความลับใน “Wonderland”: เส้นทางสู่การยึดครองระบบ
ในโลกไซเบอร์ ความท้าทายอย่าง Capture The Flag (CTF) เปรียบเหมือนเกมล่าสมบัติที่ต้องใช้ไหวพริบและความรู้ด้านความปลอดภัยเพื่อค้นหาธงที่ซ่อนอยู่ การทำ Penetration Testing หรือการทดสอบเจาะระบบก็เช่นกัน เป็นการจำลองสถานการณ์โจมตีเพื่อหาช่องโหว่ ก่อนที่ผู้ไม่หวังดีจะเข้ามาพบเจอ
ลองจินตนาการว่ามีระบบหนึ่งชื่อ “Wonderland” ที่ถูกสร้างขึ้นมาเพื่อเป็นสนามฝึก เราจะพาคุณไปสำรวจเส้นทางจากจุดเริ่มต้นสู่การควบคุมระบบนี้ได้อย่างสมบูรณ์ เผยให้เห็นขั้นตอนการทำงานของนักทดสอบเจาะระบบมืออาชีพ
กุญแจดอกแรกสู่โลกที่ไม่รู้จัก: การสำรวจเบื้องต้น
ทุกการเจาะระบบเริ่มต้นด้วยการสำรวจ การทำ Reconnaissance เป็นขั้นตอนสำคัญที่ต้องทำอย่างละเอียด เพื่อทำความเข้าใจเป้าหมายของเราให้ได้มากที่สุด ในกรณีของ Wonderland เครื่องมืออย่าง Nmap คือเพื่อนคู่ใจที่ขาดไม่ได้
จากการสแกน เราพบว่าระบบมีพอร์ตสำคัญเปิดอยู่หลายพอร์ต ที่โดดเด่นคือ พอร์ต 22 (SSH) สำหรับการเข้าถึงแบบ Secure Shell และ พอร์ต 80 (HTTP) ซึ่งบ่งบอกว่ามีบริการเว็บทำงานอยู่
การตรวจสอบเพิ่มเติมด้วย Nmap เผยให้เห็นว่าเซิร์ฟเวอร์เว็บที่ใช้งานคือ Apache httpd เวอร์ชัน 2.4.49 และระบบปฏิบัติการคือ Ubuntu ข้อมูลเหล่านี้เป็นเบาะแสสำคัญที่จะนำไปสู่ขั้นตอนต่อไป
เจาะลึกเว็บไซต์: การค้นหาทางเข้าที่ซ่อนอยู่
เมื่อรู้ว่ามีเว็บไซต์ทำงานอยู่บน พอร์ต 80 เป้าหมายต่อไปคือการค้นหาไฟล์หรือไดเรกทอรีที่อาจถูกซ่อนไว้ เพื่อหาทางเข้าถึงข้อมูลสำคัญหรือช่องโหว่
เครื่องมืออย่าง Dirb หรือ Gobuster ถูกนำมาใช้เพื่อ Enumeration หรือการแจกแจงโครงสร้างของเว็บไซต์ มันจะพยายามเดาสุ่มชื่อไดเรกทอรีและไฟล์ยอดนิยม
ผลลัพธ์จากการสแกนเผยให้เห็นไดเรกทอรีที่น่าสนใจ นั่นคือ /nibbleblog/ ซึ่งเป็นสัญญาณว่าเว็บไซต์นี้อาจกำลังรันแอปพลิเคชันบล็อกชื่อ Nibbleblog อยู่
การตรวจสอบเพิ่มเติมด้วยเครื่องมือเช่น Nikto ยืนยันว่าแอปพลิเคชันที่ใช้งานคือ Nibbleblog เวอร์ชัน 4.0.3 ซึ่งเป็นข้อมูลสำคัญในการค้นหาช่องโหว่เฉพาะทาง
เปิดประตูสู่ระบบ: การค้นพบช่องโหว่และการเข้าถึงเบื้องต้น
เมื่อทราบชื่อและเวอร์ชันของแอปพลิเคชันแล้ว ขั้นตอนต่อไปคือการค้นหาช่องโหว่ที่เกี่ยวข้อง Searchsploit เป็นฐานข้อมูลขนาดใหญ่ของช่องโหว่และ Exploit ต่างๆ ที่นักวิจัยด้านความปลอดภัยได้ค้นพบไว้
จากการค้นหา พบว่า Nibbleblog 4.0.3 มีช่องโหว่หลายอย่าง หนึ่งในนั้นคือ Local File Inclusion (LFI) ซึ่งช่วยให้เราสามารถอ่านไฟล์ภายในเซิร์ฟเวอร์ได้
เราใช้ช่องโหว่ LFI นี้เพื่ออ่านไฟล์คอนฟิก users.xml ที่อยู่ภายในโครงสร้างของ Nibbleblog ซึ่งเผยให้เห็นชื่อผู้ใช้ alice และรหัสผ่านที่เข้ารหัสไว้ หลังจากถอดรหัส ก็พบว่ารหัสผ่านคือ alice เช่นกัน
เมื่อมีสิทธิ์เข้าสู่ระบบในฐานะผู้ดูแลระบบ เราสามารถใช้ประโยชน์จากช่องโหว่ Authenticated Remote Code Execution (RCE) ผ่านการอัปโหลดไฟล์ เราสร้างไฟล์ PHP Reverse Shell ซึ่งเป็นสคริปต์ที่จะเชื่อมต่อกลับมายังเครื่องของเรา
เมื่ออัปโหลดและเรียกใช้งานไฟล์นี้ ระบบของ Wonderland ก็เชื่อมต่อกลับมาหาเรา ทำให้เราได้ Shell หรือสิทธิ์ในการควบคุมระบบในระดับผู้ใช้ www-data ซึ่งเป็นสิทธิ์เริ่มต้นของเว็บเซิร์ฟเวอร์
สู่จุดสูงสุด: การยกระดับสิทธิ์ในระบบ
แม้จะได้สิทธิ์ในการเข้าถึงแล้ว แต่การเป็นเพียงผู้ใช้ www-data ยังไม่เพียงพอต่อการควบคุมระบบทั้งหมด เป้าหมายสูงสุดคือการยกระดับสิทธิ์ให้เป็น root หรือผู้ดูแลสูงสุดของระบบ
เราตรวจสอบไฟล์และโปรแกรมที่มีคุณสมบัติพิเศษ SUID (Set User ID) ซึ่งช่วยให้โปรแกรมทำงานด้วยสิทธิ์ของเจ้าของไฟล์ ไม่ใช่สิทธิ์ของผู้เรียกใช้งาน
สิ่งที่น่าสนใจคือการพบไฟล์ /usr/bin/python ที่ถูกตั้งค่าเป็น SUID โดยปกติแล้ว Python ไม่ควรมีสิทธิ์พิเศษนี้ นี่คือเบาะแสสำคัญ
เราใช้ฐานข้อมูล GTFObins ซึ่งรวบรวมวิธีการยกระดับสิทธิ์ผ่านไบนารีต่างๆ ที่มีคุณสมบัติพิเศษนี้
ด้วยคำสั่งที่เหมาะสมผ่าน Python ที่เป็น SUID เราสามารถเปลี่ยนสิทธิ์จาก www-data ไปสู่ root ได้สำเร็จ ทำให้เรามีอำนาจในการควบคุมระบบ Wonderland ได้อย่างเบ็ดเสร็จ
เส้นทางในการเจาะระบบ Wonderland นี้แสดงให้เห็นถึงความสำคัญของการทำตามขั้นตอนอย่างเป็นระบบ ตั้งแต่การสำรวจ การค้นหาช่องโหว่ การเข้าถึงระบบ ไปจนถึงการยกระดับสิทธิ์ แต่ละขั้นตอนล้วนต้องอาศัยความรู้ ความเข้าใจ และเครื่องมือที่เหมาะสม เป็นการย้ำเตือนว่าการรักษาความปลอดภัยของระบบนั้นเป็นเรื่องที่ซับซ้อนและต้องมีการป้องกันหลายชั้น เพื่อป้องกันไม่ให้ผู้ไม่ประสงค์ดีค้นพบและใช้ประโยชน์จากช่องโหว่ที่อาจซ่อนอยู่.