Colddbox: Easy by Coldd
IP = 10.10.70.248*
Difficulty: Easy
Machine OS: Linux
Learning Platform: tryhackme.com
*Note: IP address may vary.
Reconnaissance
Scoping and Preparation
Connect to Tryhackme OpenVPN Server using:
sudo openvpn {PATH_TO_OVPN_FILE}
Run our recon tools such as nmap and gobuster.
I ran nmap twice to get the specific ports that are open so I can do OS and Version enumeration faster since I got the open ports needed.
1st Nmap command used: sudo nmap -T4 -p- -oN [FILENAME] [IP]
2nd Nmap command used: sudo nmap -A -T4 -p[OPEN_PORTS_GOT_ON_1ST_NMAP_SCAN] -oN [FILENAME] [IP]
Gobuster command used: gobuster dir -u http://[IP] -w [WORDLIST] -o [FILENAME FOR OUTPUT] -t [NUMBER OF THREADS]
External Enumeration
Preliminary Enumeration via nmap
Table 1.1: nmap Results Summary
| PORT | STATUS | SERVICE | VERSION |
|---|---|---|---|
| 80/tcp | open | HTTP | Apache httpd 2.4.18 ((Ubuntu)) |
| 4512/tcp | open | SSH | OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0) |


Nmap scan shows that SSH service is running on non-standard port (4512 instead of 22).
Ubuntu Version: Ubuntu Xenial
Web Enumeration
Enumerating the web server only gives us a welcome message coming from the machine creator.

Let’s see what the web technologies that the web server use. In this case, I use the browser extension wapplayzer. Link

We can see that the web server is running WordPress (v4.1.31) and we can verify this by looking at wp-login.php page which is the login page for Wordpress.
Content Discovery
GoBuster Scan
Let’s check if gobuster found some directories that we can work with.

All of the results verifies that the web server is using WordPress.
Exploitation
Let’s try to use weak credentials in wp-login.php.

We have a verbose error message indicating C0ldd is a valid username in the machine.
Using hydra
Since we know that C0ldd is valid username in the WordPress server, we can use hydra to bruteforce our way to the login page. (spoiler: c0ldd’s password is weak)
Command used: hydra -l C0ldd -P [Path_to_passwords] [IP_address] http-form-post '/wp-login.php:log^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
Command explanation: Used hydra to brute-force the login page using http-form-post module.
Web Server Exploitation
After looking for some functionalties such as file upload and etc. We found out that we can edit .php files especially on themes used by WordPress page.
We editted the 404.php page and pasted the PHP reverse shell from PentestMonkey. We can gain a shell login by adding a netcat listener on our attacking machine and navigating through
[IP_ADDRESS]/wp-content/themes/twentyfifteen/404.php.

Failed Reverse Shell (needs netcat listener)

Successful Reverse Shell

Table 1.2: Credentials
| Username | Password |
|---|---|
| c0ldd | 9876543210 |
Post-Exploitation
Internal Enumeration
Table 1.3: Checklist for Linux Internal Enumeration
| COMMAND | DESCRIPTION | |
|---|---|---|
ss -tlnp |
lists all sockets (-t = tcp) (-l = listening) (-n = numeric) (-p = processes) |
|
netstat -tulnp |
||
sudo -l |
lists all binaries/files/programs the current user has sudo permissions. (might require password) |
|
find / -type f -user root -perm -u+s 2>/dev/null |
finds files in / directory that has SUID bit set. If any, consult GTFOBins. |
|
uname -a |
prints system information (-a = all) | |
whoami && id |
prints effective userid (EUID) and prints real and effective userid and groupids (GID). |
|
cat /etc/crontab |
checks for cron jobs. |
Notes: For more information about the commands look here
Tip: When nothing else makes sense, try to use LinPEAS (winPEAS for windows machines.).
We are now logged in www-data.

We can try to spawn tty shell so we can easily navigate through terminal.

We can also spawn tty shell using this:

Let’s run our mini checklist and let’s look for SUID binaries!

What a coincidence, we used find to find binaries with SUID bit set and find itself is a SUID binary! We can now escalate our privileges!
Privilege Escalation
To escalate our privileges:
cd /usr/bin./find . -exec /bin/sh -p \;- We are now root!
Note: Root shell is denoted by # (octothorpe/hashtag/number/pound) sign.

Data Exfiltration
We also managed to get the confidential info for the machine and dumped it into a file named Confidential.md (includes user and root flag)
STATUS: ROOTED
The next two steps are not necessary for completion of the machine but it completes the 5 Phases of Penetration Testing.
Persistence
Copied the /etc/shadow file for user identification and their passwords.
Added another root user for easy access.
Clearing Tracks
Removed all logs and footprints to to prevent risk of exposure of breach to security administrator.
Status: Finished
Feel free to reach out and if there is something wrong about the above post. Feedbacks are also appreciated! :D
Donation Box
Not required but appreciated! :D
Socials
<– Go Back
