สวัสดีครับทุกท่าน วันนี้ผมจะมาพาเล่น CTF ตัวหนึ่ง ที่มีชื่อว่า Pickle Rick มาจาก TryHackMe กันนะครับ โดย CTF นี้อ้างอิงจาก Sci-Fi Comic เรื่อง Rick and Morty (เรื่องนี้ผู้เขียนขอบอกเลยว่าสนุกและฮามาก ๆ ) ซึ่งเรื่องนี้จะแทรกมุกตลก ๆ ของผู้ใหญ่ไว้ในเรื่อง รวมถึงกับวีรกรรมเพี้ยน ๆ ด้วยครับ
โดยใน CTF จะเป็นเนื้อเรื่องเกี่ยวกับปู่ Rick ที่ได้เปลี่ยนร่างไปเป็นแตงกวา (อีกแล้ว) และไม่สามารถกลับร่างเดิมได้ เลยต้องขอความช่วยเหลือจากหลาน Morty ให้ไปหาวัตถุดิบลับ 3 อย่าง จากในคอมพิวเตอร์ของปู่ Rick เพื่อสร้างสูตร น้ำยากลับคืนร่างมาช่วยปู่ Rick โดยที่เราจะต้องหาช่องโหว่จากระบบของปู่ Rick สร้างขึ้นมา เพื่อบันทึกข้อมูลในการทำน้ำยา หรือร่างโคลนของ Beth ลูกสาวปู่ Rick ครับ
สามารถเข้าไปเล่นกันได้ที่ https://tryhackme.com/room/picklerick
สำหรับวันนี้ผมจะมารับ บทเป็น Morty เพื่อมาช่วยปู่ Rick กลับร่างเดิม ไปเริ่มกันเล้ยยยย
อย่างแรก คือ เราได้เบาะแสที่ปู่ Rick ให้มาเป็น IP Address คอมพิวเตอร์ของปู่ คือ
10.10.134.49
ขั้นตอน Enumeration Infromation
ขั้นตอนแรก เริ่มจาก nmap เพื่อดู port ของ IP Address ที่ปู่ Rick ให้มา โดยใช้คำสั่ง
nmap -sC -sS 10.10.134.49
จากนั้นเราจะพบว่าในคอมของปู่ rick มี port 22 และ 80 เปิดอยู่
ลองเข้าไปตรวจสอบกันหน่อยดีกว่า ว่าพบอะไรบ้างในแต่ละ port โดยที่ Port 80 จะเป็น Hyper Text Transfer Protocol (HTTP) จะพบหน้า Web Page ที่ Rick ขอความช่วยเหลือให้ Morty ช่วยเข้าสู่คอมพิวเตอร์เพื่อหาสูตรน้ำยากลับคืนร่าง
จากนั้นเราลองตรวจสอบรายละเอียดคร่าว ๆ ของหน้า Web Page นี้ โดยเข้าไปดูที่ View Source จะพบว่าปู่ Rick ได้ comment Username ใน Source Code เผื่อกันลืม
ต่อมาที่ Port 22 จะเป็น Secure shell
ลองนำ Username ของปู่ Rick มาทดลองเข้ากันดีกว่าเผื่อว่าจะเดารหัสผ่านได้ ต่อมาจะเห็นว่ายังไม่สามารถ login ได้โดยจะขึ้นข้อความ “Permission denied” ซึ่งสาเหตุมาจาก SSH key pair นั้นผิด
ทดลองใช้เครื่องมือ Nikto เพื่อตรวจสอบรายละเอียดของ Web Sever
ในส่วนนี้เราจะพบข้อมูลรายละเอียดของ server และไฟล์ “login.php” ที่มีอยู่ใน Web Server
ขั้นตอน Enumeration Directory
ทดลองใช้ dirsearch เพื่อหาข้อมูลของ directory และไฟล์ใน Web Server
พบว่ามีไฟล์ Directory “assets” ที่มี status code 200 ซึ่งหมายถึงว่าสามารถ request ไปยัง path นั้นได้ และไฟล์ที่น่าสนใจอยู่ คือ ไฟล์ robots.txt
ลองเข้าไปดูในโฟลเดอร์ assets ก่อนเผื่อมีรหัสผ่านที่ปู่ Rick เก็บไว้ในนั้น จะพบว่ามี Directory listing เปิดใช้งานอยู่ จากที่ตรวจสอบดูยังไม่พบอะไรสำคัญที่เกี่ยวข้องกับรหัสผ่าน
จากนั้นลองเข้าที่ไฟล์ “robots.txt” ดูกันหน่อยครับ ว่าข้างในนั้นจะมีอะไรที่เป็นข้อมูลของปู่หรือป่าวนะ เอ๋! นี่มันคำพูดที่ติดปากของปู่ Rick นี่นา (ส่วนความหมายที่แสนเศร้านี่ต้องลองไปหาดูกันเองนะ ฮี่ๆ) ซึ่งให้เดาน่าจะเป็นรหัสผ่านของปู่ Rick
จากนั้นเข้าไปยัง “login.php” และพบว่ามีฟังก์ชันการเข้าสู่ระบบ จึงได้ลองใส่ Username เป็น “R1ckRul3s” และ Password เป็น “Wubbalubbadubdub” ที่ได้ ว่าสามารถเข้าได้ไหม
เยี่ยมเลยตอนนี้ เข้าสู่ระบบของปู่ Rick ได้แล้ว แต่ยังคงต้องหาสูตรลับ 3 อย่าง เพื่อทำน้ำยาคืนร่างให้ปู่ Rick
จากหน้านี้ พบว่าเป็นฟังก์ชันที่น่าสนใจมาก ถ้าให้เดาน่าจะเป็น Input ที่ Execute system command อะไรเทือกนั้น
ลองไปตรวจสอบทั้ง 4 Page ที่ header bar ได้แก่ Potions, Creatures, Potions และ Beth Clone Notes ดูว่ามีสูตรลับ 3 อย่างหรือไม่ พบว่ามีข้อความ ปรากฏว่า Rick ตัวจริงสามารถดู Page นี้ได้
กลับมาที่หน้า Command Panel ทดลองใส่ command โดยใช้เป็นคำสั่ง เพื่อดูรายละเอียดของผู้ใช้ปัจจุบันบน System
id
จะพบว่า Application มีการ Execute System Command จริง
จากนั้นลอง list file ภายใน directory โดยใช้คำสั่ง
ls
พบว่าเจอสูตรลับอย่างที่ 1 แล้ว โดยจะอยู่ในไฟล์ “Sup3rS3cretPickl3Ingred.txt”
จากนั้นลองอ่านไฟล์ “Sup3rS3cretPickl3Ingred.txt” โดยคำสั่ง
cat Sup3rS3cretPickl3Ingred.txt
พบว่าไม่สามารถใช้งาน “cat” command ได้ เนื่องจากการปิดการใช้งานของ command นั้น
จากนั้นลองอ่านไฟล์ “Sup3rS3cretPickl3Ingred.txt” โดยคำสั่ง
less Sup3rS3cretPickl3Ingred.txt
เย่ ๆ ตอนนี้เราพบสูตรลับอย่างที่ 1 แล้วนั้น ยังเหลืออีก 2 อย่าง
จากนั้นตรวจสอบการใช้งานของ command โดยใช้คำสั่ง
sudo -l
จะพบว่าสิทธิ์ www-data ใช้งานได้ทุก command และไม่ถาม password
ตอนนี้อยากรู้ว่า path ที่อยู่ปัจจุบันอยู่ที่ตรงไหน เพื่อจะหาสูตรลับอีก 2 สูตรที่เหลือ โดยใช้คำสั่ง
pwd
ต่อจากนี้ list file ที่อยู่ก่อนหน้า Path Directory “var” โดยใช้คำสั่ง จากนั้นลองเข้าไปดูแต่ละ directory เพื่อหาสูตรลับอีก 2 อย่าง
ls /../..
จะพบว่าเจอสูตรลับสูตรที่ 2 อยู่ที่ Path “/home/rick/”
ลองอ่านสูตรลับสูตรที่ 2 ดู โดยใช้ command
less /home/rick/”second ingredients”
จะพบว่าเราได้สูตรลับสูตรที่ 2 มาแล้ว
ต่อมาเริ่มทำการหาสูตรที่ 3 ด้วยเริ่มไล่หา root path “/” จะพบว่ามี directory root อยู่ จากนั้น list file ใน directory “/root” จะพบว่าไม่สามารถ list file ออกมาดูได้
เพื่อตรวจสอบสิทธิในการเข้าถึง โดยใช้ command
ls -ll /
และพบว่าสูตรจะอยู่ที่ path “/root” โดยใช้คำสั่ง
sudo ls /root
จากนั้นอ่านไฟล์สูตรสุดท้ายแล้วโดยใช้คำสั่ง
sudo less /root/3rd.txt
เป็นยังไงบ้างครับ สำหรับบทความนี้สนุกกันไหมครับ ความรู้สึกในตอนทำ CTF นี้เหมือนได้เข้าไปอยู่ใน Comic เพื่อช่วยปู่ Rick จริง ๆ เลย วันนี้จึงต้องขาลอ เอ๋ย ขอลาไปก่อนนะครับ อยากลืมติดตามบทความ หรือความรู้ ๆ ดี จาก Datafarm Medium และฝากบริษัทดาต้าฟาร์มไว้ในอ้อมอ้อมใจกันด้วยนะครับ สำหรับวันนี้สวัสดีครับ