Today, I will guide you on doing Internal Challenges Room. In this room, we will do role play in Blackbox Penetration Testing which it will involve a real-life scenario.
This room has been labeled as difficulty-rated HARD
The following is the scenario of the room itself.
Let’s Start!
As usual, we will need to deploy the machine to play with it.
Now, we must enumerate the details on the machine to see what has been configured inside by running nmap -sC -sV <IP Address> -PN
- Information Gathering on Internal Machine
- Enumerate with the WordPress dashboard on the Internal Machine
- Analyze the Wpscan tool
- Bypass the packet via Burpsuite
- Obtain the Reverse Shell on the machine
- SSH access to machine via Aubreanne's credential
- Change the jenkins access to Root access within the Internal Machine
Information Gathering on Internal Machine
From the nmap output above, i just notice that the port open for the machine can be listed as
- 22: OpenSSH 7.6p1
- 80: Apache 2.4.29
When i open the website using the normal way, we have directed to a Default Page of Apache2
Let’s run some enumerate activity on the website itself and see the result if there’s anything that we can access by running the command dirb <IP Address>
From the output, i notice that /blog and /wordpress have been installed on the machine. Let’s dive deep into the website interface
Enumerate with the WordPress dashboard on the Internal Machine
The interface doesn’t look attractive for a website that is used for blog purposes. However, i notice there is a link to Internal and let’s click the link to see where the link is directed.
Once we clicked the link, the website has shown 404 pages which it’s odd for those websites.
To make the error disappear, we must modify the hosts’ file at /etc/hosts
After we have modified the host file, let’s access the website using internal.thm/blog to see if it works!
This website looks more like WordPress theme, so let’s run wpscan to guess the username and password. Firstly, we need to retrieve the username before proceeding with cracking the password.
The command that we can use here is as follows:
Analyze the Wpscan tool
wpscan –url internal.thm/wordpress/ -e u
You will the result has been shown below
We have successfully gained the username for the WordPress login, finally, we can retrieve the password for the username “admin”
wpscan –url internal.thm/wordpress/ -e u admin -p /usr/share/wordlists/rockyou.txt
We have gotten the username and password for the WordPress credentials. Let’s login the Dashboard via credentials that we gained.
However, the Dashboard will be redirected to a different page when we key-in the username and password. So, we must disable the redirection code by using the burp suite community.
Bypass the packet via Burpsuite
We need to remove the redirection code from the request payload to look exactly like the screenshot above.
Once we click the forward button, it will direct us to the Dashboard page such as below:
We need to find a place for us to plant a reverse shell for us to get access to the server. While roaming inside WordPress Dashboard, I did find a wonderful place to insert PHP Powershell which was in Theme Editor 404.php
Before clicking the Update File button, we need to start the nc listening function for us to gain the shell connection back.
We can finally click the update file button and the reverse shell connection will revert to us.
Obtain the Reverse Shell on the machine
So, let’s again roam but this time within the server. After a while, i have a feeling to access /opt/ directory there was a strange file resides there.
While doing this activity, my machine IP expired and I forgot the take screenshot of the wp-save.txt file so I will start the machine with the new IP.
We got aubreanna and the password while checking inside wp-save.txt so we can access the user via ssh.
ssh aubreanna@<IP Address>
SSH access to machine via Aubreanne’s credential
Once we successfully login the server via ssh, let’s check what is stored inside.
While i read the user.txt file, i notice there’s another that caught my attention more which jenkins.txt
The file contains a message saying “Internal Jenkins service is running on 172.17.0.2:8080”
We need to access the Jenkins website by running the command below:
ssh abureanna@local.thm -L <any port>:172.17.0.2:8080
Now, let access the website by going localhost<any port>
We can assume that username that used here is admin but sadly, we don’t have the password for that.
Let’s run hydra tools to crack the password
The result would be something like below:
As we have successfully retrieved the username and password, let’s try login the Jenkins Login.
Wuhuu! We finally login to Jenkins. Now, let’s find a way to insert a reverse shell inside the website.
I found out that Script Console which we might able to insert any code into it.
For this activity, we will run a Java shell rather than our normal PHP reverse shell.
As usual, we need to start our nc listening function before clicking the “Run” Button.
We will get the shell connection back as follows:
We will get a reverse connection without the bash $ interface. To see the bash format, we can run bash -i as follows
Again, let’s do an adventure trip in this username shell and found
Change the jenkins access to Root access within the Internal Machine
We got the password for the root inside /opt/note.txt file. Finally, we can access root access by putting the password.
Normally, the root flag has been stored at /root/ directory
We need to read what is written inside the root.txt to finish this room by executing cat root.txt
-THE END-
Happy Learning Guys!
No responses yet