Complete this environment setup before students arrive. During training, students perform scenario changes and attacks as the attacker, then investigate, contain and recover as the defender. The exercise sequence requires no instructor actions or file releases.
172.29.242.30 with Nginx, SSH, remote desktop and active UFW.172.29.242.40 with IIS, DNS, remote desktop and enabled Windows Firewall profiles.Students create their own recovery copies, checksums, exercise accounts, dummy exposed files and evidence folders as directed by the HTML tasks. Attack actions and cleanup are included in their steps.
The outbound-transfer exercise needs a receiver outside both victim VMs. On the lab host, run this command from the repository before class:
python3 lab-tools/dummy-data-receiver.py
The receiver binds to 172.29.242.1:18081. Keep it running
throughout the exercise. It accepts only the exact supplied dummy payload from the assigned VM IP addresses.
/upload/linux; Windows uploads to /upload/windows./health and inspect /receipts/linux or /receipts/windows.Verify receiver health from both VMs before class. Keep this port on the isolated lab network.
Receipt pages show recent transfers since receiver startup. Receipts also persist in the host account’s
~/.local/state/ccdc-task15/receipts.jsonl. Students identify their transfer by time, source IP and checksum.
Ctrl+C stops a foreground receiver. Restart it before class after a host restart. If the lab host already runs the receiver as a user service, inspect that instance instead of starting a second one:
systemctl --user status ccdc-task15-receiver.service
After class, stop that service with:
systemctl --user stop ccdc-task15-receiver.service
This transient service does not start automatically after a host restart.
For a local test without the VMs, use loopback mode and immediate acknowledgement:
python3 lab-tools/dummy-data-receiver.py --bind 127.0.0.1 --hold-seconds 0
Classroom tasks use the default lab binding and observation delay. All student instructions are in the HTML training pages; students do not need the repository README or this setup page during their exercises.