Postman is an easy rated box in HTB. Let’s see for ourselves if it’s easy or not.
Starting out with our regular, nmap scanning:

As we can see, we have port 22, 80, 6379 and 10000 open.
We know that port 22 is for SSH, so let’s leave it for now.
Let's look at port 80 for now.
We see this home page after navigating to the webpage.

However, even after trying a lot and fiddling around with gobuster; I couldn’t find any handle to go through. So let's move on to see if we can do something with the remaining ports.
Port 6379 caught my eye as it’s a redis port. I know from experience that redis by default has no password or username and anyone can login by default. I also know that modern webmin versions (located at port 100000) don’t have any RCE and are pretty secure. So, redis looks like our best bet.
As I suspected, after some trying redis looks like it does not have any password! Hurray.
Now, we can try and carry out a multitude of techniques to try and get a RCE.
The first thing I always try in this scenario is try and upload an id_rsa.pub into authorized_keys; basically exploiting SSH.
After generating my id_rsa and id_rsa.pub using openSSH. I’m ready to upload these into the remote system.
First thing to note is, normally the /var/lib/redis is set as the home directory by default into redis so uploading our id_rsa.pub (public key) values into /var/lib/redis/authorized_keys looks like a good way to start.

Yaaay! Looks like our public key was successfully uploaded!
Let’s try logging in through SSH now.

Everything looks good till now.
However, we are now using the redis user, who doesn’t really have any power in the system. Let’s look for other users and try to escalate privileges.
Alright, the only user we have in the system is called ‘Matt’. Let’s try looking and enumerating.
I eventually found a file called id_rsa.bak in the /opt directory. I copy over the file into my local machine and take a look at it.

I immediately notice that this file is protected by some sort of password. Let’s put this into ssh2john and generate a crackable file, crackable by johnTheRipper. After doing that and running johnTheRipper using the famous rockyou.txt wordlist, I immediately get a valid password!

However, when I tried to SSH using the cracked id_rsa and the correct passphrase, I still couldn’t login!

I later found out that the passphrase itself was the password. So a simple ‘su’ command did the trick!

All good till now.
Now, remembering the open port 10000 we found in our nmap scan, we know that webmin always runs as root. It’s also used to manage the systems, so we should be able to login as Matt. Let’s see if it works.


Yes!, we can login to webmin using the user Matt! So, we can easily use the /password_cgi exploit where most webmin versions are vulnerable.
Try an exploit I found here: https://github.com/KyleV98/Webmin-1.910-Exploit


Yessss! We’ve finally rooted the box.