Smasher2

Hack The Box - Machine Smasher2 Walktrough / Writeup

Mesin ini dibuat oleh dzonerzy & xG0 , sistem operasi yang digunakan Linux dan tingkatan dari mesin ini adalah Insane. Seperti biasa hal yan pertama kita lakukan adalah Reconnaissance & Enumeration

Enumeration

Melakukan Quick Port scanning TCP dengan perintah nmap -sC -sV -Pn –reason 10.10.10.135 –vv –version-all -oN quick_nmap.txt

DNS – Domain Name System

Pada port 53, kita melihat bahwa server ini menggunakan DNS (Domain Name System) yang artinya pada server ini akan menerjemahkan atau mentranlasikan alamat ip menjadi sebuah nama domain dan juga sebaliknya. Maka dari itu, kita dapat menggunakan nslookup untuk memastikannya

Kemudian kita mencoba untuk melihat beberapa subdomain lainya dan disini kita mendapatkan subdomain lainya yaitu root.smasher2.htb dan wonderfulsessionsmanager.smasher2.htb

Web Enumeration & Directory Scanning

Kita coba kunjungi domain pertama yaitu root.smasher2.htb dan melakukan serangan file dictionary attack pada website untuk menemukan file yang menarik didalam website.

Menemukan dictionary backup pada website yang berisikan 2 buah file

Analysis – File auth.py

Di file auth.py kita mendapatkan informasi pada function (job), bawahnya dapat dilakukanya Command Injection, dengan syarat apabila kita telah mengetahui key dari api tersebut.

Kita coba berhipotesis bahwa informasi script, ini berguna dan berhubungan dengan subdomain yang kedua wonderfulsessionsmanager.smasher2.htb.

Subdomain ke dua ini menampilkan halaman login. Informasi yang di dapatkan dalam source auth.py pada fungsi login, Apabila kita telah memasukan password salah terlalu banyak,maka kita akan di blok dalam waktu 2 menit.

Setelah itu, mencoba login kembali dan kita coba menebak nebak passwordnya. Dan pada akhirnya ke blok ( atau kita juga bisa mengakali dan membuat script untuk melakukan serangan bruteforce ini, misalnya melakukan 10 request login dan di beri jeda 2 menit ).

Debuggingses.so

Hmm Okee, coba kita cari informasi lainya dan pindah ke file ses.so . File ses.so ini adalah file elf64-bit LSBS shared object , Singkatnya, ini seperti dll untuk exe di windows gitu.

Pada file ini, saat kita mencoba mencari strings yang terkandung di dalam file se.so. ada beberapa kata yang menarik seperti user_login, secret_key dan password.

Dengan informasi yang menarik diatas, kita coba decompil dan lihat, pada address (0x1f03) fungsi get_internal_usr dan (0x1f7c) get_internal_pwd memiliki fungsi sama.

Kita coba berasumsi, kemungkinan besar bisa saja user dan password adalah sama ( user = password) .

Bruteforce Attack – Default Username & Password

Kemudian kita lakukan lagi serangan bruteforce dengan username yang standar seperti root , Administrator, Admin dan lain lain. Ingat passwordnya harus sama dengan user 😊. Setelah mencoba beberapa kali kita berhasil login, menggunakan 😀

username : Administrator
password : Administrator

Dengan mendatpkan key ini , kita dapat melanjutkan serangan kita untuk melakukan Remote Code Execution yang sempat kita bahas tadi diatas.

{
"authenticated": true,
"result": {
"creation_date": 1576320285,
"endpoint": "/api//job",
"key": "fe61e023b3c64d75b3965a5dd1a923e392c8baeac4ef870334fcad98e6b2 64f8"
}
}

Coba melakukan requests GET dan method tersebut tidak diijinkan

Kita lihat lagi script auth.py, method untuk melakukan serangan ini adalah methode POST pada paramter schedule

Command Injection

Mengedit request methode menjadi post dan menambahkan haeder seperti content type dimana tipe datanya adalah Json.

Kita berhasil melakukan command exection dan telah mendapatkan username nya. Kemudian kita mencobe memasukan perintah “pwd” untuk melihat lokasi direktori kita sekarang.

WAF / Filter Bypass

Dari gambar diatas perintah kita gagal di eksekusi, dikarenkan command atau perintah yang kita kirim diblock karena mengandung kata yang sudah diblacklist. Maka dari itu kita coba bypass menggunakan single qoutes dan berhasil di eksekusi.

Oke selanjutnya adalah kita akan mencoba mengupload sebuah file yang digunakan untuk melakukan reverse shell ke folder /tmp . Kenapa saya letak di folder tmp ? Pengaturan normal untuk / tmp adalah 1777, ditunjukkan sebagai drwxrwxrwt yang artinya writable

Initial Shell

Setelah itu kita jalankan file reverse shell yang telah berhasil di download , dan akses user pun berhasil didapatkan.

Previlege Escalation

Ditahapan Previlege Escalation, saya tidak sempat untuk menulisnya dikarenakan mesin sudah retired saat saya sedang mencobanya. Untuk membaca lebih detail tentang tahapan Previlege Escalation bisa membaca Writeup dari snowscan ataupun 0xrick. Terimakasih, Kalo di rasa tulisan ini bermanfaat, silahkan Share. Semoga kebermanfaatan ini terus berlanjut!

Download Versi PDF

Teman teman juga dapat mendownload tulisan ini dalam format pdf.