Introduction

Delivery is a Medium Apache web-server box with a unserialize PHP exploit from HTB and created by egotisticalSW. It showcases problems in unseralized PHP code and how it can be abused to gain a low-priv shell. Once I get on the box I used sudo -l to find a script adding SSH keys to the root user and use it to escalate to root.

I begin every scan using RustScan; once it completes it runs NMAP filters and exports to HTML for easy reading. The code below uses PWD (Present/Current Working Directory) as I have a startup script I run before doing any HTB box:

Copy

During the scans I noticed Port 80 was open. Visiting the website I see a default Apache page. Immediately I edit my host file to add tenet.htb as it is the name of the box and depending on an Apache configuration a sub-site can exist within the same structure. I also made sure to have a FeroxBuster scan running against the IP which found a wordpress directory.

Default Apache page.

Default Apache page.

WordPress environment hinting to a .php file and a backup.

WordPress environment hinting to a .php file and a backup.

Navigating the WordPress environment I found a post where a commenter stated a sator php file and associated backup had been deleted. I left a WPScan and secondary FeroxBuster scan running and went back to the IP itself. I tried sator.php:

Grabbing users from text file and database updated.

Grabbing users from text file and database updated.

Viewing the file showed me two lines. I struggled for a while until I went through all the pieces. Noting the ‘backup’ from the comment I tried searching for .bak/.backup/.zip files with FeroxBuster until I tried sator.php.bak. Finally, progress.

sator.php.bak file

sator.php.bak file

Reviewing the PHP code and my understand of PHP unserialize stood out. I Google’d around and eventually was able to take the PHP script and alter it slightly to upload a popular webshell, WSO to the host. I would recommend reading THIS as it gave me an understanding of how to proceed.

User Escalation

My altered file uploading the WSO webshell.

My altered file uploading the WSO webshell.

Copy

After altering and uploading the web-shell I logged in and immediately went to the WP-Config file. In WordPress this file stores Database credentials as well as SALTS. I used the database creds (also the neil user) to login to the box via SSH. Once on the box I immediately thought about grabbing the WP-Users table from the database and cracking the creds of the other user. Thankfully beforehand I tried sudo -l which is my normal go to when begin priv-esc on a Linux environment.

sudo -l showing me that enableSSH could be ran by the neil user.

sudo -l showing me that enableSSH.sh could be ran by the neil user.

My user was able to execute EnableSSH.sh as ALL. I reviewed the script and knew this was the escalation path. Reviewing the script it had a race condition so I created two loops and uploaded them to the server. I then logged in as neil twice via SSH and ran both scripts. I was able to get root shortly after.

Fire.sh

Copy

Key.sh

Copy

Kali Machine

Copy
Rooted Tenet box from Hack the Box.

Rooted Tenet box from Hack the Box.

Rooted

Published On: June 12th, 2021 / Categories: HTB, Technology / Tags: , , , , /

Leave A Comment