HackTheBox BroScience Write Up
Information Gathering
Scanning dengan Nmap, dan mendapatkan Port yang terbuka yaitu Port: 22 SSH, 80 HTTP Apache, 443 SSL/HTTP Apache
Scanning Fuzzing dengan berbagai tools dan mendapatkan directory:
Disini kita mendapatkan IDOR juga pada parameter ID
bila kita menginputkan atau mengganti user 1 menjadi 2 kita disini dapat melihat informasi data user tersebut
Dari scanning Fuzzing Directory tersebut kita mendapatkan Index of Directory Listing.
Selanjutnya bila kita membuka file img.php
akan mendapatkan error pada parameter path
Kita mencoba mengecek kerentanan LFI, disini kita mendapatkan filter dari website bila payload LFI ini ditolak oleh server
Selanjutnya kita mencoba bypass dengan cara URL Encode 2x seperti gambar dibawah:
Post Exploitation
Apabila kita menggunakan payload yang sudah di Encode URL kita akan mendapatkan response /etc/passwd
pada server website
Disini kita mengetahui user bill dan isi user yang ada pada /etc/passwd
Selanjutnya kita membaca file yang ada didalam directory apache tersebut disini kita membaca isi file db_connect.php
Disini kita membaca file utils.php
, file ini terdapat code untuk mengaktifiasi akun
Selanjutnya kita membaca activate.php
Apabila kita membuka register.php disini terdapat form register kita mencoba membuat akun pada form register ini
Kita akan menggunakan kode yang ditemukan di include/utils.php untuk menghasilkan kode aktivasi untuk pengguna yang kita buat sebelumnya. Sekarang saatnya mengaktifkan akun, menggunakan tanggal waktu yang didapat response
Selanjutnya kita membuat code php dengan mengambil source code yang didapat dari /utils.php
Berikutnya kita menginputkan code aktivasi pada directory /activate.php
dan menambahkan parameter code=
Selanjutnya kita membaca file utils.php
yang didapat dari kerentanan LFI
Disini kita membuat payload yang nanti bisa mengupload file dengan cookie
Setelah menjalankan code payload tersebut kita akan mendapatkan code untuk upload file keserver
Untuk payload kita menggunakan payload dibawah dengan cara reverse shell
Privileges Escalation
Selanjutnya kita akan Privileges Escalation pada file db_connetct.php
yang mendapatkan informasi sensitive disini dijalankan dengan psql secara langsung.
Kita menjalankan psql dan dengan payload dibawah dan untuk membaca isi psql tersebut kita menggunakan command seperti Mysql, dengan menginputkan select username, password from users;
Setelah user dan password didapat kita akan crack password tersebut dengan command dibawah
Disini kita mencoba login pada SSH dengan user dan password didapat tadi.
Setelah mencari cari yang ada di dalam SSH ini kita mendapatkan file renew_cert.sh. Skrip ini adalah skrip bash yang memeriksa kedaluwarsa file sertifikat SSL yang diberikan, dan jika hampir kedaluwarsa, ia akan mencetak informasi tentang sertifikat seperti negara, negara bagian, organisasi, dan nama umum. Skrip mengambil satu argumen, nama file sertifikat, dan menggunakan perintah openssl untuk memeriksa tanggal kedaluwarsa sertifikat dan mengekstrak informasi dari sertifikat. Skrip akan keluar dengan kode status 0 jika sertifikat belum perlu diperpanjang, dan 1 jika sertifikat hampir kedaluwarsa.
Jadi jika kita membuat sertifikat yang akan segera kedaluwarsa, root akan menghasilkan yang baru dan kita dapat melihat nama sertifikat tersebut adalah apa pun yang kita masukkan ke dalam variabel $commonname
.
Jadi mari buat sertifikat baru yang akan berisi kode berbahaya dengan nama umum sehingga root akan menjalankannya.
Anda dapat menggunakan tautan ini untuk membaca cara membuat sertifikat yang ditandatangani sendiri.
Selanjutnya kita mengecek apakah /bin/bash
sudah berubah permissionnya dan kita berhasil mendapatkan root access