[VulnHub] Os-hackNos-2 WriteUp
Information Gathering
Nmap
nmap -sV -sC -p- hacknos.vh -oN initial.nmap -v
Dari hasil portscan diatas server cuma menjalankan SSH dan web server.
Directory Scanning
dirb http://hacknos.vh /usr/share/wordlists/common.txt
Server menggunakan CMS Wordpress.
WPscan
wpscan adalah salah satu tools yang sering digunakan untuk melakukan scanning di web yang menjalankan WordPress. Umumnya wpscan digunakan untuk mengetahui versi wordpress, tema, dan plugin yang terpasang.
wpscan --url http://hacknos.vh/tsweb/
Ternyata web target menggunakan plugin grace-media-player, cari nama plugin + ‘vulnerability’ maka ketemu bug LFI [exploit.db].
Local File Inclusion (LFI) adalah kerentanan/vulnerability yang umum ditemukan pada aplikasi web. Kerentanan ini memungkinkan penyerang/attacker untuk menyertakan file lokal yang tersimpan di server agar dapat menjadi bagian dari proses eksekusi aplikasi. (harryadinanta.com)
Exploitation
Setelah mengetahui ada bug LFI di web diatas, coba buka link yang kemungkinan vulnerable.
http://hacknos.vh/tsweb/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../../../../../../../../etc/passwd
Dan kita mendapatkan informasi user dan group di server dan ada hash password user ‘flag’ dibawah :D
Langkah selanjutnya adalah password cracking menggunakan john. Pertama copy data hash user flag ke file txt.
echo 'flag:$1$flag$vqjCxzjtRc7PofLYS2lWf/' > flag_hash
Lalu crack dengan john.
john flag_hash /usr/share/wordlists/rockyou.txt
rockyou.txt contains 14,341,564 unique passwords, used in 32,603,388 accounts. Kali Linux provides this dictionary file as part of its standard installation.. gampangnya rockyou.txt adalah file berisi kumpulan password dengan kekuatan lemah.
Tunggu selesai lalu siap dihidangkan buka flag_hash menggunakan john.
john --show flag_hash
Dari hasil diatas maka kita telah mendapat username dan password untuk user flag.
SSH dengan user flag
Sebelumnya yang kita ketahui adalah kita bisa mendapat file passwd server, dan di dalam file tersebut terdapat informasi user, group, homedir, dan shell user terkait. Salah satu hal yang cukup menarik perhatian adalah adanya user ‘backup’ dengan homedir di /var/backups. Dan biasanya dalam CTF direktori backup adalah tempat bersemayamnya file-file konfigurasi server, database, hingga password yang bersangkutan
Setelah kita login dengan user flag, ternyata kita hanya mendapat akses shell restricted. Yang mana kita tidak bisa melakukan command yang direstrict oleh si owner.
Salah satu cara untuk membypass restricted shell adalah dengan memanggil shell (/bin/sh) dengan salah satu bahasa pemrograman yang tersedia dalam suatu server. Karena di server ini terdapat python maka gunakan python.
python3 -c "import pty; pty.spawn('/bin/sh')"
Kita dapat akses shell dan bisa menjalankan semua command non-sudo.
Referensi untuk bypass restricted environtment ataupun melakukan privilege escalation di sistem Linux dapat di cek di GTFObins atau ExploitDB.
Langkah selanjutnya adalah memeriksa isi /var/backups dan ternyata ada direktori passbkp yang berisi MD5 hash password untuk user rohit
“Another password cracking, another GPU burning”
Lakukan password cracking dengan john lagi. Dan ternyata crackingnya cukup memanaskan laptop karena kombinasi passwordnya lumayan rumit…
SSH dengan user rohit
Login dan kita dapat flag user :)
Next kita harus dapat root flag yang berada di /root yang pastinya cuma bisa diakses oleh si root sendiri. *Yo dawg*
Privilege Escalation
Hal wajib untuk privesc di sistem Linux adalah linenum.sh, copas/download lalu jalankan script tersebut di target.
Dan ternyata kita masuk ke group lxd yang bisa punya permission untuk melakukan sudo (sudoers). Dengan ini kita hanya perlu “sudo su” untuk masuk ke user root
Sekian writeup kali ini, see ya!