HackTheBox Writeup — Previse

Faisal Husaini
5 min readJan 8, 2022

Hello Guys , I am Faisal Husaini. My username on HTB is “fa1sal” . Also join me on discord.

The IP of this box is

Port Scan / Enumeration

nmap -sC -sV -p- -Pn --min-rate=10000 -oN nmap

Way to User

Checking the web, we get redirected to a login page

Running Gobuster scan against the web server leads us to multiple files with 302 status codes

Trying to each on of them redirects back to the login page as usual, so intercepting the request for accounts.php file

Intercepting the response to the request and finding that it redirects to login.php page as well

Changing the status code from 302 Found to 200 OK in the response and forwarding the request

The login page redirection was successfully bypassed and then got access to the accounts.php page for that particular request and it can be seen that a new user can be registered from the page

Adding a new user and then intercepting the request once again

Intercepting the response to the request once again and changing the status code to be able to register the user instead of getting redirected back to the login page

To avoid manually doing all these steps, we can add a match and replace in the burp settings for all of the pages

My new user is created successfullly

After login with my new user, I can access some more functionalities of the web page, interesting one being the Files section where the site backup file can be found for download

Getting the site backup file to my local machine and then unzipping it

One of the files named config.php leads to database credentials but at the moment these credentials cannot be used anywhere with no access

Another file named logs.php leads to something interesting as it uses the exec function without any sanitization and accepts a post parameter named delim inside it

Intercepting the request of logs.php file in the web

Changing the request from GET to POST and adding the delim parameter with the value of ping back command to our local machine

TCPDump command confirms the command execution as we get pinged back

Changing the value to the payload of reverse shell this time

Getting reverse shell successfully on my netcat listener

Finding the user flag on the home folder of m4lwhere user

Checking for locally open ports, we can see that port for mysql database is open

So using the credentials we got before from config.php to login into the database as root user

Dumping the user and its hashes successfully from the database

Using John to crack the hash of the user m4lwhere successfully

Switching to the new user using the su command

Way to Root

Running sudo -l command, we can see that the user m4lwhere can run sudo on access_backup.sh file

Checking the contents of the file, we can see that it is running gzip command and also execute the date command as well, since the path of both the commands are not specified, it makes them both vulnerable to path hijacking

So first I am changing the PATH environment variable to the current user’s home directory

Creating a file called as date and adding my reverse shell payload inside it and making the file fully executable

Running the script with sudo privileges leads us to reverse shell as root on my netcat listener successfully

The root flag is found on the /root directory



Faisal Husaini

Hacker | Red Teamer | Python Coder | Gamer | Reverse Engineering Lover