[Try Hack Me] – RootMe

Pada writeup kali ini saya mencoba untuk mengerjakan Penetration Testing dengan metode Black Box di platform Try Hack Me. Tahapan Pentest itu dibagi dalam 5 tahap, yang pertama adalah Reconnaissance yaitu mencari info tentang box apa yang ingin kita pentest, dilanjutkan dengan Scanning yaitu mengambil informasi yang dibutuhkan dengan menggunakan tools tambahan untuk mendapatkan informasi tambahan (open port, services, OS, dll). Tahap yang ketiga yaitu Gaining Access yaitu mendapatkan akses kedalam sebuah server yang bisa dilanjutkan oleh Privilege Escalation (Mendapatkan akses dari user lain / root access dengan cara mengeksploitasi service yang berjalan di server tersebut). Tahap Keempat yaitu Maintaining Access yaitu menjaga akses pada server supaya kita tetap bisa mengakses server tersebut, contohnya dengan memasang backdoor ditempat tersembunyi. Tahap paling akhir yaitu Clearing Tracks yaitu menghapus jejak / log pada server supaya tidak terdeteksi oleh security administrator.

1st question : Scan Machine, how many ports are open? Pada kasus ini saya menggunakan nmap untuk mendapatkan ports yang terbuka.

Parameter yang saya gunakan yaitu :

  • sC = Script Scanning default
  • sV = Mendapatkan version dari port yang open
  • Pn = Menganggap host yang di scan itu online
  • oN = Menyimpan hasil nmap
  • T5 = Timing template (5) makin besar angkanya semakin cepat scan

Ternyata ports yang terbuka ada 2 yaitu SSH (22) dan HTTP (80)

2nd question yaitu versi berapa apache yang berjalan di server ini? Tinggal melihat hasil nmap yang tertera pada port 80 (HTTP)

3rd question yaitu service yang berjalan pada port 22 itu SSH (Secure Shell Protocol) yang berfungsi untuk mengakses server dengan credentials yang sudah dikonfigurasi pada server.

4th question yaitu mencari directory yang ada pada server dengan Gobuster. Parameter wajib yang dibutuhkan oleh gobuster yaitu -w [/path/to/wordlist/] dan -u [url], Maka Gobuster akan mencari directory dengan cara bruteforce sesuai wordlist yang digunakan serta mengambil status code dari response web.

5th question yaitu mengupload shell ke server untuk mendapatkan akses, pada directory /panel disediakan fitur file upload yang bisa diexploit untuk mengupload shell dengan format php. Maka dari itu kita bisa menggunakan payload web shell opensource dari GitHub ini (https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php)

Jangan lupa merubah ip untuk mendapatkan reverse shell via nc yaa 😀

Ternyata pada saat melakukan proses file upload dengan extension .php, web ini melakukan filtering dari extension .php (upload gagal)

Maka dari itu dengan bantuan dari mbah Google ternyata kita bisa bypass format file tersebut dengan format yang lain sumber (https://book.hacktricks.xyz/pentesting-web/file-upload). Mari kita coba dengan mengubah .php menjadi .php5 dan berhasil :3

Lalu pada scanning directory yang sudah dilakukan, ada directory uploads untuk trigger web shell yang sudah kita upload. Juga jangan lupa untuk listen connection dari port reverse shell yang sudah ditentukan ya (dalam kasus ini saya gunakan port 1234)

*notes : tolong abaikan IP machine berbeda karena saya mengerjakan penulisan writeup ini dalam hari yang berbeda, jadi saya mendapatkan IP baru dari TryHackMe hehe…

User flag ditemukan pada /var/www

Lalu sesuai dengan tahap pentesting diatas, tahap berikutnya yaitu privilege escalation. TryHackMe sudah memberikan soal untuk recon service apa yang vulnerable untuk mendukung step ini.

Saat recon SUID (Set Owner User ID) ternyata ada python disana, dengan bantuan GTFOBins (https://gtfobins.github.io/) kita bisa melakukan privilege escalation. By the way, SUID itu adalah special permission yang tertera pada sebuah script, aplikasi, maupun service yang apabila dijalankan maka UID (User ID) yang dibaca itu sesuai SUID yang telah dipasang (pada kasus ini adalah root) bukan sebagai www-data.

Command ini berfungsi untuk mencari SUID dimulai dari directory (/) dengan kepemilikan root dengan special permission 4000 (SUID)

Jika kita lihat dari (http://www.filepermissions.com/file-permission/4000) permission 4000 itu untuk memasang SUID pada sebuah file. ‘S’ itu menandakan bahwa SUID telah dipasang.

Privilege Escalation :

Dengan menggunakan payload diatas maka kita bisa mendapatkan akses root dari machine ini.

Bryan Satyamulya

By BlackBear

Eager to learn something new in Cyber Security, especially Pentesting & CTF

Leave a comment

Your email address will not be published. Required fields are marked *