เส้นทางสู่ Root: เจาะระบบด้วยช่องโหว่ซอฟต์แวร์และการยกระดับสิทธิ์

เส้นทางสู่ Root: เจาะระบบด้วยช่องโหว่ซอฟต์แวร์และการยกระดับสิทธิ์

การทำความเข้าใจเทคนิคที่ใช้ในการโจมตีระบบเป็นหัวใจสำคัญของการเสริมสร้างความปลอดภัย บทความนี้จะพาเจาะลึกกระบวนการเจาะระบบเป้าหมาย ตั้งแต่การสำรวจเบื้องต้น การค้นหาช่องโหว่ ไปจนถึงการยกระดับสิทธิ์เพื่อเข้าควบคุมระบบได้อย่างสมบูรณ์ โดยใช้เทคนิคที่พบได้ทั่วไปในการทดสอบเจาะระบบ (Penetration Testing) ซึ่งจะช่วยให้มองเห็นความเสี่ยงและวิธีป้องกันที่ชัดเจนยิ่งขึ้น

สำรวจประตูสู่ระบบ: การสแกนเบื้องต้น

การเริ่มต้นสำรวจระบบเป้าหมายมักเริ่มจากการสแกนพอร์ตเพื่อหาบริการที่เปิดใช้งาน Nmap คือเครื่องมือหลักสำหรับขั้นตอนนี้

จากการสแกนพบพอร์ต 22 สำหรับ SSH และพอร์ต 80 สำหรับบริการ HTTP การพบเว็บเซิร์ฟเวอร์ที่เปิดอยู่บนพอร์ต 80 ถือเป็นจุดเริ่มต้นที่ดีสำหรับการตรวจสอบในขั้นถัดไป

ค้นหาเบาะแสบนหน้าเว็บ: การสืบสวนเชิงลึก

เมื่อทราบว่ามีเว็บเซิร์ฟเวอร์ทำงานอยู่ การเข้าถึงเว็บไซต์เพื่อสำรวจข้อมูลคือขั้นตอนต่อไป หน้าเว็บที่พอร์ต 80 แสดงเพียง “Hello world!” แต่การตรวจสอบ Source Code ของหน้าเว็บกลับพบเบาะแสสำคัญ: <!-- /nibbleblog/ directory --> นี่คือการชี้เป้าไปยังไดเรกทอรีที่ซ่อนอยู่

เมื่อเข้าถึง http://[IP]/nibbleblog/ พบแพลตฟอร์มบล็อก Nibbleblog การระบุเวอร์ชันเป็นสิ่งสำคัญยิ่ง และจากการตรวจสอบพบว่าเป็นเวอร์ชัน 4.0.3

ใช้ประโยชน์จากช่องโหว่: เมื่อโปรแกรมมีจุดอ่อน

เมื่อได้ชื่อซอฟต์แวร์และเวอร์ชันมาแล้ว ขั้นตอนต่อไปคือการค้นหาช่องโหว่ที่รู้จัก Searchsploit เป็นแหล่งข้อมูลชั้นเยี่ยมสำหรับงานนี้

การค้นหา “nibbleblog 4.0.3” ใน Searchsploit พบช่องโหว่ Arbitrary File Upload ซึ่งหมายถึงความสามารถในการอัปโหลดไฟล์ใดๆ ขึ้นไปยังเซิร์ฟเวอร์โดยไม่ได้รับการตรวจสอบ ช่องโหว่นี้มักนำไปสู่การรันโค้ดบนเซิร์ฟเวอร์ได้โดยง่าย

Metasploit Framework มีโมดูลสำเร็จรูป exploit/unix/webapp/nibbleblog_file_upload ที่สามารถใช้ประโยชน์จากช่องโหว่นี้ได้อย่างมีประสิทธิภาพ เพียงกำหนด RHOSTS (IP เป้าหมาย), LHOST (IP เครื่องของเรา) และ LPORT (พอร์ตรับการเชื่อมต่อ) โมดูลจะทำการอัปโหลด Reverse Shell เพื่อให้ได้การเชื่อมต่อกลับมายังเครื่องเรา ทำให้เข้าถึงระบบในฐานะผู้ใช้ www-data ซึ่งเป็นผู้ใช้ของเว็บเซิร์ฟเวอร์

ยกระดับสิทธิ์สู่ผู้ดูแลสูงสุด: จาก Shell สู่ Root

การเข้าถึงในฐานะผู้ใช้ www-data เป็นเพียงก้าวแรก เป้าหมายคือการได้สิทธิ์ root ซึ่งเป็นผู้ดูแลสูงสุด การตรวจสอบสิทธิ์ที่ผู้ใช้ปัจจุบันทำได้ด้วยคำสั่ง sudo -l คือขั้นตอนสำคัญในการหาทางยกระดับสิทธิ์

จากการตรวจสอบพบว่าผู้ใช้ www-data สามารถรันสคริปต์ /usr/bin/nibbler.py ด้วยสิทธิ์ root โดยไม่จำเป็นต้องใช้รหัสผ่าน นี่คือจุดน่าสนใจ

เมื่อตรวจสอบโค้ดของสคริปต์ nibbler.py พบว่ามีการรับค่าจากผู้ใช้และนำไปประมวลผลด้วยฟังก์ชันที่สามารถสั่งรันคำสั่ง Shell ได้โดยตรง นี่คือช่องโหว่ที่เรียกว่า Command Injection

ด้วยช่องโหว่นี้ การได้สิทธิ์ root จึงไม่ใช่เรื่องยาก เพียงรัน sudo /usr/bin/nibbler.py และเมื่อสคริปต์ถาม input ก็ใส่คำสั่งที่ต้องการ เช่น import os; os.system("bash") หรือเพียงแค่ sh ก็จะสามารถเปิด Shell ใหม่ด้วยสิทธิ์ root ได้ทันที

กระบวนการทั้งหมดนี้แสดงให้เห็นความสำคัญของการสแกนหาช่องโหว่ การวิเคราะห์ข้อมูล การใช้เครื่องมือที่เหมาะสม และการทำความเข้าใจกลไกการยกระดับสิทธิ์ ซึ่งเป็นพื้นฐานในการทำความเข้าใจและเสริมสร้างความปลอดภัยของระบบให้แข็งแกร่งยิ่งขึ้น