- Created a comprehensive document detailing various SecGen lab scenarios, including setup, user accounts, vulnerabilities, and CTF steps. - Each scenario provides insights into player experiences and objectives, aiding mission designers in understanding gameplay dynamics. - Scenarios cover a range of topics, including Linux and Windows security labs, malware exploitation, information gathering, and post-exploitation techniques.
13 KiB
SecGen Scenario Summaries
This document provides concise summaries of SecGen lab scenarios to inform BreakEscape mission designers about what players will experience on the VMs.
1. Introduction to Linux and Security lab
desktop (Debian 12 KDE)
- Victim user with weak SSH password (brute forceable from top-20-common-SSH-passwords list), has flag in home directory
- Bystander user with flag (accessible via sudo from victim account)
- SSH root login enabled
- Main user account (random mythical creature name) with sudo access
kali
- Kali MSF with Metasploit framework, nmap, password tools
CTF Steps:
- Use Hydra to brute force SSH password for "victim" account (from common password wordlists)
- SSH into victim account, find flag in home directory
- Use sudo to access bystander's flag (victim has sudo privileges)
2. Malware and an Introduction to Metasploit and Payloads
windows_victim (Windows 7)
- User account with secret file (
my_secret.txt) containing sensitive data
kali
- Kali MSF with Metasploit framework, Apache web server, nmap, ClamAV antivirus
CTF Steps:
- Create remote access Trojan using msfvenom (e.g., reverse shell payload)
- Host Trojan on Apache, download and execute on Windows VM
- Use remote shell to retrieve
my_secret.txtfrom Windows desktop
3. Vulnerabilities, Exploits, and Remote Access Payloads
windows_victim (Windows 7)
- Vulnerable Adobe Reader (CVE-2008-2992) - client-side exploit via malicious PDF
- User account with secret file (
my_secret.txt) - Netcat installed for testing shell connections
linux_victim_server (Debian 12 KDE)
- Vulnerable distcc server (CVE-2004-2687) - remote code execution, yields flag
kali
- Kali MSF with Metasploit framework, Apache web server, nmap
CTF Steps:
- Exploit remote distcc service (CVE-2004-2687) using Metasploit (exploit/unix/misc/distcc_exec)
- Find flag in distccd user's home directory
5. Information Gathering: Scanning
linux_victim_server (Debian 12 KDE)
- Vulnerable distcc server (CVE-2004-2687) with flag
- Multiple netcat services with flags (one base64 encoded)
- Apache HTTP server
- FTP server
kali
- Kali MSF with Metasploit framework, nmap, amap
CTF Steps:
- Scan for open ports and services
- Banner grab from netcat services to find flags (one flag is base64 encoded, needs decoding)
- Exploit distcc vulnerability (CVE-2004-2687) to find additional flag
6. From Scanning to Exploitation
windows_server (Windows 7)
- Vulnerable EasyFTP server (RCE vulnerability)
- Flag in
flag.txtfile
linux_server (Debian 12 KDE)
- Vulnerable UnrealIRC 3281 backdoor - yields flag
kali
- Kali MSF with Metasploit framework, Armitage, ExploitDB, nmap
CTF Steps:
- Scan network to identify Windows and Linux servers
- Exploit EasyFTP server on Windows (exploit/windows/ftp/easyftp_cwd_fixret), find flag in
flag.txt - Exploit UnrealIRC 3281 backdoor on Linux server, find flag in user home directory
7. Post-exploitation
windows_server (Windows 7)
- Vulnerable EasyFTP server (RCE vulnerability)
- Flag in
flag.txtfile
linux_server (Debian 12 KDE)
- Vulnerable distcc server (CVE-2004-2687) with flag
- Vulnerable sudoedit (privilege escalation) with flag
- Crackme user account with weak password
- Password-protected ZIP file (
/root/protected.zip) with flag (password same as crackme user)
kali
- Kali MSF with Metasploit framework, Armitage, ExploitDB, nmap, password tools
CTF Steps:
- Exploit distcc on Linux server (CVE-2004-2687) to gain initial shell
- Use sudoedit vulnerability (CVE-2023-22809) to escalate privileges to root
- Find flags in user home directories
- Extract password hashes, crack crackme user password
- Use cracked password to decrypt
/root/protected.zipfile (contains flag) - Exploit EasyFTP on Windows server, find flag in
flag.txt
8. Vulnerability Analysis
linux_server (Debian 12 KDE)
- Vulnerable distcc server (CVE-2004-2687) with flag
- Vulnerable WordPress 4.x installation
- Vulnerable UnrealIRC 3281 backdoor
- Vulnerable sudo Baron (privilege escalation) with flag
kali
- Kali "Licensed Tools" with Metasploit framework, ExploitDB, nmap, Nikto, GCC
CTF Steps:
- Scan with Nmap NSE, Nessus, and Nikto to identify vulnerabilities
- Exploit distcc (CVE-2004-2687) to gain initial access, find flag
- Upgrade shell to Meterpreter
- Exploit sudo Baron vulnerability (CVE-2021-3156) for privilege escalation, find flag
- Find additional flags from various vulnerabilities
9. Feeling Blu
attack_vm (Kali MSF)
- Kali with top 10 tools, web tools, Iceweasel browser (autostarts pointing to web server)
web_server (Debian 12 KDE)
- Bludit CMS with file upload vulnerability (image upload RCE) - yields flag
- User account (from organization data) with flag in home directory
- Vulnerable sudo root-less (privilege escalation) with flag
- Password-protected ZIP file (
/root/whatsmyname.zip) with flag (password is organization manager's name)
CTF Steps:
- Scan web server with dirb and Nikto to find hidden files and admin login page
- Find leaked Bludit credentials in discovered files (or brute force with OWASP ZAP)
- Exploit Bludit file upload vulnerability (exploit/linux/http/bludit_upload_images_exec) using Metasploit
- Switch to Bludit admin user account, find flag in home directory
- Use sudo root-less vulnerability to escalate to root (exploit sudo -l to see allowed commands)
- Find flag in /root directory
- Extract organization manager's name from earlier reconnaissance, use as password to decrypt
/root/whatsmyname.zip
Access Can Roll
shared_desktop (Debian 12 KDE)
- Main user account (random mythical creature name) with sudo access
- Source code file
access_my_secrets.cin home directory - Another user account (random mythical creature name)
server (Debian 12 KDE)
- Same usernames and passwords as desktop (password: tiaspbiqe2r)
- Two users with shell programs that can be combined
- One user has
flag.txt - Another user has
access_me_flag.c,flag1, andflag2
CTF Steps:
- SSH to server using same credentials as desktop
- Combine two shell programs together to get first flag
- Use hardlink trickery with
access_my_flagprogram to access relative paths and get flag1 and flag2
Analyse This
attack_vm (Kali MSF)
- Kali with top 10 tools, web tools
server (Debian 10 KDE)
- User account: analyse / password: this!!!
- File
encoded_flagswith multiple encoded flags - PCAP file
capture.pcapcontaining flag - Hidden file with flag
CTF Steps:
- SSH into server (username: analyse, password: this!!!)
- Decode flags from
encoded_flagsfile (various encoding methods: ASCII/alpha reversible, some double-encoded) - Analyze
capture.pcapfile to extract flag from network traffic - Find hidden file in home directory for additional flag
Banner Grab and Run For Your Life!
desktop (Debian 9 KDE)
- User account (random mythical creature name), password: tiaspbiqe2r
- Nmap installed
secret_journal_server (Debian 9 KDE)
- 5 netcat services on random ports (1024-50000 range)
- 3 flags in plaintext
- 2 flags encrypted (one double-encrypted with ASCII reversible)
CTF Steps:
- Scan all ports on secret_journal_server using nmap
- Connect to each discovered port using netcat to retrieve flags
- First 3 ports contain plaintext flags
- 4th port contains encrypted flag (needs decoding)
- 5th port contains double-encrypted flag (needs double decoding)
Containers Escape
desktop (Debian 9 KDE)
- User account (random mythical creature name), password: tiaspbiqe2r
- Docker installed with multiple images
- Netcat backdoor in Docker container
chroot_esc_server (Debian 9 KDE)
- Chroot environment at
/opt/chroot - Netcat backdoor in chroot container
CTF Steps:
- Find way into Docker container on desktop VM
- Escape Docker container to gain root access, find flag in
/root/docker_flag - Find way into chroot container on chroot_esc_server
- Escape chroot container to gain root access, find flag in
/root/chroot_flag
Decode Me
attack_vm (Kali MSF)
- Kali with top 10 tools, web tools
decode_me (Debian 10 KDE)
- NFS share with encrypted flags file
- 8 flags total: 1 double-encrypted, 7 single-encrypted (ASCII/alpha reversible encoding)
CTF Steps:
- Use
showmountto discover NFS share on decode_me server - Mount NFS share on attack VM
- Read encrypted flags file from mounted drive
- Decode all 8 flags (7 single encryption, 1 double encryption)
Hackme and Crack Me
hack_and_crack_me_server (Debian 9 KDE)
- Vulnerable distcc server (CVE-2004-2687) - use nmap script, not Metasploit
- Readable
/etc/shadowfile (vulnerability) - 4 user accounts with weak passwords (from jtrpassword.lst)
- 1 user account with hint: password ends in 2 digits (e.g., "round39")
- 4 leaked strings in user home directories
second_server (Debian 9 KDE)
- Same usernames as hack_and_crack_me_server
- 4 user accounts with flags (passwords match cracked passwords from first server)
- 1 user account with hint file and flag
kali_cracker (Kali MSF)
- Kali with password tools (John the Ripper), Metasploit, Armitage, nmap
CTF Steps:
- Exploit distcc vulnerability using nmap script (not Metasploit) to get flag
- Copy
/etc/shadowand/etc/passwdfrom hack_and_crack_me_server to kali_cracker - Use
unshadowto combine passwd and shadow files - Crack passwords using John the Ripper (john --wordlist=jtrpassword.lst)
- Find 4 leaked strings in user home directories on hack_and_crack_me_server
- SSH to second_server using cracked credentials to find 4 flags
- Crack last user password (hint: ends in 2 digits, try common words + 2-digit numbers)
- SSH to second_server with last user credentials to find final flag
Nosferatu
attack_vm (Kali MSF)
- Kali with top 10 tools, web tools
server (Debian 10 KDE)
- Vulnerable Nostromo web server (directory traversal/code execution)
- User account: nostromousr (gained via exploit)
- Vulnerable sudo root-less (privilege escalation via /bin/less)
CTF Steps:
- Access Nostromo web server, find 2 flags on webpage (1 plaintext, 1 hex-encoded needs decoding)
- Exploit Nostromo using Metasploit (exploit/multi/http/nostromo_code_exec) to gain shell
- Find flag in
/home/nostromousr - Use sudo privilege escalation:
sudo -lshows/bin/lessallowed, exploit to get root - Find final flag in
/root
Putting it together
attack_vm (Kali MSF)
- Kali with top 10 tools, web tools
server (Debian 10 KDE)
- NFS share with leaked information
- Netcat service on random port (1024-2024 range)
- User account (random mythical creature name) with strong password
- Vulnerable sudo root-awk (privilege escalation)
CTF Steps:
- Scan server to discover NFS share
- Mount NFS share, read file to get username and flag
- Scan for open ports, connect to random port (>1024, <2024) with netcat to get password and flag
- SSH to server using discovered credentials
- Find flag in user home directory
- Use sudo privilege escalation with awk:
sudo awk 'BEGIN {system("/bin/sh")}'to get root - Find final flag in
/root
Rooting for a win
attack_vm (Kali MSF)
- Kali with top 10 tools, web tools
server (Debian 10 KDE)
- Vulnerable ProFTPD 1.3.3c backdoor (code execution)
- Flags in FTP home directory (1 plaintext, 1 binary/encoded)
- Flag in
/root(exploit gives root access directly)
CTF Steps:
- Scan server to identify ProFTPD service
- Exploit ProFTPD backdoor using Metasploit (exploit/unix/ftp/proftpd_133c_backdoor)
- Use reverse_perl payload (standard reverse_tcp doesn't work)
- Find 2 flags in FTP home directory (1 plaintext, 1 needs decoding)
- Find final flag in
/root(no privilege escalation needed, exploit gives root)
Smash Crack Grab and Run
attack_vm (Kali MSF)
- Kali with password tools, Armitage
server (Debian 12 KDE)
- Vulnerable Nostromo 1.9.6 service (code execution)
- User account: nostromousr (gained via exploit)
- Password-protected ZIP file (
/home/nostromousr/protected.zip) with weak password - User account (random mythical creature name) with strong password
- Base64-encoded flag in last user's home directory
CTF Steps:
- Exploit Nostromo service using Metasploit (exploit/multi/http/nostromo_code_exec) to gain shell
- Find flag in
/home/nostromousr - Copy
protected.zipfrom server to attack VM - Extract hash using
zip2john protected.zip > zip.hash - Crack password using John the Ripper:
john zip.hash --show - Extract ZIP file to get credentials (username and strong password) and flag
- SSH to server using discovered credentials
- Find base64-encoded flag in user home directory, decode it
Such a git
attack_vm (Kali MSF)
- Kali with top 10 tools, web tools
web_server (Debian 10 KDE)
- Vulnerable GitList 0.4.0 (argument injection RCE)
- User account (from organization data) with flag in home directory
- Vulnerable sudo root-apt-get (privilege escalation)
CTF Steps:
- Access GitList web interface on server
- Find username and flag leaked in GitList repository files or commit history
- Find password leaked in git/repositories/restricted
- Exploit GitList using Metasploit (exploit/multi/http/gitlist_arg_injection) to gain shell
- Find flag in user home directory
- Use sudo privilege escalation:
sudo apt-get update -o APT::Update::Pre-Invoke::=/bin/shto get root - Find final flag in
/root