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.

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.
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.
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.