Course·Beginner·9 lessons·147 minIN PROGRESS
Docker 101 for offense
Docker is a dev tool that happens to be pretty useful for offense. This course covers the basics to get up and running. We cover what a container actually is, running any tool at any version without installing it, cross compiling for different target architectures, building your own attack image, creating a local lab you can pivot through, and what to do when you get Docker access during an engagement.
Start lesson 01 →Outcomes
- Explain what a container is and isn't
- Run any tool at any version without installing it on your host
- Move files in and out of a container without leaving root-owned junk behind
- Build a static binary for an architecture you do not have hardware for
- Write custom Dockerfiles for an attack image
- Use Docker commpose to setup a multi-host lab
- Recognise the container misconfigurations that hand you the host
- 01✓ Done10 minGetting Docker runningGet Docker installed and make sure everything is set up by running your first container.
- 02✓ Done18 minWhat Docker actually isA container is a normal process wearing a blindfold. Here is what the kernel is doing, and why that matters when you are the one holding the shell.
- 03✓ Done16 minA tool for every jobRun any tool at any version without trashing your host, and stop maintaining five Pythons.
- 04✓ Done20 minBuild for hardware you do not haveBind mount your working directory into a container, then statically compile an exploit for an architecture you own no hardware for.
- 05✓ Done16 minYour own attack imageWrite a Dockerfile once and stop paying for apt-get on every run. Layers, cache, and a Kali image that starts in a second.
- 06✓ Done15 minContainer networkingBridge, host, none, and sharing another container's stack. We have so many network options.
- 07✓ Done22 minA lab in one fileTwo targets, two subnets, one attacker container, and a pivot. Compose gives you a segmented network to practise on in about thirty seconds.
- 08✓ Done18 minDocker as an attack surfaceA mounted socket, a privileged flag, or a shared PID namespace. Three ordinary looking configurations that each hand you the host.
- 09✓ Done12 minTearing it downReclaim the disk Docker quietly ate, and move a built image onto a machine with no internet.