Post

Building the Security Lab: Kali + DVWA

Preparing an attacker-target lab with Kali Linux and DVWA, then performing network reconnaissance to map the lab.

Building the Security Lab: Kali + DVWA

Overview

With Proxmox running and Pi-hole handling DNS, the infrastructure was stable. The next step was building what the homelab was actually designed for: a safe environment to practice offensive security techniques.

This post covers deploying the attacker and target machines, and executing initial network reconnaissance against the lab.


Lab Architecture

The security lab consists of two virtual machines on the same internal Proxmox network:

RoleMachinePurpose
AttackerKali LinuxPurpose-built offensive security distribution with pre-installed tooling
TargetUbuntu Server + DVWADeliberately vulnerable web application with adjustable difficulty levels

Deploying the Attacker: Kali Linux

Kali Linux was deployed using its pre-built VM image, following the standard Proxmox workflow: download ISO, upload to local storage, configure the VM, and boot.

SettingValue
OSKali Linux 2025.2
CPU2 vCPUs
RAM2 GB

Kali VM settings Kali VM configuration in Proxmox

Kali desktop running Kali Linux desktop running inside Proxmox


Deploying the Target: Ubuntu Server + DVWA

The target machine runs DVWA (Damn Vulnerable Web Application), a purpose-built insecure web application designed for security testing practice. It provides adjustable security levels (Low, Medium, High, Impossible) that progressively introduce real-world defenses.

Downloading Ubuntu ISO Downloading the Ubuntu Server ISO

Ubuntu Server installation Ubuntu Server installation in progress

Ubuntu Server running Ubuntu Server VM operational

With the OS installed, DVWA was deployed and its database initialized:

DVWA database setup DVWA database initialization

DVWA login page DVWA login page accessible from the Kali VM — lab is operational


Reconnaissance

Before engaging any DVWA modules, standard reconnaissance was performed from the Kali VM to map the environment and confirm reachability. This mirrors real-world methodology: understand the environment before testing it.

Connectivity Verification

A basic ping confirmed Kali could communicate with other hosts on the network:

Ping test Ping confirming LAN reachability from Kali to Pi-hole

Nmap Scanning

A series of progressively detailed Nmap scans were executed against the gateway and Pi-hole container:

Host Discovery: identifying live hosts on the network:

Nmap host discovery Nmap host discovery scan results

Service Enumeration: identifying open ports and running services:

Nmap service scan Nmap service enumeration output

Aggressive Scan: OS detection, version fingerprinting, and default scripts:

Nmap aggressive scan Nmap aggressive scan with OS detection and script results

All scan results, including a Nikto web vulnerability scan, were saved to log files for documentation. Running scans against machines I deployed built yourself was helpful for learning: I knew exactly what should be there, so interpreting the results was intuitive.


What’s Next

The lab is operational and the network is mapped. The next post covers working through DVWA’s brute force module, using Burp Suite and Hydra to crack authentication at two different security levels, and analyzing what each defensive mechanism actually prevents (and what it doesn’t).

This post is licensed under CC BY 4.0 by the author.