Lewati ke konten utama
Kali Linux Indonesia

Lab Keamanan

Cara Menyiapkan Lab Web Vulnerable di Docker dengan kalilinux

Panduan menyiapkan lab web vulnerable di Docker dengan kalilinux. Fokus OWASP Juice Shop, DVWA, isolasi lab, dan pemetaan nmap yang aman.

Cara Menyiapkan Lab Web Vulnerable di Docker dengan kalilinux

Setelah instalasi kalilinux selesai, biasanya ada satu pertanyaan yang muncul: bagaimana cara menguji tool seperti nmap dan Burp Suite dengan target yang aman. Menyiapkan lab web vulnerable di Docker menjawab itu tanpa perlu menyewa server publik atau menyentuh sistem orang lain. Fokusnya sederhana, satu container berisi aplikasi web yang memang dirancang untuk dipelajari kelemahannya.

Saya menulis catatan ini sebagai pengingat lab pribadi. Semua skenario di sini hanya untuk pembelajaran etis, CTF legal, atau persiapan sertifikasi. Jangan arahkan pengujian ke sistem yang tidak Anda miliki. Untuk mulai, image yang paling praktis adalah OWASP Juice Shop , proyek latihan yang menyediakan lebih dari 100 tantangan keamanan.

Kenapa Docker untuk Lab Web Vulnerable?

Docker membuat lab web vulnerable lebih ringan dibandingkan VirtualBox penuh. Satu container bisa berjalan dalam hitungan detik, memakai RAM lebih sedikit, dan mudah dihapus jika konfigurasi rusak. Di sisi host, kalilinux sudah memiliki banyak tool audit, jadi kita tidak perlu membangun target dari nol.

Keuntungan lain adalah reproduksibilitas. Ketika teman satu tim CTF ingin meniru lab yang sama, cukup bagikan file compose atau perintah Docker. Tidak ada drama perbedaan versi PHP, MySQL, atau Apache. Selain itu, Docker memungkinkan isolasi berbasis network internal, sehingga port lab tidak langsung terbuka ke jaringan luar.

Persiapan Awal di kalilinux dan Docker

Pertama, pastikan Docker sudah terpasang di sistem kalilinux. Buka terminal lalu jalankan perintah berikut.

sudo apt update && sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

Setelah itu keluar dari terminal dan masuk lagi agar grup Docker aktif. Cek dengan docker version. Kalau muncul versi client dan server, instalasi berhasil. Langkah berikutnya membuat network khusus untuk lab agar container container saling terhubung tanpa ganggu host.

docker network create --subnet=172.16.10.0/24 lab-vuln

Pemakaian subnet terpisah seperti 172.16.10.0/24 membantu memetakan target secara konsisten. IP container bisa ditentukan manual, jadi latihan nmap tidak berubah setiap kali container restart.

Menjalankan OWASP Juice Shop

OWASP Juice Shop adalah aplikasi e-commerce buatan yang sengaja memiliki celah keamanan. Mulai dari XSS, SQL injection, hingga broken access control. Versi terbaru masih aktif dikembangkan dan cocok untuk pemula sampai menengah.

docker pull bkimminich/juice-shop
docker run -d --name juice-shop --network lab-vuln --ip 172.16.10.10 -p 3000:3000 bkimminich/juice-shop

Akses http://localhost:3000 dari browser host. Tantangan pertama biasanya muncul di halaman score board. Anda bisa membaca petunjuk tantangan, lalu mencoba menyelesaikannya dengan tool dari kalilinux.

Tampilan OWASP Juice Shop di Docker pada lab kalilinux
Tampilan OWASP Juice Shop di Docker pada lab kalilinux

Kalau container gagal start, periksa docker logs juice-shop. Biasanya port 3000 bentrok dengan aplikasi lain. Hentikan proses yang memakai port tersebut atau ubah mapping port -p 3001:3000.

Menjalankan DVWA untuk Latihan SQL Injection

Damn Vulnerable Web Application atau DVWA masih relevan untuk latihan dasar. Aplikasi ini memiliki modul SQL injection, command injection, file upload, dan CSRF. Skor tantangannya lebih rendah dari Juice Shop, tetapi pengaturan level rendah, medium, high membantu memahami perbaikan keamanan.

docker pull vulnerables/web-dvwa
docker run -d --name dvwa --network lab-vuln --ip 172.16.10.11 -p 8080:80 vulnerables/web-dvwa

Buka http://localhost:8080 dan login dengan kredensial admin serta password password. Setelah masuk, klik Create/Reset Database untuk menyiapkan tabel latihan. Gunakan mode low security terlebih dahulu, lalu naikkan level setelah memahami dasar serangan.

Uji Akses dan Pemetaan dengan nmap

Dari host kalilinux, gunakan nmap untuk memeriksa layanan pada container. Karena lab ini berjalan di localhost, perintah berikut aman dijalankan.

nmap -sV -p 3000,8080 127.0.0.1

Hasilnya akan menampilkan versi layanan di port 3000 dan 8080. Informasi ini berguna untuk memahami bagaimana tool eksternal melihat target. Jangan pernah memindai IP publik tanpa izin, karena itu masuk aktivitas ilegal di banyak negara.

Hasil pemindaian nmap terhadap port lab web vulnerable
Hasil pemindaian nmap terhadap port lab web vulnerable

Untuk latihan yang lebih dalam, arahkan nmap ke IP internal container. Contoh nmap -A 172.16.10.10. Flag -A mengaktifkan deteksi OS, service, dan traceroute, tetapi cukup lambat. Mulai dari -sV saja supaya hasilnya mudah dibaca.

Menjaga Lab Tetap Terisolasi dan Bersih

Setelah selesai, matikan container dan hapus network agar tidak ada proses yang berjalan di latar belakang. Perintah ini juga mencegah port 3000 dan 8080 tetap terbuka.

docker stop juice-shop dvwa
docker rm juice-shop dvwa
docker network rm lab-vuln

Kalau lab akan dipakai rutin, buat file Docker Compose. File itu memuat service Juice Shop dan DVWA sekaligus, sehingga satu perintah docker compose up -d sudah cukup. Simpan di folder khusus seperti ~/lab/kalilinux.

Laboratorium seperti ini memberi ruang aman untuk mencoba berbagai teknik yang dipelajari dari modul sertifikasi. Setelah lab berjalan, latihan berikutnya bisa diarahkan ke pemetaan endpoint dengan curl, membaca request dengan Wireshark, atau menulis aturan firewall di host. Semua tetap dalam kendali penuh dan tidak melanggar batas hukum.

Pertanyaan yang sering diajukan

Apakah saya perlu install VirtualBox untuk lab web vulnerable?
Tidak harus. Docker lebih ringan dan cepat, tetapi tetap bisa digabung dengan kalilinux sebagai host attacker.
Apakah OWASP Juice Shop legal untuk dipelajari?
Legal jika dijalankan di lab pribadi atau CTF resmi. Aplikasi ini sengaja dirancang untuk pelatihan keamanan.
Bagaimana cara mematikan lab setelah selesai?
Gunakan docker compose down atau docker stop agar container berhenti dan port tidak terekspos ke jaringan.
Apakah kalilinux wajib untuk menjalankan lab ini?
Tidak wajib, tetapi kalilinux mempermudah karena sudah memuat nmap, curl, dan berbagai tool audit berbasis CLI.