ถอดรหัสลับ CTF ด้วยพลัง Python: ภารกิจตามล่าธงสุดมันส์

ถอดรหัสลับ CTF ด้วยพลัง Python: ภารกิจตามล่าธงสุดมันส์

โลกของ Capture The Flag (CTF) เปรียบเหมือนสนามรบดิจิทัลที่ผู้เล่นต้องใช้ทักษะด้านความปลอดภัยไซเบอร์หลากหลายแขนง เพื่อตามหา “ธง” ที่ซ่อนอยู่ การแข่งขันเหล่านี้ไม่ได้เป็นเพียงเกม แต่ยังเป็นเวทีฝึกฝนที่ยอดเยี่ยม ในภารกิจหนึ่ง ผู้เข้าร่วมต้องเผชิญกับความท้าทายในการเข้าถึงไฟล์ธงที่ถูกซ่อนไว้อย่างแนบเนียน และแน่นอนว่า Python ได้กลายเป็นเครื่องมือสำคัญในการไขปริศนานี้

เริ่มต้นด้วยการสำรวจ: มองหาช่องทางเข้า

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

ในกรณีนี้ การค้นพบว่าพอร์ต 80 (HTTP) และพอร์ต 22 (SSH) เปิดอยู่ ถือเป็นเบาะแสแรกที่น่าสนใจ การตรวจสอบเว็บไซต์ที่ทำงานอยู่บนพอร์ต 80 เป็นขั้นตอนต่อไป โดยมีคำแนะนำที่ซ่อนอยู่ในไฟล์ robots.txt ซึ่งมักใช้บอก Search Engine ว่าไม่ให้เข้าถึงส่วนไหนของเว็บไซต์ แต่บ่อยครั้งมันกลับกลายเป็นคลังเก็บเบาะแสสำคัญสำหรับนักเจาะระบบ

แกะรอยเบาะแสจากเว็บที่ซับซ้อน

การค้นหาหน้าเว็บหรือไดเรกทอรีที่ซ่อนอยู่เป็นอีกหนึ่งกลยุทธ์สำคัญ เครื่องมืออย่าง Gobuster ช่วยในการบรูทฟอร์ซชื่อไดเรกทอรี ทำให้ค้นพบ /admin และ /files

ภายในไดเรกทอรี /files กลับพบไฟล์ที่น่าสนใจอย่าง access.log (บันทึกการเข้าถึง) และ secret.txt ซึ่งถือเป็นแหล่งข้อมูลที่มีค่า

ไฟล์ secret.txt เป็นตัวเปลี่ยนเกม เพราะมันบรรจุสตริงที่เข้ารหัสด้วย Base64 ซึ่งเป็นรูปแบบการเข้ารหัสพื้นฐานที่พบได้ทั่วไปในงาน CTF การถอดรหัสออกมา เผยให้เห็นข้อความที่เป็นกุญแจสำคัญ: “Use the magic of python to get the flag from /home/w1seguy/flag.txt” นี่คือการยืนยันว่า Python คือหนทางที่ถูกต้อง

เมื่อ Python คือกุญแจสำคัญสู่ธง

หลังจากได้เบาะแสว่าธงซ่อนอยู่ที่ /home/w1seguy/flag.txt และมีคำใบ้ให้ใช้ Python สิ่งที่ต้องทำต่อไปคือการเข้าถึงเชลล์บนเครื่องเป้าหมาย ไม่ว่าจะผ่านการเข้าสู่ระบบ SSH ด้วยข้อมูลรับรองที่หามาได้ หรือช่องโหว่อื่น ๆ

ปัญหาคือ แม้จะเข้าถึงเชลล์ได้ ไฟล์ flag.txt มักจะมีสิทธิ์การเข้าถึงที่จำกัด ไม่สามารถอ่านได้โดยตรงด้วยผู้ใช้ทั่วไป นี่คือที่มาของการใช้ Python

เมื่อมีสิทธิ์รันคำสั่ง sudo หรือมีช่องทางให้ Python สามารถรันคำสั่งในระดับที่สูงขึ้นได้ ก็สามารถเขียนสคริปต์ Python ง่าย ๆ ที่ใช้โมดูล os เพื่อรันคำสั่งเชลล์ได้ ตัวอย่างเช่น การใช้ os.system('cat /home/w1seguy/flag.txt') จะทำให้ Python เรียกใช้คำสั่ง cat เพื่ออ่านเนื้อหาของไฟล์ธงออกมาได้ นี่คือพลังของ Python ที่สามารถประสานการทำงานกับระบบปฏิบัติการได้อย่างมีประสิทธิภาพ

บทเรียนจากภารกิจตามล่าธง

ภารกิจนี้แสดงให้เห็นว่าการหาธงใน CTF ไม่ใช่แค่การเจาะระบบ แต่ยังเป็นการรวบรวมข้อมูล การแกะรอยเบาะแส และการใช้เครื่องมือที่เหมาะสม

ตั้งแต่การสแกนด้วย Nmap, การบรูทฟอร์ซด้วย Gobuster, การถอดรหัส Base64 ไปจนถึงการใช้ Python เพื่อรันคำสั่งบนเชลล์ ทั้งหมดนี้เป็นส่วนหนึ่งของกระบวนการที่ต้องใช้ความคิดสร้างสรรค์และทักษะที่หลากหลาย และแน่นอนว่า Python ยืนยันบทบาทของตัวเองในฐานะภาษาสากลที่ขาดไม่ได้สำหรับนักวิเคราะห์ความปลอดภัยและผู้ที่ชื่นชอบ CTF