5.6 KiB
Chapter 5 - Kali Linux Attack Workstation
Kali Linux serves as the primary attack platform for the cyber range. This chapter covers installing, configuring, and organizing Kali into a professional penetration testing workstation.
Objectives
After completing this chapter you will have:
- Kali Linux installed
- Static networking configured
- SSH configured
- A professional directory structure
- Essential offensive security tools installed
- Wordlists organized
- Python virtual environments configured
- Go tools installed
- Notes synchronized
- Snapshots created
Virtual Machine Specifications
| Setting | Value |
|---|---|
| CPU | 2-4 vCPU |
| RAM | 4-8 GB |
| Disk | 80 GB |
| Bridge | vmbr1 |
| BIOS | UEFI |
| Machine | q35 |
Network Configuration
Static IP:
Hostname : kali
IP Address : 10.10.10.10
Subnet Mask : 255.255.255.0
Gateway : 10.10.10.1
DNS : 10.10.20.10
The gateway points to pfSense while DNS points to the Domain Controller after Active Directory has been deployed.
Verify:
ip addr
ip route
ping 10.10.10.1
ping 10.10.20.10
ping google.com
Update Kali
sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove -y
Reboot afterwards.
Create Your Workspace
Create a dedicated directory for all assessments.
mkdir -p ~/Labs
~/Labs
├── Active
├── Archive
├── Loot
├── Notes
├── Reports
├── Scans
├── Scripts
├── Tools
├── Wordlists
└── Screenshots
Each assessment gets its own folder.
Example:
~/Labs/Active/DC01
Install Essential Packages
sudo apt install \
git \
curl \
wget \
vim \
tmux \
jq \
ripgrep \
netcat-openbsd \
python3-pip \
python3-venv \
golang-go \
feroxbuster \
gobuster \
ffuf \
seclists \
impacket-scripts \
bloodhound \
crackmapexec \
evil-winrm \
enum4linux-ng \
hashcat \
john \
rlwrap
Some package names may vary slightly depending on the Kali release.
Install Go Tools
Create a Go workspace.
mkdir -p ~/go
Add to your shell configuration:
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
Useful tools include:
- Ligolo-ng
- Chisel
- Kerbrute
- Naabu
- Httpx
- Katana
- Notify
Install them with:
go install <package>@latest
Python Virtual Environments
Avoid installing Python packages globally.
Example:
python3 -m venv ~/venvs/tools
Activate:
source ~/venvs/tools/bin/activate
Git Repositories
Clone frequently used projects.
~/Labs/Tools
├── PEASS-ng
├── SecLists
├── LinEnum
├── Linux Exploit Suggester
├── PowerSploit
├── Nishang
├── Ligolo-ng
├── Chisel
└── Sherlock
Keep these updated regularly.
Wordlists
Organize custom wordlists.
Wordlists
├── DNS
├── Passwords
├── Usernames
├── Directories
├── API
└── Custom
Store any generated usernames or discovered passwords separately from the default SecLists.
SSH Configuration
Generate a keypair.
ssh-keygen -t ed25519
Test:
ssh localhost
If you plan to administer your servers from Kali, copy your public key to them.
Tmux
Create a repeatable workspace.
Example layout:
+----------------------+
| nmap |
+----------+-----------+
| shell | notes |
+----------+-----------+
Suggested windows:
- Enumeration
- Web
- Shells
- Notes
- Packet captures
Browser
Install:
- Firefox
- Burp Suite Community
- FoxyProxy extension
Configure Burp as the browser proxy.
Screenshots
Create a dedicated folder.
~/Labs/Screenshots
Use descriptive filenames.
Example:
01-nmap.png
02-smb.png
03-shell.png
Notes
Document everything.
Suggested structure:
Notes
├── Enumeration.md
├── Credentials.md
├── Findings.md
├── PrivEsc.md
└── Timeline.md
These notes will later be copied into Wiki.js.
Aliases
Useful aliases:
alias ll="ls -lah"
alias ports="ss -tulpn"
alias myip="ip addr"
alias cls="clear"
Customize this over time as your workflow evolves.
Snapshots
Create snapshots after:
FRESH_INSTALL
FULLY_UPDATED
TOOLS_INSTALLED
READY_FOR_ATTACK
This allows you to roll back after experimenting with new tools.
Validation Checklist
Before continuing:
- Static IP configured
- Internet access verified
- DNS working
- Kali fully updated
- Workspace directories created
- Offensive tools installed
- Wordlists organized
- SSH keys generated
- tmux configured
- Browser configured for Burp Suite
- Snapshot created
Recommended Daily Workflow
For each new target:
- Create a new folder in
~/Labs/Active. - Start a tmux session.
- Begin note-taking immediately.
- Save all scan results.
- Capture screenshots as you go.
- Record credentials and hashes in your notes.
- Write a short summary before moving to the next target.
- Transfer your final notes into Wiki.js.
Following the same workflow every time helps build discipline and makes it much easier to write professional reports later.
Next Chapter
The next chapter covers building the vulnerable machines that populate the enterprise network.
You'll deploy:
- Windows 10 workstations
- Windows file server
- SQL Server
- Ubuntu Linux target
- Web server
- Intentionally vulnerable configurations
- Snapshot strategy for repeatable practice