Walkthrough CTF-USV

Walkthrough CTF-USV

Walkthrough CTF-USV

Walkthrough CTF-USV, Dalam akhir tahun kemarin yaitu akhir tahun 2016. Saya sedang mendalami hobi saya yaitu penetration testing. Dimana dalam tahun depan rencananya apabila saya ada rejeki berlebih dan ilmu yang cukup maka saya mantabkan niat untuk mengambil ujian OSCP (https://www.offensive-security.com/information-security-certifications/oscp-offensive-security-certified-professional/) dari Offensive Security.

Persiapan saya sebelum saya merasa siap mengambil ujian tersebut adalah saya belajar Penetrasi Testing lebih intens, saya mulai mencari artikel tentang ujian OSCP. Setelah itu saya mendapati sebuah web dimana web tersebut menyediakan soal-soal latihan pentest dalam bentuk VM adapun salah satu model dari soal tersebut adalah CTF (Capture The Flag). Gimana kita bisa ngedapetin Flag dengan Pentest. Oke, kali ini saya mempunyai soal VM CTF-USV yang telah saya download. Soalnya sendiri bisa anda download disini : https://drive.google.com/file/d/0B-0ogVRGRivoNlF3QlNDMUFWZ3c/view?usp=sharing

Walkthrough CTF-USV


Jalankan mesin VM CTF-USV setelah itu ketikkan ifconfig vboxnet0 untuk mengethaui ip dari interface kita yang mengarah ke virtual.

IFCONFIG - tool to show ip configuration on linux

IFCONFIG – tool to show ip configuration on linux

Dari screenshoot diatas kita mengetahui bahwa DHCP yang digunakan oleh virtbualbox yang saya pakai adalah menggunakan network 192.168.56.0/24, dimana ip untuk interface saya (vboxnet0) adalah 192.168.56.1 dengan netmask 255.255.255.0. Setelah ini untuk mengetahui IP yang terdapat dalam network 192.168.56.0/24 kita bisa menggunakan Ping Test dari NMAP. Ketikkan command tersebut pada terminal : nmap -sn 192.168.56.0/24 opsi -sn sendiri berfungsi hanya untuk ping scan dan disable port scan. Berikut kita mendapati IP dari mesin VM CTF adalah 192.168.56.101.

NMAP - Tool to mapping your network specifically

nmap -sn 192.168.56.0/24

Kemudian saya melakukan scanning lagi dengan nmap dengan ip dari mesin VM CTF itu sendiri, saya mendapati 4 open port dari VM tersebut. Berikut hasil scanning menggunakan NMAP.

NMAP - Network Scanning and Mapping tool

NMAP – Network Scanning and Mapping tool

Ok saya mencoba tool lain yaitu AMAP, dimana fungsi lain dari AMAP sendiri dapat melihat opening port dari port normalnya. Misalnya ssh berjalan di 22 apabila sudah dimodifikasi menjadi 231 atau yang lainnya maka NMAP tidak dapat mengidentifikasi nya. Kita dapat menggunakan AMAP untuk mengidentifikasi service yang normal portnya sudah diganti ke nomor port lain. Dan kita mendapati port dari FTP yang seharusnya 22 menjadi 21211 serta port dari Squid Proxy yang sudah dirubah dari 3128 menjadi 3129. Oke mantab kita mulai mendapatkan banyak klue dari opening port.

AMAP - to scanning unusually port service

AMAP – to scanning unusually port service

Dari sebelumnya kita mengetahui bahwa mesin tersebut menjalankan service HTTP dengan port yang terbuka adalah 80. Maka saya akan mencoba melakukan telnet ip 192.168.56.101 melalui port 80, dengan tujuan banner grabbing information pada mesin tersebut. Dan ternyata disini saya menemukan FLAG yang pertama.

Telnet : we can check http service with telnet to port 80

Telnet : we can check http service with telnet to port 80

Oke setelah saya decode string diatas : Q3JvYXRpYSBGbGFnOiAwYzMyNjc4NDIxNDM5OGFlYjc1MDQ0ZTljZDRjMGViYg== saya mendapati FLAG pertama saya yaitu berikut :

Croatia Flag: 0c326784214398aeb75044e9cd4c0ebb

Mantab, itu adalah salah satu flag pertama kita dengan melakukan banner grabbing menggunakan tool telnet. Lanjut ke analisa saya selanjutnya yaitu saya mulai mencoba SSH ke IP VM CTF-USV, memang benar kita tidak memiliki login yang valid ke login SSH tersebut.

SSH Banner - Flag that crypted with AES ECB

SSH Banner – Flag that crypted with AES ECB

Akan tetapi terdapat banner SSH bergambar naga serta terdapat semacam clue yang digunakan untuk memecahkan flag berikutnya. Saya mulai penasaran dan terdapat clue ternyata memang benar bahwa clue yang berada pada SSH banner tersebut adalah cryptography AES ECB, kita bisa melakukan decrypt pada enkripsi yang sudah kita temukkan. Setelah itu saya mencoba mendecrypt memang benar dan ini adalah flag kedua yang telah saya dapatkan.

Italy Flag: 0047449b33fbae830d833721edaef6f1

Kemudian saya tahu dari penemuan saya sebelumnya bahwa mesin tersebut menjalankan service HTTP, saya mencoba membuka IP mesin tersebut ke web browser dan saya mendapati tampilan Access Forbidden dalam web browser saya, saya teringat pada temuan dengan tool amap bahwa terdapat squid proxy, dengan IP vm ctf serta untuk port nya 3129 saya pasang pada linux saya. Dan tadaaa, memang benar home nya dapat diakses.

access forbidden, we don't know if we should be using proxy to access the website

access forbidden, we don’t know if we should be using proxy to access the website

Oke kita coba melakukan setting proxy pada linux kita, setelah itu saya mendapati index dari vm tersebut :

Squid Proxy setting to network

Squid Proxy setting to network

Walkthrough CTF-USV

Setelah kita tahu pasti web bisa diakses, saya mencoba menyelidiki lebih lanjut menggunakan nikto dengan menggunakan proxy dari VM CTF-USV. Dari hasil nikto pun saya jadi jauh lebih mengerti bahwa terdapat platform wordpress pada VM tersebut yang terletak di path berikut 192.168.56.101/blog/ Saya mencoba mengakses nya.

Nikto - Simple tool to pentest a web

Nikto – Simple tool to pentest a web

Setelah saya menganalisa terdapat 2 post yang mencuri perhatian saya yaitu post dengan judul “I have a message for you!” dengan satu post yang di protect dengan pasword. Oke saya penasaran dengan foto post “I have a message for you” dimana setelah saya open image in a new tab ternyata path url yang membuat saya merasa agak aneh yaitu : http://192.168.56.101/blog/hodor/hodor.jpg.

Saya coba membandingkan dengan image yang terdapat di wordpress tersebut yaitu gambar berikut : http://192.168.56.101/blog/wp-content/uploads/2016/11/Winter-Is-Coming.jpg. Tentunya setelah dibandingkan dengan struktur urlnya berbeda. Akhirnya saya penasaran dengan path /hodor/ saya coba buka url tersebut dan tadaaa terdapat file zip yang siap didownload, dan didalam file zip tersebut terdapat image dimana image tersebut saya mendapatkan flag ketiga. Saya sudah mendecrypt nya kemudian jadilah flag tersebut :

Portugal Flag: a2663b23045de56c7e96a406429f733f

Portugal Flag: a2663b23045de56c7e96a406429f733f

Portugal Flag: a2663b23045de56c7e96a406429f733f

Saya mulai kehabisan akal saat mendapati bahwa saya hampir tidak bisa membuka article dengan password protected tersebut, saya kepikiran untuk mencoba mencari dictionary list nya.

Cewl - tool to generate password list by content

Cewl – tool to generate password list by content

Saya agak buntu untuk menetapkan sumber dictionary list yang akan saya coba untuk post tersebut. Sesaat memang saya mulai kehabisan akal sebelum saya menemukan tool bernama cewl yang dapat menggenerate dictionary list berdasarkan kata yang di grab dari web tersebut, dengan dictionary list yang sudah dibuat kita mencari dan mendapati salah satu kata yang dapat kita gunakan untuk login pada post dengan password protected tersebut. Password yang saya dapati adalah Westerosi. Dan voila, saya mendapati flag keempat saya.

We can login with password generate by cewl

We can login with password generate by cewl

Paraguay Flag: 4761b65f20053674657c7e6186628a29

Dari article dengan password protected tersebut, selain saya menemukan flag saya juga menemukan clue. Dimana kalimat pada post tersebut : The mother_of_dragons has a password which is in front of your eyes [image] She uses the Field Training Preparation for her army. Saya mulai penasaran apakah mother_of_dragons merupakan username dan in front of your eyes merupakan sebuah password? Saya mencoba login pada wordpress akan tetapi tidak bisa, saya mencoba login di SSH akan tetapi tetap tidak bisa. Saya mulai tertarik dengan kalimat, “She uses the Field Training Preparation for her army” saya mulai aga sedikit tahu apakah ini ada kaitannya dengan service yang diubah. Langsung saja saya fokus pada FTP. Saya menggunakan WinSCP dan mendapati 2 file yaitu readme.txt dan yang menggiring kita pada hidden file dengan nama .note.txt. Setelah saya membukanya saya mendapat kalimat tersebut :

“I always forgot passwords, so for my blog account I used my children’s names.

-= Daenerys =- ”

Langkah selanjutnya adalah login ke wordpress dengan login : mother_of_dragons, dan untuk passwordnya adalah kombinasi nama bayi naga yaitu Drogon, Viserion dan Rhaegal. Untuk memangkas waktu anda sebaiknya membuat list password nya kemudian menggunakan wpscan agar lebih mudah. Misalkan list dari passlist nya kurang lebih seperti ini isinya.

ViserionDrogonRhaegal

drogonrhaegalviserion

viserionrhaegaldrogon

DrogonViserionRhaegal

Misalkan isi dari passlist yang kita biat adalah seperti itu maka ketikkan command seperti berikut pada terminal : wpscan –url 192.168.56.101/blog –wordlist passlist.txt –username mother_of_dragons. Tool WP Scan berguna memangkas usaha kita login berulang kali dengan mencoba password yang berada dalam passlist.txt yang sudah kita buat, jika oke maka wpscan akan memberikan hasil password mana yang bisa digunakan untuk login.

Login with username : mother_of_dragons

Login with username : mother_of_dragons

Setelah berhasil login saya berhasil mendapatkan flag berikutnya, yaitu :

Thailand Flag: 6ad7965d1e05ca98b3efc76dbf9fd733

Yeay, lanjut ke penelusuran saya yang selanjutnya. Saya mencoba menanamkan PHP Reverse Shell untuk melihat jauh kedalam isi dari webserver vm tersebut. PHP Reverse Shell sendiri saya dapatkan dengan cara mengedit salah satu tema yang ada disana, dan cara untuk menggunakannya anda dapat melihat pada artikel saya sebelumnya disini : http://andreas-bkh.net/2017/01/02/cara-menggunakan-php-reverse-shell/.

Sixth Flag : yeay!

Sixth Flag : yeay!

Oke ternyata benar dugaan saya, setelah saya melihat kedalam isi web server korban saya mendapati flag keenam beserta klue keberadaan dari flag ke tujuh. Dengan penasaran yang membara saya menemukan flag keenam di folder /srv/http. Dan berikut adalah flag keenam.

Mongolia Flag: 6b49c13cccd91940f09d79e142108394

Begitu pula dalam folder /srv/http saya menemukan file winterfall_messenger yang dimiliki oleh root.

Ketika saya menjalankannya, saya dapat melihat bahwasannya file tersebut mencoba melakukan cat pada suatu file yang coba dibaca oleh file tersebut adalah “/root/message.txt“. Oke saya jadi penasaran untuk isi dari file winterfall_messenger, oleh sebab itu saya mencoba mengetikkan command strings winterfall_messenger, dan mendapati string dari file tersebut adalah dibawah ini :

string on file winterfall_messenger

string on file winterfall_messenger

Jadi “setuid” bit diatur dan perintah “cat” digunakan dengan path relatif bukan path absolut. Untuk mendapatkan root saya akan membuat sebuah file yang bernama “cat” yang memiliki sebagai konten “/bin/bash“. Lokasi file ini akan ditambahkan ke PATH sehingga akan menjalankan “cat” versi saya.

sh-4.4$ echo "/bin/bash" > /tmp/cat
echo "/bin/bash" > /tmp/cat
sh-4.4$ chmod +x /tmp/cat
chmod +x /tmp/cat
sh-4.4$ echo $PATH
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
sh-4.4$ export PATH=/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
<p:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
sh-4.4$ echo $PATH
echo $PATH
/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
sh-4.4$ cd /srv/http
cd /srv/http
sh-4.4$ ./winterfell_messenger
./winterfell_messenger
[root@arch http]# id
id
uid=0(root) gid=33(http) groups=33(http)
passwd root
Changing password for root
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Setelah kita gaining access hingga menjadi root sukses, kita bisa mendapatkan flag ketujuh. Agar lebih mudah membuka file yang tidak bisa dibuka oleh user http maka dari itu kita mengesekusi command passwd root, untuk mengubah password dari user root. Setelah itu login dengan user root dan password yang sudah kita tunjuk kemudian jalankan command berikut : /usr/sbin/cat .flag.txt. Dan selamat anda menemukan flag terakhir yaitu flag ketujuh :

Finally, we found Final Flag (7th Flag), yeay!

Finally, we found Final Flag (7th Flag), yeay!

Somalia Flag: 4a64a575be80f8ffab26b06a958bcf34

Yippie, semoga kalian juga tertarik untuk belajar mengerjakan soal CTF. Karena sungguh menyenangkan, bukan permainannya yang menyenangkan tapi concept bagaimana kita bisa mendapatkanya. :)

Kesimpulan :

  • Jika anda terhenti di suatu langkah, coba kerjakan langkah yang lain terlebih dahulu.

Andreas Bernhard @Jakarta, 03rd January 2017

Anda datang dengan kata kunci berikut:

hasil usv (1), Pentest menggunakan script shell (1), Pentest menggunakan script shell linux (1), ujian oscp (1), usv ctf 2016 walkthrough (1), usv-ctf walkthrough (1), 

2 thoughts on “Walkthrough CTF-USV

  1. Your Browser Chromium 53.0.2785.143 on OS Ubuntu

    bener-bener mastah :D

    • Your Browser Google Chrome 55.0.2883.87 on OS Windows 10 x64 Edition

      wkkwkwk, ampun pak… cuman belajaran….

      semua orang punya minat, dan bida ketertarikan masing2… :p

      Beda orang beda cerita, kalau design dan esensi seni kamu mas surya mastah nya :D

Tinggalkan Komentar