Maskuri
TryHackMe adalah platform pembelajaran daring yang dirancang khusus untuk belajar tentang keamanan jaringan, hacking, dan teknik-telik yang terkait. Platform ini menawarkan berbagai ruang belajar (rooms) yang mengajarkan berbagai konsep keamanan informasi melalui serangkaian tantangan dan latihan praktis. Pengguna dapat mengakses materi belajar, menyelesaikan misi, dan mengembangkan keterampilan dalam lingkungan yang aman dan terkontrol. Dan pada kali ini kita akan belajar dengan menggunakan mesin "ROOTME"".
Hallo, disini saya akan menuliskan bagaimana saya menemukan flag pada mesin “ROOTME” yang ada pada paltform TryHackMe. ini sangat cocok sekali bagi para pemula yang ingin belajar tentang cybersecurity. Silahkan Join pada platform TryHackMe untuk dapa belajar mengenai cybersecurity, atau bisa kunjungi link berikut https://tryhackme.com/.
Setelah berhasil login bisa join pada Room ROOTME, dengan masuk ke menu Learn, lalu pilih search, dan ketikan ROOTME. maka tampilan akan seperti gambar dibawah, dan silahkan join room
Setelah berhasil join room maka tampilan akan seperti gambar dibawah.
setelah itu kemudian bisa mulai download vpn dengan klik profil dan masuk kemenu acces dan download file open vpn yang di inginkan untuk dapat terhubung kemesin.
setelah berhasil di download bisa kembali room ROOTME kembali, dan bisa start mesin, lalu tunggu ip muncul. Sambil menunggu kita bisa jalankan VPN nya terlebih dahulu melalui terminal dengan ketikan perintah “openvpn <namavpn.ovpn>. jika belum di install open vpn bisa install terlebih dahulu dengan perintah ”sudo apt install openvpn -y".
setelah itu bisa cek dasboard apakah sudah conect atau belum. bisa juga melalu ping alamat ip mesin, apakah sudah connect atau belum.
Task 1 bisa kita complite karna hanya diminta untuk connect kedalam mesin,
setelah itu kita masuk kedalam task 2 yaitu Reconnaissance. kita dapat menggunakan tools NMAP. yaitu masukan perintah "nmap -T4 -sC -sV <ip address>, maka ana mucul hasil seperti berikut.
lalu kita diminta untuk menggunakan tools “gobuster” untuk mencari hidden directory yang ada pada mesin. kita dapat menggunakan perintah “ gobuster dir -u <ip addres> -w /usr/share/wordlists/dirb/commont.txt”. Ket: -w adalah wordlist yang akan gunakan biasanya untuk default kali linux berada pada /usr/share/wordlists/.
Nah kita sudah bisa untuk menjawab task 2, dengan hasil nmap dan juga gobuster.
lalu kita masuk ke task selanjutnya.
di task 3, ini kita mulai cari apakah terdapat satu fitur yang dapat disisipkan shell atau tidak, karna kita telah mendapatkan hidden directory melalui gobuster tersebut kita dapat mencobanya.
ternyata pada direktory /panel/ kita dapat mengupload sebuah gambar. dan pada direktori /uploads/ seperti nya kita dapat melihat gambar yang telah diunggah. dan ini dapat dimanfaatkan untuk mengupload sebuah shell yang dapat dieksekusi server.
Lalu saatnya kita coba untuk mengupload sebuah file berekstensi php, apakah bisa terupload atau tidak?. buat script seperti contoh berikut dan save dengan nama phpinfo.php, lalu kemudian coba upload kedalam direktori panel
ternyata untuk file berektensi php itu didapat diupload kedalam, tapi tenang, kita coba cari bagaimana cara untuk baypass nya.
ternyata di https://book.hacktricks.xyz/pentesting-web/file-upload kita dapat menggunakan beberapa ekstensi yang kita bisa coba. dan saya mencoba merubah dengan ekstensi .phar, apakah bisa? Dan ternyata setelah di ubah ekstensi menjadi .phar, dan Boom!! file berhasil diupload.
lalu bagaimana langkah selanjutnya? karena kita sudah mengetahuinya dapat teresksekusi, maka kita dapat merubah file tadi dengan script berikut.
lalu saya simpan dengan nama shell.phar, dan kemudian saya coba upload kembali.
sebelum kita coba eksekusi kita masuk kedalam terminal dahulu lalu jalankan perintah “nc -lnvp 4444” . baru kemudian kita coba klik file yang sudah terupload pada direktori /uploads/.
Dan BOOM!! kita sudah berhasil masuk kedalam sistem.
lalu kita diminta untuk mencari flag yang ada pada user.txt, untuk lebih mudahnya kita dapat menggunkan perintah “ find / -name user.txt 2>/dev/null” . setelah itu kita bisa gunakan perintah cat untuk melihat isinya.
dan kita berhasil mendapatkan flag nya. lalu kita masukkan kedalam task 3.
Namun pada Task 4, kita diminta untuk masuk kedalam SuperUser untuk mendapatkan flag pada root.txt, bagaimana caranya? kita dapat mengunakan perintah seperti dibawah, https://hidepatidar.medium.com/spawning-interactive-reverse-shell-7732686ea775
kita coba find untuk mencari sebuah direktori yang dimiliki root yang mempunyai permissions suid. https://www.tecmint.com/how-to-find-files-with-suid-and-sgid-permissions-in-linux/
kita coba amati seluruh direktori, dan kita coba apakah ada yang janggal, lalu kita coba. Dan saya memutuskan untuk mencoba pada /usr/bin/python. kita coba menggunakan perintah dari https://gtfobins.github.io/gtfobins/python/#suid . Dan BOOM!! kita berhasil masuk ke dalam sistem sebagai root.
lalu kita bisa mulai untuk mencari flag pada root.txt dengan perintah find. dan akhirnya kita telah berhasil mendapatkan flag terkahir pada root.txt.
lalu kita masukan kedalam TASK 4. and Missions Complete!!
Referensi :
https://book.hacktricks.xyz/pentesting-web/file-upload
https://hidepatidar.medium.com/spawning-interactive-reverse-shell-7732686ea775
https://www.tecmint.com/how-to-find-files-with-suid-and-sgid-permissions-in-linux/
https://gtfobins.github.io/gtfobins/python/#suid