Docker Zero to Hero For Hackers: A Practical Guide for Cybersecurity Enthusiasts

Docker Zero to Hero For Hackers: A Practical Guide for Cybersecurity Enthusiasts

What is a container?

Press enter or click to view image in full size

Containers vs Virtual Machines

Why are containers lightweight?

Docker Architecture

How to use Docker?

Docker LifeCycle

Understanding the Terminology

Docker Daemon

Docker Client

Docker Desktop

Docker Registries

INSTALL DOCKER

Press enter or click to view image in full size

For a quick demo, create an Ubuntu EC2 instance on AWS and execute the following commands:

sudo apt update
sudo apt install docker.io -y

Start Docker and Grant Access

sudo systemctl status docker

If not running, start the daemon:

sudo systemctl start docker

Grant access to your user:

sudo usermod -aG docker ubuntu
docker run hello-world

Docker is installed, up and running

docker run hello-world

Docker Images for Cybersecurity/Pentesting

Kali Linux:

docker pull kalilinux/kali-linux-docker

Example uses:

docker run -it kalilinux/kali-linux-docker /bin/bash

Additional Example 1: Launching Wireshark for network analysis within the Kali Linux container:

docker run -it --rm --net=host --cap-add=NET_ADMIN kalilinux/kali-linux-docker wireshark
docker run -it --rm kalilinux/kali-linux-docker nmap -p 1-1000 192.168.1.1
docker run -it --rm kalilinux/kali-linux-docker john --wordlist=/usr/share/wordlists/rockyou.txt /path/to/password/file

Metasploit Framework:

docker pull metasploitframework/metasploit-framework

Example Usage:

docker run --rm -it metasploitframework/metasploit-framework

Additional Example 1: Running an auxiliary module for HTTP enumeration:

docker run --rm -it metasploitframework/metasploit-framework msfconsole -x "use auxiliary/scanner/http/http_enum; set RHOSTS 192.168.1.1; run"
docker run --rm -it metasploitframework/metasploit-framework msfconsole -x "use exploit/windows/smb/ms08_067_netapi; set RHOSTS 192.168.1.1; run"
docker run --rm -it metasploitframework/metasploit-framework msfconsole -x "use auxiliary/scanner/ssh/ssh_login; set RHOSTS 192.168.1.1; set USER_FILE /path/to/usernames.txt; set PASS_FILE /path/to/passwords.txt; run"

Conclusion