[VulnHub] Os-hackNos-2 WriteUp

2 minute read

Information Gathering

Nmap

nmap -sV -sC -p- hacknos.vh -oN initial.nmap -v
nmap Dari hasil portscan diatas server cuma menjalankan SSH dan web server.

Directory Scanning

dirb http://hacknos.vh /usr/share/wordlists/common.txt
dirb 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/
wpscan 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
lfi 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
flaghash 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 :ok_hand: backups 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.
rbash 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 :grin:

“Another password cracking, another GPU burning”

Lakukan password cracking dengan john lagi. rohithash Dan ternyata crackingnya cukup memanaskan laptop karena kombinasi passwordnya lumayan rumit…

SSH dengan user rohit

Login dan kita dapat flag user :)
user.txt 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.
linenum
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 :smiley: root

Sekian writeup kali ini, see ya!