เจาะลึกเส้นทางสู่ Root: ไขรหัสลับในโลกไซเบอร์

เจาะลึกเส้นทางสู่ Root: ไขรหัสลับในโลกไซเบอร์

สำรวจและทำความเข้าใจเป้าหมาย

เมื่อต้องเผชิญหน้ากับ ระบบคอมพิวเตอร์ ใด ๆ การเริ่มต้นด้วยการ “สำรวจ” ถือเป็นขั้นตอนที่สำคัญที่สุดเสมอ เครื่องมืออย่าง Nmap ช่วยให้เห็นภาพรวมของบริการที่เปิดอยู่บนเป้าหมายได้อย่างรวดเร็ว มันเหมือนกับการมองหาประตูและหน้าต่างของบ้านที่เราต้องการจะเข้าไปทำความรู้จัก

ผลลัพธ์จากการสแกนเผยให้เห็น พอร์ต 21 (FTP), พอร์ต 22 (SSH) และ พอร์ต 80 (HTTP) ซึ่งบ่งบอกว่าระบบกำลังให้บริการเหล่านี้อยู่ การที่ FTP อนุญาตให้เข้าสู่ระบบแบบไม่ระบุตัวตน (anonymous login) นั้นเป็น สัญญาณแรก ที่น่าสนใจและเป็นจุดเริ่มต้นที่ดีในการค้นหาข้อมูลเบื้องต้น เพราะมันมักจะเป็นแหล่งเก็บไฟล์ที่ไม่ลับมากนัก แต่ก็อาจมีเบาะแสสำคัญซ่อนอยู่

ค้นหาเบาะแสจากจุดที่เข้าถึงได้

การเข้าสู่ระบบ FTP แบบไม่ระบุตัวตนทำให้พบไฟล์ที่น่าสนใจหลายไฟล์ ไม่ว่าจะเป็น flag.txt ที่อาจเป็นธงของผู้ใช้ ซึ่งเป็นเป้าหมายหนึ่งของเรา, note.txt ที่ให้คำใบ้เกี่ยวกับการมีอยู่ของไฟล์ secret.txt ในเว็บไดเรกทอรี และ todo.txt ที่พูดถึงเรื่อง SSH และไฟล์ id_rsa

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

การสำรวจเว็บไซต์ด้วยเครื่องมืออย่าง Gobuster ช่วยในการค้นหาไดเรกทอรีและไฟล์ที่ซ่อนอยู่บนเซิร์ฟเวอร์เว็บ ทำให้ค้นพบสิ่งต่าง ๆ เช่น /admin และ /robots.txt

จาก robots.txt พบว่ามีการบล็อกไม่ให้เข้าถึง /secret.txt ซึ่งยิ่งทำให้ไฟล์นี้ น่าสงสัย มากขึ้น การพยายามเข้าถึงไฟล์นั้นโดยตรงเผยให้เห็น SSH private key (id_rsa) ซึ่งเป็นกุญแจสำคัญในการเข้าถึงระบบผ่าน SSH และเป็นเป้าหมายถัดไปของเรา

เข้าถึงระบบในฐานะผู้ใช้งาน

เมื่อได้ private key มาอยู่ในมือ ก็สามารถใช้มันเพื่อเข้าสู่ระบบผ่าน SSH ในฐานะผู้ใช้งานที่ชื่อ geordi ได้สำเร็จ นี่เป็นก้าวสำคัญที่ทำให้เราสามารถเข้าไปสำรวจภายในระบบได้

การเข้าถึงในระดับผู้ใช้งานนี้ ทำให้สามารถค้นพบ user flag หรือธงของผู้ใช้ ซึ่งเป็นการยืนยันว่าได้เข้าถึงระบบในระดับผู้ใช้งานได้แล้ว ขั้นตอนต่อไปคือการยกระดับสิทธิ์ให้เป็น ผู้ดูแลระบบ (root) ซึ่งเป็นเป้าหมายสูงสุดในการควบคุมระบบ

ยกระดับสิทธิ์สู่การควบคุมเต็มรูปแบบ

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

พบว่าผู้ใช้งาน geordi สามารถเรียกใช้สคริปต์ Python ที่ชื่อ /opt/backup.py ด้วยสิทธิ์ root ได้โดยไม่ต้องใส่รหัสผ่าน นี่คือ ช่องทางทอง สู่การเป็น root เพราะหากเราสามารถควบคุมการทำงานของสคริปต์นี้ได้ ก็เท่ากับว่าเราสามารถสั่งงานอะไรก็ได้ด้วยสิทธิ์สูงสุด

การวิเคราะห์โค้ดของ backup.py เผยให้เห็นว่าสคริปต์มีการเรียกใช้คำสั่งภายนอกผ่าน subprocess.call() เพื่อ “cat” ไฟล์บันทึก แต่สิ่งที่สำคัญคือระบบไม่ได้ระบุ เส้นทาง (PATH) แบบเต็มสำหรับคำสั่ง cat นั่นหมายความว่า มันจะค้นหาไฟล์ cat ตามลำดับในตัวแปรสภาพแวดล้อม PATH

นี่คือ ช่องโหว่ ที่เรียกว่า PATH hijacking หรือ PATH environment variable manipulation ซึ่งเป็นเทคนิคที่พบบ่อยในการยกระดับสิทธิ์

เพื่อใช้ประโยชน์จากช่องโหว่นี้ ผู้โจมตีสามารถสร้างสคริปต์ที่มีชื่อว่า cat ขึ้นมาเองในไดเรกทอรีที่ถูกกำหนดให้มีลำดับความสำคัญสูงกว่าในตัวแปร PATH เช่น /tmp โดยใส่ คำสั่งอันตราย หรือ reverse shell payload เข้าไปในสคริปต์ปลอมนี้

เมื่อรัน sudo /opt/backup.py สคริปต์ backup.py จะเรียกใช้ cat ปลอมที่สร้างไว้ใน /tmp แทนที่จะเป็น /usr/bin/cat ของระบบ ทำให้ได้รับ root shell หรือสามารถสั่งงานในฐานะ root ได้สำเร็จ

การเข้าถึงในฐานะ root ทำให้สามารถอ่าน root flag และควบคุมระบบได้อย่างสมบูรณ์

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