
เจาะระบบปฏิบัติการ Blackout: ไขปริศนา CTF แห่งโลกไซเบอร์
การเริ่มต้นสำรวจ: มองหาจุดอ่อน
ในโลกของการ เจาะระบบ หรือ Penetration Testing การเริ่มต้นที่สำคัญที่สุดคือการสำรวจเป้าหมายอย่างละเอียด เปรียบเหมือนนักสืบที่ต้องหาเบาะแสแรก เพื่อค้นหาว่ามีพอร์ตอะไรเปิดอยู่บ้าง และบริการใดที่กำลังทำงานอยู่บนระบบนั้นๆ
การใช้เครื่องมืออย่าง Nmap เป็นสิ่งจำเป็นอย่างยิ่ง ในการสแกนหาพอร์ตที่เปิดเผย เช่น พอร์ต 22 สำหรับบริการ SSH หรือพอร์ต 80/443 สำหรับบริการ HTTP/HTTPS ที่เราใช้งานกันทั่วไป
เมื่อพบบริการเว็บ การตรวจสอบเว็บไซต์เพื่อหาไดเรกทอรีที่ซ่อนอยู่ ไฟล์สำคัญ หรือช่องโหว่ที่อาจเกิดขึ้น ก็เป็นขั้นตอนถัดไปที่ต้องทำ เครื่องมืออย่าง gobuster หรือ nikto ช่วยให้งานนี้ง่ายขึ้นมากในการไล่ดูโครงสร้างของเว็บแอปพลิเคชัน เพื่อหาความผิดปกติ
ค้นพบช่องโหว่และเข้าถึงระบบผู้ใช้งาน
เมื่อสำรวจไปเรื่อยๆ มักจะพบกับแอปพลิเคชันหรือแพลตฟอร์มที่รู้จักกันดี และบางครั้งก็มาพร้อมกับ ช่องโหว่ (Vulnerability) ที่ถูกเปิดเผยสู่สาธารณะ ในกรณีนี้ การเจอแพลตฟอร์มอย่าง Limesurvey ถือเป็นโอกาสทอง
เพราะแพลตฟอร์มนี้มีช่องโหว่ CVE-2022-24151 ซึ่งเป็นประเภท Stored Cross-Site Scripting (XSS) ที่สามารถนำไปสู่การรันคำสั่งจากระยะไกล (Remote Code Execution หรือ RCE) ได้เลยทีเดียว
การใช้ประโยชน์จากช่องโหว่ XSS นี้ ทำให้สามารถแทรกโค้ดอันตรายเข้าไปในระบบ เมื่อผู้ดูแลระบบเข้ามาดูหน้าเว็บที่มีโค้ดนั้น ก็จะเกิดการทำงานตามคำสั่งที่ถูกแทรกไว้ ส่งผลให้ได้ Reverse Shell กลับมา ซึ่งหมายถึงการได้ควบคุมเครื่องเป้าหมายในระดับผู้ใช้งานทั่วไป (User Access)
จากตรงนี้ การสำรวจภายในระบบเพื่อหาไฟล์สำคัญ เช่น ไฟล์คอนฟิกที่มีข้อมูล Credentials หรือรหัสผ่าน กลายเป็นภารกิจต่อไป บ่อยครั้งที่ข้อมูลเหล่านี้จะถูกเก็บไว้ในไฟล์ต่างๆ เช่น config.php และเมื่อพบรหัสผ่านที่ถูกต้อง ก็สามารถใช้มันเพื่อเข้าสู่ระบบผ่าน SSH ได้อย่างมั่นคง
ยกระดับสิทธิ์: สู่การเป็นผู้ดูแลระบบ
หลังจากที่ได้สิทธิ์ผู้ใช้งานทั่วไปแล้ว เป้าหมายสูงสุดคือการยกระดับสิทธิ์ไปเป็นผู้ดูแลระบบ (Root Privilege Escalation) ขั้นตอนนี้ต้องอาศัยการค้นหาความผิดปกติ หรือการตั้งค่าที่ไม่ถูกต้องในระบบ
ตัวอย่างเช่น การมองหาไฟล์ที่มีสิทธิ์ SUID (Set User ID) ซึ่งอนุญาตให้รันไฟล์นั้นด้วยสิทธิ์ของเจ้าของไฟล์ ไม่ใช่สิทธิ์ของผู้ใช้งานที่รัน
ในการเจาะระบบครั้งนี้ พบว่ามีสคริปต์ Python ที่ชื่อว่า /opt/cleanup.py ซึ่งมีสิทธิ์ sudo ให้รันโดยผู้ใช้งานทั่วไปได้ โดยสคริปต์นี้จะเรียกใช้งานสคริปต์อื่นที่ชื่อว่า /opt/tmp_manager.py และสคริปต์ tmp_manager.py นี้มีการใช้คำสั่ง os.system ร่วมกับการจัดการไฟล์ logrotate ซึ่งเป็นจุดอ่อนสำคัญ
สคริปต์ tmp_manager.py ไม่ได้ตรวจสอบอินพุตอย่างเหมาะสม ก่อนนำไปใช้ในคำสั่ง tar ทำให้สามารถ แทรกคำสั่ง (Command Injection) เข้าไปได้ ด้วยการสร้างไฟล์ logrotate ที่มีชื่อพิเศษ
เมื่อ tmp_manager.py พยายามประมวลผลไฟล์นั้น คำสั่งที่ถูกแทรกก็จะถูกรันด้วยสิทธิ์ root ส่งผลให้ได้ Root Shell และควบคุมระบบได้โดยสมบูรณ์
บทเรียนจากการเจาะระบบ
การเจาะระบบ Operation Winter Blackout ครั้งนี้ แสดงให้เห็นถึงความสำคัญของการเข้าใจช่องโหว่ในแต่ละระดับ ตั้งแต่การสำรวจเบื้องต้น การใช้ประโยชน์จากช่องโหว่ในเว็บแอปพลิเคชัน ไปจนถึงการยกระดับสิทธิ์ผ่านการตั้งค่าระบบที่ไม่ปลอดภัย
ความสำเร็จในการเข้าควบคุมระบบได้ทั้งหมด มาจากการผสมผสานความรู้ด้าน ช่องโหว่ XSS การจัดการ สิทธิ์ผู้ใช้งาน และการใช้ประโยชน์จาก Command Injection ในสคริปต์ที่รันด้วยสิทธิ์สูง การเรียนรู้จากกรณีศึกษาเช่นนี้ ช่วยให้เข้าใจแนวคิดและเทคนิคที่แฮกเกอร์ใช้ และสามารถนำไปประยุกต์ใช้ในการป้องกันระบบของตัวเองได้อย่างมีประสิทธิภาพมากยิ่งขึ้น