เจาะระบบเบื้องต้น: ก้าวแรกสู่โลกแห่งการทดสอบการเจาะระบบ
การทดสอบการเจาะระบบ หรือที่รู้จักกันในชื่อ Penetration Testing เป็นทักษะสำคัญที่ช่วยให้เราเข้าใจว่าผู้ไม่หวังดีสามารถใช้ช่องโหว่ต่างๆ เพื่อเข้าถึงระบบได้อย่างไร การเรียนรู้ผ่านการลงมือปฏิบัติจริงบนแพลตฟอร์มอย่าง TryHackMe ถือเป็นวิธีที่ยอดเยี่ยมในการพัฒนาความสามารถด้าน Cybersecurity ได้อย่างรวดเร็ว
บทความนี้จะพาคุณไปสำรวจเส้นทางของการ “เจาะระบบ” เครื่องเป้าหมายแบบพื้นฐาน ตั้งแต่การค้นหาช่องโหว่ไปจนถึงการยกระดับสิทธิ์ เพื่อให้เห็นภาพรวมของกระบวนการทั้งหมด
การสอดแนมและค้นหาจุดอ่อน
การเริ่มต้นทุกการโจมตีคือการ สอดแนม (Reconnaissance) เพื่อรวบรวมข้อมูลเกี่ยวกับเป้าหมาย เครื่องมือสำคัญที่ขาดไม่ได้คือ Nmap ซึ่งช่วยให้เราสแกนหาพอร์ตที่เปิดอยู่และบริการที่กำลังทำงานอยู่บนเครื่องเป้าหมาย
จากการสแกนเบื้องต้น มักจะพบพอร์ตที่น่าสนใจ เช่น พอร์ต 22 สำหรับบริการ SSH และพอร์ต 80 สำหรับบริการ HTTP (เว็บไซต์) ซึ่งบ่งชี้ว่าเครื่องเป้าหมายมีเว็บเซิร์ฟเวอร์ทำงานอยู่
หลังจากนั้น การเจาะลึกที่พอร์ต 80 เป็นขั้นตอนต่อไป โดยใช้เครื่องมืออย่าง Gobuster เพื่อ แจกแจงไดเรกทอรี (Directory Enumeration) และไฟล์ที่ซ่อนอยู่บนเว็บเซิร์ฟเวอร์
หลายครั้งที่พบไฟล์ที่น่าสนใจอย่าง /robots.txt ซึ่งมักจะบอกใบ้ถึงไดเรกทอรีที่ไม่อนุญาตให้ Bots เข้าถึง แต่กลับเป็นเป้าหมายที่นักเจาะระบบสนใจ ตัวอย่างเช่น อาจเจอ /panel ซึ่งนำไปสู่หน้าเว็บที่มีฟังก์ชันการทำงานที่อาจมีช่องโหว่
ช่องโหว่และการเจาะระบบเบื้องต้น
เมื่อค้นพบไดเรกทอรีอย่าง /panel สิ่งที่ต้องทำคือสำรวจว่ามีช่องโหว่อะไรที่สามารถใช้ประโยชน์ได้บ้าง หนึ่งในช่องโหว่ที่พบบ่อยคือ ช่องโหว่การอัปโหลดไฟล์ (File Upload Vulnerability) ที่อนุญาตให้ผู้ใช้งานอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์โดยไม่มีการตรวจสอบที่เข้มงวด
ในสถานการณ์เช่นนี้ สามารถสร้าง PHP Reverse Shell ซึ่งเป็นสคริปต์ที่เมื่อถูกเรียกใช้งานบนเซิร์ฟเวอร์ จะทำการเชื่อมต่อกลับมายังเครื่องของนักเจาะระบบ ทำให้ได้ Shell หรือบรรทัดคำสั่งควบคุมเครื่องเป้าหมาย
ขั้นตอนคือ เตรียมสคริปต์ Reverse Shell ระบุ IP แอดเดรสและพอร์ตของเครื่องที่ใช้ฟัง แล้วทำการอัปโหลดไฟล์นี้ผ่านช่องโหว่บนหน้า /panel
จากนั้น ตั้งค่าโปรแกรมฟังการเชื่อมต่อ เช่น Netcat บนเครื่องของนักเจาะระบบ เมื่อเข้าถึง URL ของไฟล์ Reverse Shell ที่อัปโหลดไป (เช่น /uploads/shell.php) สคริปต์ก็จะทำงานและเชื่อมต่อกลับมา ทำให้ได้สิทธิ์ควบคุมเบื้องต้น ซึ่งมักจะเป็นสิทธิ์ของผู้ใช้ระดับต่ำ เช่น www-data
ยกระดับสิทธิ์สู่การควบคุมเต็มรูปแบบ
การได้ Shell ระดับต่ำเป็นเพียงจุดเริ่มต้น ขั้นตอนต่อไปคือการ ยกระดับสิทธิ์ (Privilege Escalation) เพื่อให้ได้สิทธิ์ผู้ดูแลระบบหรือ Root ซึ่งจะทำให้สามารถควบคุมเครื่องเป้าหมายได้อย่างสมบูรณ์
เทคนิคหนึ่งที่นิยมใช้คือการค้นหาไฟล์โปรแกรมที่มีบิต SUID (Set User ID) ซึ่งหมายความว่าโปรแกรมนั้นจะรันด้วยสิทธิ์ของผู้เป็นเจ้าของไฟล์นั้น ไม่ใช่สิทธิ์ของผู้ใช้งานที่เรียกใช้
เครื่องมือ find สามารถช่วยค้นหาไฟล์ SUID ได้ เมื่อพบไฟล์ที่น่าสนใจ เช่น /usr/bin/python ที่มีบิต SUID นักเจาะระบบสามารถใช้ประโยชน์จาก GTFOBins ซึ่งเป็นฐานข้อมูลที่รวบรวมวิธีการใช้ไบนารีต่างๆ เพื่อยกระดับสิทธิ์
การใช้คำสั่งที่เหมาะสมกับ Python SUID จะทำให้สามารถเปลี่ยนสิทธิ์จากผู้ใช้ระดับต่ำไปเป็น Root ได้ในทันที
เมื่อได้สิทธิ์ Root แล้ว ก็สามารถเข้าถึงไฟล์ทั้งหมดบนระบบ รวมถึงไฟล์ธง (Flag) ที่ซ่อนอยู่ เช่น user.txt ในไดเรกทอรีของผู้ใช้ และ root.txt ในไดเรกทอรี /root เพื่อยืนยันความสำเร็จของการเจาะระบบ
การฝึกฝนตามขั้นตอนเหล่านี้ซ้ำๆ จะช่วยให้มีความเข้าใจลึกซึ้งเกี่ยวกับการทำงานของระบบและช่องโหว่ต่างๆ ซึ่งเป็นพื้นฐานสำคัญสำหรับทุกคนที่สนใจในอาชีพด้านความปลอดภัยทางไซเบอร์