กลับมาอีกครั้งกับการโพสต์เกี่ยวกับการทำ lab hack อย่างในคราวนี้ก็คือ Virtual Machine จาก Vulnhub.com ในชื่อว่า The Ether: EvilScience สามารถ download ได้จาก link นี้ครับ

Kali: 10.211.55.3

1. เริ่มต้นด้วยการหา IP  เป้าหมายก่อน โดยใช้ nmap

2. Scan หา port

เจอ port 22, 80

3. เข้าใช้งาน http://10.211.55.42

4.  ทดสอบเข้าใช้งานเว็บพบว่า“น่าจะ”มีการใช้งาน include ที่ file

ทดสอบทำ Local File Inclusion

พอเข้าผ่านเว็บไซด์ตรงๆมันกลายเป็นว่าถูก redirect ไปหน้าแรกซะงั้น ก็เลยลองเข้าผ่าน Burp Suite ดู

ที่น่าสนใจคือพอ index.php?file=index.php พบว่าเกิด 500 Internal Server Error ซึ่งน่าสนใจและจากภาพจะเห็นว่าถ้าเป็นตอนที่เรียก ../../../../../../etc/passwd ตัวโค้ดเปลี่ยนไปเล็กน้อย แสดงว่าเราอาจจะทำ LFI ได้แต่เข้าใจว่า user อาจไม่มีสิทธิ์ในการอ่านไฟล์ดังกล่าว เลยกลายเป็นว่างเปล่า ดังนั้นสิ่งที่ผมทำต่อคือมีอะไรที่เราจะทำ include ไฟล์ได้บ้างนอกจาก /etc/passwd,/var/log/apache2/access.log กันนะ ก็เลยไปดูที่ /var/log/ เพราะส่วนใหญ่ไฟล์ในนี้ส่วนใหญ่ user อื่นสามารถเข้ามาเปิดไฟล์ได้ด้วย user ทั่วไป ซึ่งผมก็ได้ลอง list ใน Kali ดูว่า โดยปกติ Linux จะเก็บไฟล์ log อะไรบ้าง

จากนั้นก็ไล่ request ไปเรื่อยๆ จนกระทั่งถึง auth.log ปรากฏว่าสามารถ include ได้ 😀 W00t W00t

ซึ่งไฟล์ /var/log/auth.log เป็นไฟล์เก็บประวัติการ login เข้าระบบผ่าน SSH นั่นเอง ซึ่งพอผมลอง login ด้วย user root ไปที่เครื่องเป้าหมายก็จะพบว่าเกิด log ขึ้น

5. เมื่อเราพบแบบนี้ก็เลยทำลองทำ Code Injection เข้าไปใน Log ดู ปรากฏว่ามันเวิร์ค!!!

เพื่อให้ง่ายต่อการใช้งาน จึงทำ code injection ไปเป็น

แล้วเรียกใช้งานเป็น

6. สร้าง backdoor ไฟล์ จากนั้น download แล้ว run backdoor file

7. พอเข้าไปได้ลองทำ Enumeration พบว่าเราใช้ sudo command ได้กับคำสั่งนี้ /var/www/html/theEther.com/public_html/xxxlogauditorxxx.py

ทดสอบใช้งานดูเหมือนจะเป็นการใช้คำสั่ง tail ดู log ท้ายสุดของไฟล์ log

8. ทำ Code injection ตอนกำลังกำหนดไฟล์ที่จะอ่านปรากฏว่าทำได้ ก็เลยไป list ไฟล์ใน /root พอเห็นไฟล์ flag.png แล้วก็ copy กลับมายัง path เว็บไซด์ปัจจุบัน จากนั้นก็ download ไฟล์กลับมา

ซึ่งพอเปิด flag.png มาพบว่าเจอข้อความกวนตีน ดันบอกว่าคือไฟล์นี้ไม่ใช่ flag แต่บอกใกล้แล้ว

ดังนั้นผมก็เลยไปหาข้อมูลในเครื่องไปเรื่อยๆ หาเท่าไหร่ก็ไม่เจอ ก็เลยกลับมาที่ flag.png อีกที (ทำเสียเวลาเป็นอีกชม.) ใช้คำสั่ง strings เพื่อหาตัวอักษรภายใน flag.png พบเจอ string ที่บอกว่า flag คืออะไรซะงั้น

นำข้อความไป decode base64 ก็จะได้ flag ออกมา

หากใครสนใจ Penetration Testing (Hacking) แบบนี้ แล้วอยากเรียนลองดู Course นี้นะครับ ตอนนี้ลดราคาอยู่ ถึงวันที่ 6 ธันวาคม 2017 นี้ครับ 🙂