FristiLeaks 1.3
- by Vince
-
in Blog
-
Hits: 1072
I'm a big fan of people who take time out of their day to help others in the community, especially with something as time consuming as building a vulnerable server. So when I state that I don't really like the capture the flag style boxes, it's nothing against the maker and it's just a personal preference. I'm sure it's enhancing my critical thinking skills and I should be happy with that but sometimes these challenges frustrate me.
FristiLeaks is one of those boxes that tested my patience. My frustration came out at the end when I saw how I was supposed to conquer this box and instead I went for the kernel exploit. Granted the kernel exploit is the fastest way to root so there's that but the author had intended for it to be more of a game.
Anyway, in protest:
Kicking off with an Nmap scan:
Not much here so we take a look at the web port with Nikto:
Poking around at those directories bears no fruit so I move to GoBuster:
Still not getting anywhere. I circle back to the beginning and I start looking for open UDP ports, try different fuzzers but still nothing.
When we look at the initial page, we see:
I think this is supposed to be a hint given that the other uncovered directories are also drinks but I didn't pickup on that clue until after the fact. I just stumbled upon the /fristi directory:
Here we have a login and I attempt to SQL inject. I also hit it with SQLMap but come up empty. Viewing the source gives us a nugget though:
With this, I think I have a username and I just need a password. Scrolling further down in the source, I see:
That looks like Base64. I copy that data into a text file and I attempt to decode it:
I don't know if it's just dumb luck or what. Since I didn't notice the space at the end of each line, I get that little hint of "PNG". If I had cleaned up that spaces, I would have seen the "PNG" hint.
The "invalid input" error clues me in on the fact that something isn't right with my copy & paste (the extra spaces):
You're obviously not able to see the space at the end of each line but trust me, it's there. Removing the space, trying again:
And redirecting the output to and image file. We take a look at our newly created image:
One can only guess that this is the password. With what I believe are complete credentials, I head back to the login:
Hitting the Login button, I'm presented with:
My first attempt is uploading a reverse shell with a .php extension. That fails and my next attempt is adding .jpg to the end of it:
That works:
The output of the upload gives us the path and I attempt to hit the shell:
With my listener setup:
We catch the shell, clean up the environment and we check our ID. A quick look around, I find a note:
I also check my environment. I'm sure that note is a hint to how I'm supposed to escalate my privileges but a quick search for Linux 2.6.32 on Exploit-DB reveals:
Dirtycow, of course. Moving a compiled version from my box, giving it execute permissions, and we execute it:
#root
Way more capture the flag-y than I like but aside from getting hung up on the intial foothold, the box is pretty straightforward after that.