
ไขรหัสความปลอดภัย: บทเรียนจากการเจาะระบบแบบ “ง่าย” ที่ใครก็พลาดได้
โลกของการรักษาความปลอดภัยไซเบอร์มักจะเต็มไปด้วยกลเม็ดซับซับซ้อน แต่บ่อยครั้งที่ช่องโหว่พื้นฐานกลับเป็นทางเข้าที่ถูกละเลยมากที่สุด การศึกษาเคสหนึ่งที่แสดงให้เห็นว่าการละเลยจุดเล็กๆ น้อยๆ สามารถนำไปสู่การควบคุมระบบทั้งหมดได้อย่างไร จึงเป็นบทเรียนสำคัญที่ทุกคนควรเรียนรู้
เราจะพาไปดูกลยุทธ์ที่ใช้ในการเข้าถึงระบบ ตั้งแต่การค้นพบช่องโหว่เริ่มต้น ไปจนถึงการยกระดับสิทธิ์จนควบคุมได้เบ็ดเสร็จ ทุกขั้นตอนล้วนเกิดจากความผิดพลาดพื้นฐานที่ป้องกันได้ง่ายๆ
การสำรวจเบื้องต้น: กุญแจสู่การเปิดประตู
การเริ่มต้นโจมตีใดๆ มักจะเริ่มจากการ สำรวจ ระบบเป้าหมายอย่างละเอียด การสแกนหาพอร์ตที่เปิดอยู่และการค้นหาไดเรกทอรีที่สำคัญบนเว็บเซิร์ฟเวอร์ เป็นสิ่งแรกที่ต้องทำ
จากการสำรวจพบว่ามีพอร์ต HTTP และ SSH เปิดใช้งานอยู่ นอกจากนี้ยังเจอไฟล์ที่น่าสนใจอย่าง mini.php ซึ่งเป็นส่วนหนึ่งของ Zerion Mini ซึ่งเป็น web shell ที่มักจะถูกติดตั้งไว้ และยังพบหน้า phpmyadmin ที่เป็นเครื่องมือจัดการฐานข้อมูลอีกด้วย การเจอสิ่งเหล่านี้เป็นสัญญาณที่ดีว่าอาจมีช่องโหว่รออยู่
เจาะลึก Web Shell: รอยโหว่ที่ถูกละเลย
Web shell คือเครื่องมือที่ช่วยให้ผู้โจมตีสามารถเรียกใช้คำสั่งบนเซิร์ฟเวอร์เว็บได้โดยตรงผ่านเว็บเบราว์เซอร์ ซึ่งในกรณีของ Zerion Mini มักมาพร้อมกับ ข้อมูลรับรองเริ่มต้น ที่ไม่ได้ถูกเปลี่ยนแปลงจากค่าโรงงาน
การใช้ชื่อผู้ใช้และรหัสผ่านเริ่มต้นที่คาดเดาได้ง่าย เช่น “admin:zerion” หรือคล้ายกัน ทำให้สามารถเข้าถึง web shell ได้ทันที เมื่อเข้ามาได้แล้ว การควบคุมระบบก็เริ่มขึ้น สามารถเรียกใช้คำสั่งเพื่อสำรวจไฟล์ต่างๆ และค้นพบ config.php ที่เก็บข้อมูลสำคัญ
ไฟล์ config.php นี้มักจะบรรจุ ข้อมูลรับรองฐานข้อมูล ซึ่งเป็นกุญแจสำคัญต่อไปในการเข้าถึงส่วนอื่นๆ ของระบบ ในหลายกรณี ข้อมูลตรงนี้ก็ยังคงใช้รหัสผ่านเริ่มต้นหรือรหัสผ่านที่อ่อนแอเช่นกัน
เชื่อมโยงช่องโหว่: จากฐานข้อมูลสู่สิทธิ์ผู้ใช้งาน
เมื่อได้ ข้อมูลรับรองฐานข้อมูล มาแล้ว สิ่งต่อไปคือการลองใช้รหัสผ่านเหล่านั้นกับบริการอื่นๆ ที่เปิดอยู่ โดยเฉพาะอย่างยิ่งกับบริการ SSH ซึ่งเป็นประตูสู่การเข้าถึงระบบโดยตรง
พบว่าข้อมูลรับรองที่ได้จาก config.php สามารถใช้เข้าสู่ระบบ SSH ในฐานะผู้ใช้งานปกติได้สำเร็จ นี่คือตัวอย่างคลาสสิกของภัยคุกคามที่เกิดจาก การใช้รหัสผ่านซ้ำ หรือการตั้งรหัสผ่านที่อ่อนแอสำหรับหลายบริการ การที่ผู้ใช้คนหนึ่งมีรหัสผ่าน “root” หรือรหัสผ่านที่เดาง่ายสำหรับบัญชีผู้ใช้งานทั่วไป ถือเป็นความเสี่ยงที่ร้ายแรงมาก
การได้สิทธิ์เข้าถึงในฐานะผู้ใช้งานปกติ ถือเป็นก้าวสำคัญ เพราะตอนนี้สามารถสำรวจระบบภายในได้อย่างอิสระมากขึ้น เพื่อหาช่องทางในการยกระดับสิทธิ์ต่อไป
ยกระดับสิทธิ์สู่สูงสุด: เมื่อ MySQL กลายเป็นอาวุธ
หลังจากเข้าถึงในฐานะผู้ใช้งานปกติ สิ่งที่ต้องทำคือการตรวจสอบว่าผู้ใช้นั้นมีสิทธิ์พิเศษอะไรบ้าง หนึ่งในคำสั่งที่สำคัญคือ sudo -l ซึ่งจะแสดงรายการคำสั่งที่ผู้ใช้งานสามารถรันด้วยสิทธิ์ root ได้โดยไม่ต้องใส่รหัสผ่าน
ในกรณีนี้ พบว่าผู้ใช้งานสามารถรันคำสั่ง mysql ด้วยสิทธิ์ root ได้โดยไม่ต้องใช้รหัสผ่าน (NOPASSWD) นี่คือช่องโหว่ร้ายแรงที่สามารถนำไปสู่การยกระดับสิทธิ์ได้อย่างง่ายดาย
ด้วยความช่วยเหลือจาก GTFOBins ซึ่งเป็นแหล่งรวมวิธีการยกระดับสิทธิ์ผ่านไบนารีของระบบต่างๆ เราพบวิธีที่จะใช้คำสั่ง mysql ที่รันด้วย sudo เพื่อเรียกใช้ shell ด้วยสิทธิ์ root ได้ทันที เพียงแค่ป้อนคำสั่งที่ถูกต้อง ระบบก็จะเปิดประตูให้เข้าถึงในฐานะ root หรือผู้ดูแลสูงสุดของระบบได้สำเร็จ
บทเรียนจากกรณีนี้ชี้ให้เห็นว่าการละเลยการเปลี่ยนรหัสผ่านเริ่มต้น การใช้รหัสผ่านที่อ่อนแอ และการกำหนดค่า sudo ที่ไม่รัดกุม ล้วนเป็นปัจจัยสำคัญที่ทำให้ระบบตกอยู่ในความเสี่ยงอย่างมหันต์ การปรับปรุงความปลอดภัยในจุดเหล่านี้จึงเป็นสิ่งจำเป็นอย่างยิ่ง