[PoC] Penetration Test www.ayo.club

Berikut PoC penetration test dengan target www.ayo.club yang merupakan bagian dari event Ayo Melek IT/Ayo Hacking dalam menyambut hari kemerdekaan Republik Indonesia ke-69. Sebagai catatan, PoC ini dilakukan bukan sebagai persiapan jawaban yang sudah ada sebelumnya, melainkan dilakukan secara realtime setelah sesi kedua dinyatakan selesai. Dengan dipublishnya PoC ini, kami panitia sudah melakukan perubahan password di server target.

Target: www.ayo.club
1a. Pengecekan website, didapatkan informasi bahwa website www.ayo.club menggunakan CMS WordPress versi terbaru yaitu 3.9.2
1b. Secara paralel dengan pengecekan lainnya, bisa dilakukan enumerasi user yang ada di website tersebut. Kita bisa menggunakan wpscan:
enumerate-users
enumerate-user-2

 

 

 

1c. Selanjutnya kita coba download list password yang paling sering digunakan yaitu password.lst, kita download dari website aslinya:

get-password-list

 

 

 

1d. Lalu kita mulai lakukan brute force password:

bruteforce-user-momodbruteforce-got-password

 

 

Akhirnya kita bisa mendapatkan password untuk login ke wordpress.

2. Pengecekan lokasi / tempat ayo.club hosting, didapatkan informasi bahwa website www.ayo.club menggunakan cloudflare di front end nya. Untuk itu perlu mencari real IP dibelakang cloudflare. Ada beberapa cara untuk mendapatkan real ip tetapi untuk kasus ini, saya akan berikan satu contoh yaitu menggunakan protokol XML yang mana wordpress menggunakan xmlrpc untuk memudahkan remote posting/publishing (ada salah satu tim yang berhasil dengan metode ini). Berikut caranya:
– Membuat sebuah file, misalnya dengan nama ayoclub.txt yang isinya bisa dilihat disini
Perlu diperhatikan bahwa http://www.ayo.club adalah target dan http://128.199.132.155 merupakan wordpress kita sendiri sebagai destinasi. Di IP 128.199.132.155 ini lah kita akan lihat real ip dari www.ayo.club. Intinya kita meminta supaya www.ayo.club melakukan “pingback” ke ip kita sendiri. Kemudian kita lakukan request menggunakan curl:

curl –data @ayoclub.txt http://www.ayo.club/xmlrpc.php
maka hasilnya bisa dilihat pada screenshoot dibawah ini:

xmlrpc ip

XML RPC reveal real ip

 

 

 

Real IP yang kita dapatkan adalah:Β 198.50.149.28

3. Dari bagian nomor #1 tadi, kita coba login ke wordpress untuk mencoba mengupload php shell:

login-as-momoderror-uploading-phpfiles

 

 

Kita berhasil login tetapi gagal upload file ekstensi .php. Kita bisa saja mencoba melakukan trick upload ekstensi baru lalu upload file .htaccess untuk meminta webserver eksekusi ekstensi baru tersebut sebagai php atau mencoba brute force password admin yang mungkin bisa diijinkan untuk upload file ekstensi .php, atau setidaknya bisa edit konfigurasi untuk mengijinkan upload php. Sementara itu, saya memutuskan menggunakan hints menanyakan tukang pos untuk langsung masuk ke dalam server

4a. Dengan hint menanyakan tukang pos, saya berpikir kalau itu adalah smtp. Untuk memastikan saya coba scan port yang ada:

nmap-results

 

 

 

 

4b. Saya mulai melakukan verifikasi user yang valid melalui smtp (saya suka melakukan manual dengan informasi yang saya dapat di seputar target, misalnya nama hostname, nama event, nama admin, dll):

smtp-vrfy-manual-testing

 

 

 

 

Bagi yang suka menggunakan tools otomatis, silahkan (ada tim yang berhasil nebak 2 user di dalam system melalui protokol http, yaitu menggunakan module UserDir, bagus !!!)

Dari informasi diatas, saya menemukan ada user ayochat dan cdc. Selanjutnya saya perhatikan bahwa selain port 80, 3306, 25 ada port yang menarik yaitu port 2014. Saya coba probe port tersebut

ssh-probe-port-2014

 

 

 

 

Ternyata port tersebut adalah port ssh.

4c. Saya melakukan brute force dengan user ayochat melalui port ssh (2014):

ssh-bruteforce-using-hydra ssh-success-bruteforce

 

 

 

 

Sukses mendapatkan password, selanjutnya saya coba login melalui ssh:

ssh-login

 

 

 

 

Berhasil masuk !!!

5. Selanjutnya saya coba cek ke web root direktori www.ayo.club di /var/www/html (setelah melakukan pengecekan di httpd.conf)

directory-root-website-ayo.club

 

 

 

 

ternyata direktorinya dimiliki oleh nobody. Kita coba cek siapakah user yang menjalankan apache (bisa menggunakan ps awux | egrep “apache|httpd”) tetapi untuk bagian ini saya melakukan pengecekan di httpd.conf (/etc/httpd/conf/httpd.conf):

apache-user-httpd.conf

 

 

 

 

Ternyata usernya adalah apache. Saya coba cari direktori atau file yang bisa diakses oleh user apache:

checking-who-owns-apache-process

 

 

 

 

Tak satupun direktori atau file yang bisa diwrite/upload oleh user apache, sementara web server dijalankan oleh user apache, artinya semua file yang diupload melalui web, maka ownernya adalah apache. Dengan demikian, kita mengupload file melalui wordpress tadi tetap tidak akan bisa, meski bukan ekstensi .php

6. Setelah masuk ke dalam sistem, ada banyak cara untuk melakukan eskalasi akses, dalam hal ini ketika saya ketik command “id apache”, saya melihat bahwa user apache ada di grup wheel, hal ini sangat menarik karena biasanya grup wheel didalamnya adalah root/super user. Dengan demikian, saya berpikiran bahwa apache setidaknya mempunyai priveleges lebih (dan pikiran saya adalah melalui sudo). Tetapi masalahnya bagaimana saya bisa mendapat akses user apache ? sementara untuk upload php shell tidak bisa karena ownernya adalah nobody. Lalu saya kepikiran menggunakan module UserDir. Saya coba cek melalui http://198.50.149.28/~ayochat apakah userdir aktif atau tidak.

userdir-forbidden

 

 

 

 

ternyata bisa diakses hanya forbidden, hal ini biasanya karena belum ada akses direktori atau ada direktori tetapi tidak ada file home (index) nya. Untuk itu, saya coba cek di httpd.conf apakah nama home direktori untuk website jika UserDir diaktifkan:

UserDir_enable

 

 

 

 

Ternyata namanya adalah public_html. Selanjutnya saya create direktori public_html dan buat sebuah file index.html

userdir_enable_now userdir_enable_now_2

 

 

 

 

Selanjutnya saya coba buat phpshell yang sederhana:

creating-phpshell-command phpshell-cmd

 

 

 

 

Berhasil. Selanjutnya saya lakukan back connect ke server saya yang lain:

reverse-shell-connected

 

 

 

 

Berhasil.

7. setelah saya berhasil melakukan back connect dengan akses user apache, selanjutnya saya coba buktikan dugaan saya bahwa apache mempunyai privileges lebih melalui sudo:

totally-pawnd

 

 

 

 

Bingo !!! Totally pawnd πŸ™‚

Akses sudo ke user apache atau user mysql biasanya di gunakan untuk tugas-tugas otomatis (misalnya cron, at, dll) meskipun ini berbahaya dan tidak disarankan. Jika ada pertanyaan silahkan mengirimkan ke panitia.

Terima kasih

About Kalpin Erlangga Silaen

Suka membaca
This entry was posted in Umum. Bookmark the permalink.

3 Responses to [PoC] Penetration Test www.ayo.club

  1. aRiep says:

    nice pak kalpin….. kami dari goverment hanya melakukan kayak yg seperti bilang,,, tapi kami hanya sampai mengetahui http://www.ayo.club/xmlrpc.php dengan melakukan scanning melalui wpscan melalui bugdork xlmrpc… dan melakukan brutoforce password.. untuk mendapatkan login di dalamnya.. tapi ya karena sering kendala dgn pemadaman listrik akhirnya kami cuma sampai dalam brutoforce password… πŸ˜€

    untuk itu nice buat jawaban yang di berikan… itu dapat memberikan pelajaran bagi kami…. πŸ™‚

    merdeka pak..!!! πŸ˜€

  2. Merdeka !!!

    ikuti sesi ketiga ya…semangat

  3. nieto says:

    blajar kayak gituw bikin sering re-install komputer

Leave a Reply

Your email address will not be published.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.