Disclaimer: semua materi yang ditaruh di blog ini hanya untuk pendidikan dan riset. Jangan gunakan teknik yang sudah diajarkan ke sistem yang teman-teman bukan punya karena dapat berpotensi untuk merusak nya. Be smart ! and beware of the law !
Kita sering dengar dengan istilah tentang "privilege escalation" dalam proses penetration testing walaupun menurut saya proses ini sendiri cukup penting tetapi banyak temen-temen yang saya temui kadang-kadang sering kesusahan untuk melakukan teknik ini, karena ga tau harus ngapain. Oleh karena itu dalam kesempatan ini saya akan membahas beberapa teknik untuk melakukan "privilege escalation"
semoga apa yang diberikan di blog ini dapat membantu, mungkin dalam project atau ada yang lagi ikut oscp atau lagi main HTB (hack the box). Tapi pertama mari kita bahas beberapa teori sedikit yah !
Apa itu "privilege escalation" ?
"Privilege escalation" merupakan sebuah proses eksploitasi dalam operating system atau software yang bertujuan untuk mendapatkan akses yang lebih tinggi dari sebelumnya atau akses "admin" (di windows user paling tinggi hak nya adalah admin sedangkan di linux adalah "root")
Apakah perlu melakukan "privilege escalation" dalam proses penetration testing ?
menurut saya itu tergantung dengan permintaan klien, biasanya kalau untuk pentesting kebanyakan klien hanya minta untuk sampai level eksploitasi dengan user yang memiliki hak yang paling rendah karena takutnya bisa mempengaruhi kerja internal. (ini hanya berdasarkan pengalaman saya)
untuk melakukan demonstrasi saya akan memakai virtual machine "nebula" dari https://exploit-exercises.lains.space/
saya akan memainkan virtual machine ini sampai selesai agar bisa membahas semua teknik yang ada
Cara setup mesinnya gimana ?
pertama-tama anda harus download file .iso yang sudah ditaruh didalam website nya dan setelah selesai download anda harus membuat virtual machine itu .iso nya (dalam penjelasan ini saya memakai virtualbox untuk membuat vm nya)
saya memakai pengaturan OS nya seperti diatas, klik next saja terus sampai selesai
kalau sudah selesai nanti bakal ada file baru yang tertera di virtualbox anda jalankan dan buka file .iso yang anda sudah download.
Cara memainkan vm nya bagaimana ?
vm nebula ini dibagi menjadi 19 level, masing-masing level memiliki tugas yang berbeda-beda dan tiap level punya user yang berbeda-beda juga
contoh untuk masuk ke level00, kamu tinggal pakai username level00 dan password level00
oke kita langsung memainkan level00:
di level00 ini anda disuruh untuk mencari sebuah file yang memiliki Set User ID (SUID)
apa itu SUID ?
nah ini merupakan konsep dari "file permission" dari linux. Kita harus memahami ini dulu sebelum membahas SUID. Linux mempunyai konfigurasi file permission seperti contoh dibawah
RWX RWX RWX
4 2 1 4 2 1 4 2 1
owner group other
singkatnya linux membagi konfigurasinya menjadi 3 bagian yaitu untuk owner (pemilik), group (user lain yang merupakan satu kelompok dari owner) dan other (user yang bukan pemilik dan satu grup dengan owner)
masing2 bagian memiliki spesifikasi apa yang bisa dilakukan di file nya
r (read) = bisa membaca
w(write) = bisa melakukan edit dan membaca
x(execute) = bisa melakukan eksekusi
dengan menggunakan mengatur konfigurasi di atas dengan menggunakan utility chmod (merubah file permission) dan chown (merubah kepemilikan file)
contoh:
~# chmod 755 <file.sh>
ini berarti file.sh memberikan hak penuh (4(read)+2(write)+1(execute)) ke pemilik, hak baca dan eksekusi (4(read) + 1(execute)) untuk user lain dalam satu grup dengan pemilik dan
user yang bukan pemilik dan satu grup dengan owner
SUID berguna saat pemilik file mau mewariskan hak akses ke user lain dalam sistem tapi hanya untuk watu tertentu saja
jadi dengan menaruh SUID di sebuah file user lain mendapatkan hak akses dari pemilik program saat menjalakannya
Apa hubungannya SUID dengan privilege escalation ?
SUID bisa sangat berbahaya karena pemilik program memberikan hak ases dia saat user lain menjalankan programmnya jadi jika programnya memilik bug seperti buffer overflow yang membuat user dapat mengubah jalur eksekusi program dia akan mendapatkan hak akses dari pemilik program itu.
Cara menyelesaikan level00 ?
anda dapat mencari file SUID dengan mengecek satu persatu direktori di linux dan mencocokan file mana yang mempunyai permission seperti ini "rws" di file nya
tapi cara ini sangat menguras waktu dan pasti membuat anda kecapean
cara yang paling cepat adalah memakai utility "find"
~# find / -perm -u=s 2> /dev/null
/ pencarian dimulai dari direktori "/" yang berarti adalah root direktori
-perm -u = s artinya tolong cari semua file yang ada permission SUID
2> /dev/null artinya semua error tolong diarahkan ke /dev/null agar hilang karena kalau kita ga pakai tambahan perintah diatas akan banyak warning "permission denied" yang membuat susah pencarian
sesudah menjalankan perintah diatas kita dapat lihat ada file namanya flag00 dan sesudah kita menjalankan ini kita mendapatkan hak akses dari "flag00" dan bisa memberikan "flag" nya
sekian blog ini, semoga dapat memberi pencerahan untuk teman-teman
referensi:
https://docs.oracle.com/cd/E19683-01/816-4883/6mb2joatb/index.html
https://www.linuxnix.com/suid-set-suid-linuxunix/
Comments
Post a Comment