Retas.io Zombie VM Write-up

Retas.io Zombie VM Write-up

Retas.io merupakan sebuah perusahaan dari PT. Solusi Siber Teknologi yang menawarkan berbagai produk berupa jasa keamanan mulai dari Vulnerability Assesment, Penetration Testing hingga kebutuhan khusus lainnya yang berkaitan dengan IT dan keamanannya.

Baru-baru ini retas.io meluncurkan sebuah produk baru berupa labs yang berguna untuk membantu para player baru yang terjun ke dunia Infosec, labs ini sendiri mirip-mirip hackthebox, dengan menggunakan vpn kita diharuskan menyelesaikan tantangan yang diberikan dengan pengetahuan dan kemampuan IT para player, tidak hanya itu mereka juga akan merilis kampus retas yang bertujuan memberikan pendidikan / pelatihan untuk terjun di dunia Infosec, namun pada saat tulisan ini dibuat fitur tersebut masih dalam proses pengerjaan, langsung saja berikut adalah write-up dari Challenges VM Zombie yang ada pada labs retas.io.

Berawal dari gabut yang melanda ketika #stayathome saya memutuskan untuk berjelajah di internet, membuka salah satu social media yang berisi konten pamer, namun pada saat melakukan scrolling terdapat informasi tentang labs ini dan pada waktu itu labs telah dibuka dan langsung saja kita buat akun vpn dan starting our machine.

Reconnaisance

Melakukan nmap pada IP VM Zombie di 10.10.10.2 dan didapatkan informasi berupa port 80 dengan service nginx (web service) serta port 22 ssh

scan nmap

Setelah mendapatkan informasi di atas, kita buka port 80 ternyata ada “zombie” dan ketika dibuka tidak ada informasi yang cukup menarik.

zombie

Kita lakukan dirserach untuk mencari file-file yang kemungkinan tersimpan pada server.

dirsearch result

Namun hasil dari dirsearch tidak ada file menarik lainnya yang ditemukan, lalu kembali lagi pada halaman index, kita inspect element

inspect index

ternyata ada informasi untuk developer jika mereka lupa user login maka disuruh check file utekludimana.txt kita coba akses file tersebut

hanya berisikan teks zombie

isi file utekludimana.txt

sampai sini saya sudah mulai stuck dan bingung mau ngapain lagi, disini kita dapat informasi berupa nama username dengan zombie tanpa diketahui passwordnya serta tidak ada webapp yang ditemukan, teringat kembali terhadap hasil scan port awal tadi, kita coba untuk melakukan bruteforce login ssh dengan username zombie dan passlist kesukaan yaitu rockyou.txt disini kita akan menggunakan hydra untuk tools bruteforce loginnya.

bruforce dengan hydra

dan didapatkan password berupa mickey.

Gainning Access

Setelah mendapatkan informasi login ssh user zombie dengan password mickey kita login ke server melalui protokol ssh.

bruforce dengan hydra

Disini kita sudah mendapatkan low privileges user serta dapat membuka file user.txt atau file flag user.

Untuk mendapatkan root user langsung kita upload lse.sh untuk membantu melakukan enumerasi privileges escalation dan kita mendapatkan informasi jika user zombie ini masuk ke dalam group lxd dengan kata lain user zombie dapat menjalankan command lxd dengan bantuan internet kita mencari informasi mengenai informasi privileges escalation dengan lxd dan terdapat banyak artikel yang membahasnnya

Berikut adalah artikel yang saya gunakan sebagai referensi terhadap privileges escalation pada machine ini.

Privileges Escalation to root

melakukan lxd init untuk memastikan lxd udah diinisiasi lxd-init

karena server zombie berada di safe enviorment dan tidak mendapatkan koneksi internet maka dari itu kita membuild image lxd alpine di localmachine kita

build image

git clone  https://github.com/saghul/lxd-alpine-builder.git
cd lxd-alpine-builder
./build-alpine

Kita check apakah build sudah berhasil atau tidak, terdapat file tar.gz yang menunjukan bahwa file tersebut merupakan file hasil build tadi dengan kata lain sukses build.

check build

Lalu kita transfer ke machine zombie, bisa dengan scp ataupun wget dengan cara membuka http.server

transfer to machine

Melakukan import image yang telah didownload sebelumnya.

import lxc

lxc image import ./apline-v3.10-x86_64-20191008_1227.tar.gz --alias myimage
lxc image list

Get root and root flag

root

lxc init myimage ignite -c security.privileged=true
lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
lxc start ignite
lxc exec ignite /bin/sh
id