Privilege Escalation Exploiting a SUID binary & Path Hijacking

Assalamualaikum ..

Akhir-akhir ini saya suka bermain hackthebox, apa itu hackthebox ?

Hackthebox sendiri adalah sebuah online platform yang memungkinkan kita untuk mengasah skill penetration testing kita. Dan juga memungkinkan kita untuk bertukar fikiran dan metodologi  dengan ribuan orang yang sedang mendalami bidang cyber security. Dimana dalam platform tersebut kita bisa melakukan penetration testing pada mesin-mesin aktif dan challanges lainnya, kira-kira seperti itu. Dan berhubung saya orangnya pelupa maka setiap poin baru yang saya pelajari akan saya tulis diblog teman saya ini agar suatu saat jika saya butuh saya tinggal buka blog ini. Okay sesuai dengan judulnya kali ini saya akan membahas tentang Privilege Escalation Exploiting a SUID binary & Path Hijacking.

Jadi kita tahu bahwa suid binary bisa kita manfaatkan untuk melakukan privilege escalation dan dalam kasus yang saya temukan pada mesin htb yang saya kerjakan terdapat sebuah binary yang bisa dieksekusi pada level user dan root, lebih tepatnya user bisa melakukan read dan execute pada binary tersebut. Untuk mencari binary executable bisa dengan command berikut “find / -uid 0 -perm -4000 -type f 2>/dev/null”

Pada mesin ini kita bisa lihat sebuah binary yang bukan binary standard yaitu /usr/local/bin/docker-security. Kemudian kita coba lihat dengan cara ls –l /usr/local/bin/

Maaf saya sensor karna mesin ini belum retired. Setelah saya coba download file tersebut ke os saya dan saya buka file tersebut kemudian mengumpulkan stringnya dengan command “strings docker-security”

Pada binary tersebut ternyata menggunakan chmod untuk memberikan hak akses pada docker.

Disini awalnya saya terkecoh, saya membaca sebuah referensi tepatnya disini https://book.hacktricks.xyz/linux-unix/privilege-escalation#suid-binary-with-command-path

Pada referensi tersebut dijelaskan kalau file binary memanggil service dengan cara memanggil full path nya yaitu /usr/sbin/service. Kalau diterapkan pada mesin ini cara memanggilnya seperti ini /usr/bin/chmod. Tetapi pada mesin ini tidak, mesin ini hanya memanggil chmod saja tanpa full path sehingga kita bisa melakukan path hijacking. Sekedar tambahan saja apabila binary tersebut memanggil perintah chmod dengan full path kita bisa menggunakan cara yang sama dengan referensi pada hacktriks yaitu dengan cara membuat sebuah function dengan nama yang sama yaitu chmod.

Ok lanjut, setelah kita tahu bahwa binary tersebut memanggil perintah chmod tanpa full path kita sekarang akan membuat sebuah bash script yang bernama chmod sehingga saat binary tersebut memanggil perintah chmod, yang terpanggil bukanlah chmod yang terdapat pada /usr/bin/chmod tetapi script yang kita buat.

Disini saya membuat sebuah script dengan perintah untuk melakukan reverse shell, saya buat pada directory /tmp. Jangan lupa beri hak executable pada script tersebut dengan command “chmod +x /tmp/chmod”

Kemudian saya listen port 6969 pada os saya.

Sekarang path environmentnya kita arahkan ke /tmp karena script yang kita buat tadi diletakkan disitu.

Kemudian kita execute binary docker-security tadi, maka saat binary tersebut memanggil chmod otomatis yang dieksekusi adalah script yang saya buat tadi.

Execute Binary File
Default image
Ramdani

Leave a Reply