Part of the Assume-Breach series — five hands-on security labs, two companion books, and a game. Browse them all at the series hub.
▶ Start here: https://ethicalhacking.borck.education/ — or run ./start.sh.
Using an AI assistant? Make it a thinking partner, not an autopilot — and never run a command you can't explain. The series guide Learning with AI shows how, including how to repeat each lab until you don't need the assistant at all.
A hands-on, self-paced ethical hacking lab series — 12 Docker-based labs you can run anywhere. Each lab lives in its own folder with a Docker Compose setup, a lab guide, and supporting resources.
| Week | Topic | Lab Focus | Key Tools/Services |
|---|---|---|---|
| 1 | Setup Docker Environment | Basic setup and toolkit check | Wireshark (browser), Kali base |
| 2 | Ethical and legal issues | Readings and discussions | N/A (docs only) |
| 3 | Scope and proposal development | Traffic analysis | Wireshark + sample captures |
| 4 | Reporting and engagement close out | Scanning targets | Nmap on targets |
| 5 | System and network enumeration | Enumeration | LDAP, MySQL, SMB, SNMP, Netshoot |
| 6 | Password cracking | Cracking techniques | John, Hydra, SSH target |
| 7 | Web app vulnerabilities | SQLi, XSS | DVWA, Juice Shop |
| 8 | Privilege escalation | Escalation vectors | De-ICE S1.100 sim (web, SSH, FTP, mail) |
| 9 | Lateral movement | Pivoting | SSH/SOCKS tunnels, dual-network sim |
| 10 | Exploit development | Buffer overflows | GDB, vulnerable bins |
| 11 | Bypassing physical access | Physical security | Access-control logic sim (RFID analog) |
| 12 | Social engineering | Phishing mitigation | GoPhish, MailHog, awareness |
All labs share a base Kali image, ghcr.io/michael-borck/ethical-base, built from base.Dockerfile with core tools (nmap, hydra, john, hashcat, wireshark, sqlmap, gobuster, …). A GitHub Actions workflow (.github/workflows/build-base.yml) builds and publishes it to GHCR on every change, so labs just pull it.
- Default (online):
docker compose up -dpulls the prebuilt image — no local build step. - Fallback (offline, or to customise the tools):
make build-basebuildsbase.Dockerfilelocally and tags it with the same name, sodocker compose upuses your local copy automatically.
After the first workflow run, set the package to Public at
github.com/users/michael-borck/packages/container/ethical-base/settingsso anyone can pull without authenticating.
-
Clone & enter a week:
git clone https://github.com/michael-borck/ethical-hacking-docker-labs.git cd ethical-hacking-docker-labs/labs/week6 -
Start the lab:
docker compose up -d— the base image and all target services pull automatically. (First run takes a few minutes to pull.) -
Enter the attacker shell:
docker exec -it <container> bash— each week's README names its attacker container (e.g.password-cracking-lab). -
Stop / clean up: from the week folder,
docker compose down; ormake stop-allfrom the repo root.
Repo-root convenience targets: make run-weekN (start week N), make status (list all weeks), make pull-base (refresh the base image), make build-base (build the base locally).
All 12 weeks are implemented. Week 2 is docs-only (ethics & law); weeks 1 and 3–12 are hands-on Docker labs. Run make status from the repo root to see which weeks are ready and their start commands. Each hands-on lab ships a README.md, a LAB-GUIDE.md, and any seed files its services need.
base.Dockerfile: Shared Kali base image source..github/workflows/build-base.yml: CI that builds and publishes the base image to GHCR.labs/weekN/: Per-week setups (compose, README, worksheet, seed files).data/: Shared resources (e.g. packet captures for the traffic-analysis lab).Makefile: Orchestration (build/pull base, run/stop weeks, status)..gitignore,LICENSE: Housekeeping.
Quickstart:
git clone https://github.com/michael-borck/ethical-hacking-docker-labs.git
cd ethical-hacking-docker-labs/labs/week6
docker compose up -d # pulls the base image + targets
docker exec -it password-cracking-lab bashRun in an isolated environment. You only need Docker installed — no local build step.
Note: Educational only. Follow ethics; no real-world testing without permission.
Generated with Claude Code.
0 comments
log in to comment.