วันนี้ผมเองเพิ่งจะมานั่ง clear tab (ซึ่ง ณ ตอนที่เขียนก็มีจำนวนตามภาพด้านล่าง) ที่เปิดค้างไว้ แล้วทีนี้เจอว่าเปิด post สำหรับ VM ที่มีช่องโหว่ที่แนะนำให้โหลดมาฝึกเล่นก่อนที่จะสอบ OSCP ก็เลยจับ Kiotrix ที่อยู่บนสุดของ List มาเล่นหน่อยละกัน

Kioptrix เป็น VM ที่มีช่องโหว่สารพัดให้เราฝึกกัน โดยมันจะมีหลายๆ level ด้วยกัน ซึ่งจริงๆแล้วมันมีคนเคยเขียน blog มาหลายๆ blog แล้ว แต่ตัวผมเองเพิ่งจะมาเล่น ก็เลยโพสต์หน่อยละกัน :p (แต่ละ level จะเป็นคนละ VM กันนะครับ ให้ download จากหน้านี้ครับ)

Level#1

1. ทำการ list ว่า VM นั้นได้ IP อะไร

2. ทำการ scan port

3. พบว่า Apache นั้นใช้ mod ssl version เก่า ก็เลยไป search ใน Exploit-db

4. ทำการ copy source code แล้วเอามา compile ซึ่ง libssl-dev ใน Kali ปัจจุบันมีอะไรหลายๆอย่างต้องแก้นะครับ โดยทำดังนี้ครับ

แก้ไข 764.c โดยทำการเพิ่มอันนี้ไปภายใต้บรรทัดที่ 24

แก้ไขบรรทัดที่ 672

ที่บรรทัด 970 แก้ไขเป็น

แก้ไขบรรทัด 1078 เป็น

แก้ไขบรรทัด 1084 เป็น

จากนั้น compile

5. exploit ไปยัง Kioptrix

Level#2

1. ทำการ scan port

2. ทดสอบเข้าใช้งาน port 80

3. โจมตีด้วย sql injection

เข้ามาได้ก็เจอหน้าใช้สำหรับการ ping

4. ทำการ สร้าง netcat listener ที่ฝั่ง Attacker แล้วทำการ command injection ในช่อง ping ดังกล่าว

Attacker

Command Injection

5. ทำ enumration

เมื่อเราเข้ามาได้ ลองเช็ค kernel ดูพบว่าเป็น linux 2.6.9 ดังนั้นเราจึงทำการหา kernel exploit เพื่อทำ privilege escalation ต่อ

Attacker Side

Server Side

6. ทำการ compile และ exploit kernel

Level#3

Level 3 นี้จะแตกต่างกับอันอื่นหน่อยคือระบุชัดเจนในหน้าจอว่า ช่องโหว่อยู่ที่ Web Application แล้วก็ให้ทำการ set host ไฟล์ให้ Kioptrix3.com ด้วย

1. Configure /etc/hosts

2. ทำการเข้าเว็บไซด์ kioptrix3.com

3. เมื่อเข้ามาในส่วน Login พบว่ามันเป็น LotusCMS จึงได้ทำการ search หาช่องโหว่ดู

พบว่า 18565.rb เป็นของ Metasploit ดังนั้นก็เปิด metasploit ขึ้นมา

ได้ session มา

4. ทำการ enumeration พบว่า Kernel เป็น 2.6.24

จากนั้นก็เข้าไปใน shell ของเครื่อง

ไปดู password ใน /etc/apache2/conf.d พบว่ามี phpmyadmin อยู่ด้วย โดยอยู่ที่ /usr/share/phpmyadmin อยู่ด้วย ดูข้อมูลใน cat /etc/phpmyadmin/config.inc.php พบว่ามี username, password สำหรับการเข้า db อยู่

พอ login ดันไม่ได้ซะงั้น

หาข้อมูลเพิ่มพบ user ใน /home/www/kioptrix3.com/gallery/gconfig.php

5. Login เข้า Phpmyadmin

6. เข้าไป gallery -> dev_accounts พบ account ของ dreg และ loneferret

เอา password ไป crack ที่ crackstation.net ได้ password ของทั้งคู่

7. เอา username, password login เข้าผ่าน ssh

8. ตรวจสอบพบว่าเราสามารถใช้คำสั่ง /usr/local/bin/ht ด้วย sudo ได้

แต่พอรันแล้ว error “Error opening terminal: xterm-256color.” ซะงั้น วิธีแก้คือ

ลองรันอีกทีพบว่าจะสามารถรันได้ และ ht คือ text editor นั่นเอง

9. แก้ไขไฟล์ /etc/sudoers แล้วให้เราสามารถใช้คำสั่ง su ได้ (เปิดไฟล์โดยใช้ Alt+f)

ทำการ sudo su ก็จะได้ root access

Level#4

1. Scan port

พบ samba service

2. ใช้ enum4linux ดึงข้อมูลจาก Samba service พบว่ามี user root, john, loneferret

3. เข้ามา port 80 พบว่าเป็นหน้า login

4. เริ่มต้นด้วยการ sql injection เหมือนเดิม แต่ใช้เป็น user loneferret จะ error (username=loneferret, password=1′ or ‘1’=’1’#)

ก็เลยเปลี่ยนไปใช้ john แทน (username=john,password=1′ or ‘1’=’1’#) ก็จะได้ password ของ john มา

5. Login ด้วย user john เข้าผ่าน ssh

เมื่อเข้าไปแล้วพบว่าเราใช้ได้ไม่กี่คำสั่งเท่านั้น

ดังนั้นเราต้องออกมาเป็น shell ที่ทำได้มากกว่านี้ก่อน โดยในที่นี้จะเห็นว่าเราใช้คำสั่ง echo ได้ (ได้ข้อมูลจาก netsec.ws) ดังนั้นเราจะใช้คำสั่งเป็น

6. หาข้อมูลจนพบ username, password สำหรับการ login เข้า MySQL

เข้ามาใน Database พบว่ามี user robert อยู่ด้วย

7. ทีนี้พอเช็คไปเช็คมาพบว่า mysql นั้นรันด้วยสิทธิ์ root

ทีนี้แสดงว่าไอ้การจะ execute command ของ root น่ะ น่าจะทำผ่าน mysql ได้นะ ก็เลยลองหาข้อมูลเรื่อง pentest execute command with mysql แล้วไปเลย pentest-wiki บอกว่าสามารถทำได้ผ่าน User Defined Function ซึ่งต้องใช้ lib_mysqludf_sys.so ก็เลยลองหาว่าในเครื่องมีมั้ย พบว่ามันมีอยู่แล้ว GGEZ

แสดงว่าอาจมีการสร้าง User Defined Function ไว้ ก็เลยตรวจสอบใน MySQL

สร้างไฟล์ขึ้นมาโดยใช้คำสั่ง

จากนั้น execute command “id > /tmp/test” ผ่าน sys_exec

แล้วไปดูผลลัพธ์ใน /tmp/test ปรากฏว่าเราสามารถรันคำสั่งของ root ผ่าน mysql ได้ 🙂

เพิ่ม user john เข้าไปใน /etc/sudoers

แล้วก็จะกลายเป็น root ได้ครับ

Level#5

1. scan port

เจอ 22, 80, 8080

2.เข้าใช้งานเว็บพบว่าเจอแต่ It’s work

แต่พอลอง view code พบ path ซ่อนอยู่

3. เวลาเรากดไปที่ Chart ด้านซ้ายจะมีการแสดง source code ออกมาได้ ผมก็เลยลองใช้ Burp intercept แล้วทำการตรวจสอบดูก็พบว่า request เป็นแบบนี้

ทีนี้ถ้าเราแก้ไขตรง Script parameter ก็พบว่ามันมีช่องโหว่ Local File Inclusion (LFI)

ทีนี้พอไล่ไปดู configure ใน Apache2 ก็พบว่า

พบว่ามีการกันการเข้าถึงที่ port 8080 ไว้โดยเราต้อง set User-Agent เป็น Mozilla/4.0

4. เข้าใช้งาน port 8080 ด้วย user-agent Mozilla/4.0

พบ path phptax

5. ทำการค้นหา exploit ใน exploit-db พบว่ามี module อยู่แล้วใน Metasploit ก็เลยเปิด Metasploit ขึ้นมา

6. หาข้อมูลในเครื่องพบว่าเป็น FreeBSD

7. ลอง search จาก exploit-db พบว่ามี privilege escalation อยู่

8. เนื่องด้วย FreeBSD ที่เราแฮ็คเข้าไปมี netcat อยู่แล้ว เราก็เลยจะใช้ nc ในการรับไฟล์ครับ

ฝั่งส่ง

ฝั่งรับ

9. Compile และ get root shell 😀

Source::