
เจาะลึกเส้นทางสู่การยึดระบบ: บทเรียนจาก BlackHat
การทดสอบเจาะระบบ หรือ Penetration Testing คือกระบวนการสำคัญในการค้นหาจุดอ่อนในระบบคอมพิวเตอร์และเครือข่าย เพื่อให้เราสามารถแก้ไขก่อนที่ผู้ไม่หวังดีจะเข้ามาโจมตีได้จริง ลองมาดูกันว่ากระบวนการเหล่านี้ทำงานอย่างไร โดยอ้างอิงจากกรณีศึกษาที่น่าสนใจของระบบหนึ่งชื่อ BlackHat ที่จำลองสถานการณ์จริงขึ้นมา
การสำรวจและรวบรวมข้อมูลเบื้องต้น
ทุกการโจมตีหรือทดสอบเจาะระบบเริ่มต้นด้วยการสำรวจ เป้าหมายคือการทำความเข้าใจโครงสร้างและบริการที่เปิดใช้งานอยู่บนเป้าหมายให้ได้มากที่สุด ในขั้นตอนนี้ การสแกนพอร์ต เป็นสิ่งแรกที่ต้องทำ เพื่อดูว่ามีบริการอะไรเปิดอยู่บ้าง เช่น SSH สำหรับการเข้าถึงระยะไกล หรือ HTTP สำหรับเว็บเซิร์ฟเวอร์
เมื่อพบพอร์ต 80 ซึ่งเป็นพอร์ตของบริการเว็บ การตรวจสอบ เว็บไซต์ จึงเป็นขั้นตอนต่อไป อาจมีการค้นหาไดเรกทอรีที่ซ่อนอยู่ เช่น wordpress ที่มักจะเป็นเป้าหมายยอดนิยม ด้วยเครื่องมือเฉพาะทาง เราจะสามารถระบุชื่อผู้ใช้งานบนแพลตฟอร์มนั้น ๆ ได้ ซึ่งเป็นข้อมูลสำคัญสำหรับการโจมตีในขั้นต่อไป
เจาะเข้าระบบและรวบรวมข้อมูลภายใน
เมื่อรู้ว่าเป้าหมายใช้ WordPress ก็ได้เวลาเจาะลึกเข้าไป ตัวอย่างเช่น การค้นหาไฟล์ สำรองการตั้งค่า ที่อาจมีข้อมูลสำคัญหลุดออกมา บางครั้งไฟล์เหล่านี้ถูกทิ้งไว้โดยไม่ได้ตั้งใจ และอาจเปิดเผย ข้อมูลการเข้าถึงฐานข้อมูล เช่น ชื่อผู้ใช้และรหัสผ่าน
ด้วยข้อมูลเหล่านี้ เราอาจเข้าถึง ฐานข้อมูล ได้โดยตรง ซึ่งเป็นขุมทรัพย์ของข้อมูลต่าง ๆ รวมถึงแฮชรหัสผ่านของผู้ใช้ ในกรณีของ BlackHat รหัสผ่านฐานข้อมูลที่พบกลับไม่ได้ใช้สำหรับเข้าระบบปฏิบัติการโดยตรง แต่เป็นกุญแจสำคัญในการเข้าถึงข้อมูลเพื่อนำไปสู่การเจาะเข้าระบบในภายหลัง
การใช้ช่องโหว่บน WordPress บางครั้งสามารถทำได้ผ่าน ปลั๊กอินหรือฟังก์ชันเฉพาะ ที่เปิดโอกาสให้รันคำสั่งจากระยะไกลได้ โดยการสร้าง เพย์โหลด (Payload) ที่เป็นโค้ดอันตรายในรูปแบบของสคริปต์ PHP จากนั้นจึงอัปโหลดและสั่งให้ทำงาน เพื่อสร้าง Shell ย้อนกลับ (Reverse Shell) ที่จะทำให้ผู้ทดสอบสามารถควบคุมเครื่องเป้าหมายได้ในระดับผู้ใช้งานทั่วไป และเข้าถึงไฟล์สำคัญอย่าง user.txt ซึ่งเป็นเครื่องยืนยันความสำเร็จในขั้นแรก
การยกระดับสิทธิ์สู่การควบคุมสูงสุด
การเข้าถึงระบบในระดับผู้ใช้งานทั่วไปนั้นยังไม่เพียงพอ เป้าหมายสุดท้ายคือการได้สิทธิ์ root หรือสิทธิ์ผู้ดูแลระบบ เพื่อควบคุมเครื่องได้อย่างสมบูรณ์ ขั้นตอนนี้เรียกว่า การยกระดับสิทธิ์ (Privilege Escalation)
สิ่งแรกที่ต้องทำคือตรวจสอบว่าผู้ใช้ปัจจุบันมี สิทธิ์ sudo อะไรบ้าง หรือมีโปรแกรมใดที่สามารถรันด้วยสิทธิ์ root โดยไม่ต้องใส่รหัสผ่าน หากพบโปรแกรมที่สามารถรันด้วยสิทธิ์ root ได้ ให้ตรวจสอบ โค้ดของโปรแกรม นั้นอย่างละเอียด โดยเฉพาะอย่างยิ่งหากโปรแกรมนั้นเรียกใช้คำสั่งภายนอกโดยไม่ได้ระบุ พาธ (PATH) แบบเต็ม
ในกรณีของ BlackHat มีสคริปต์ Python ที่ถูกตั้งค่าให้รันด้วยสิทธิ์ root โดยไม่มีการตรวจสอบรหัสผ่าน และสคริปต์นั้นเรียกใช้คำสั่ง whoami ซึ่งเป็นคำสั่งพื้นฐานที่ใช้แสดงชื่อผู้ใช้ แต่ไม่ได้ระบุพาธของ whoami อย่างชัดเจน นี่คือช่องโหว่สำคัญที่เรียกว่า Path Hijacking
ผู้ทดสอบสามารถสร้างสคริปต์ปลอมชื่อ whoami ที่มีโค้ดสำหรับให้ สิทธิ์ root shell แล้วนำไปวางไว้ในไดเรกทอรีที่ถูกค้นหาก่อนไดเรกทอรีของระบบ จากนั้นสั่งให้สคริปต์ Python ต้นฉบับทำงาน ด้วยการปรับแต่ง ตัวแปร PATH ชั่วคราว เมื่อสคริปต์ Python เรียกใช้ whoami มันก็จะไปเรียกใช้สคริปต์ปลอมที่สร้างขึ้นแทน ส่งผลให้ได้ root shell และสามารถเข้าถึงไฟล์ root.txt ซึ่งเป็นเป้าหมายสุดท้ายของการทดสอบนี้
กระบวนการทั้งหมดนี้แสดงให้เห็นว่าการค้นหาและเข้าใจช่องโหว่ รวมถึงการใช้เครื่องมือที่เหมาะสม เป็นสิ่งสำคัญในการรักษาความปลอดภัยของระบบ ทุกจุดอ่อน ไม่ว่าจะเล็กน้อยแค่ไหน ก็สามารถนำไปสู่การควบคุมระบบได้อย่างสมบูรณ์หากไม่ได้รับการแก้ไข