Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье нам придется проэксплуатировать уязвимости в Redis и WebMin, а также подобрать пароль к зашифрованному ключу RSA.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)
- PWN;
- криптография (Crypto);
- cетевые технологии (Network);
- реверс (Reverse Engineering);
- стеганография (Stegano);
- поиск и эксплуатация WEB-уязвимостей.
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Recon
Данная машина имеет IP адрес 10.10.10.160, который я добавляю в /etc/hosts.
10.10.10.160 postman.htb
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.160 --rate=500
Далее нужно собрать больше информации об известных портах. Для того используем nmap с параметром -А.
nmap -A postman.htb -p22,80,6379,10000
Как следует из отчета nmap на хосте работает SSH и веб-сервер. Так же на 6379 порте работает redis. Redis – это высокопроизводительная БД с открытым исходным кодом, которая хранит данные в памяти, доступ к которым осуществляется по ключу доступа. И порт 100000 отведен для Webmin — это программный комплекс, позволяющий администрировать операционную систему через веб-интерфейс.
Далее ищем информацию о redis 4.0.9 и MiniServ 1.910. Для redis был найден эксплоит, позволяющий аутентифицироваться на хосте, зная имя пользователя.
В случае WebMin мы можем получить RCE.
Но так как для WebMin нам необходимы аутентификационные данные, то начинаем с redis.
Entry Point
Скачав и запустив эксплоит, увидим, что он требует адрес хоста и имя пользователя.
Так как redis — это служба, то она работает под пользователем службы “redis”.
Но эксплоит отрабатывает неудачно. Давайте разбираться в чем дело. Если кратко — то данный эксплоит генерирует ssh ключи и размещает публичный в домашнюю директорию пользователя. Потом подключается по SSH с приватным ключом. Но вот в чем дело, при обращении он ищет пользователя в стандартной домашней директории home, a мы работаем с пользователем службы, чья домашняя директория будет располагаться в /var/lib.
Изменим команду cmd4, на нашу правильную домашнюю дирректорию и запустим эксплоит.
И мы попали на хост.
USER
Теперь, не зная куда идти дальше, мы должны собрать по максимуму информации с хоста и проанализировать ее. В этом помогут скрипты перечисления, к примеру, LinEnum.
Я просто скопировал его на хост, присвоил права на запуск и выполнил.
Далее нам нужно просмотреть кучу информации и найти то, что выбивается из нормы. И мы находим.
При поиске бэкапов был обнаружен приватный ssh ключ. Причем его владельцем является пользователь Matt, а права на файл позволяют нам его читать.
Копируем ключ к себе на рабочую машину. Как видим ключ зашифрован, поэтому при подключении у нас попросят пароль.
Нам нужно узнать пароль. Сделать это можно пробрутив ключ с помощью того же John’а. Для начал перегоним его в нужный формат с помощью ssh2john.
Данный вывод нужно сохранить в файл и отдать на перебор.
И очень быстро находим пароль. Но подключиться по ssh ни по ключу, ни по паролю не вышло. Вспомнив про redis и команду su, входим в систему как Matt.
ROOT
Снова поискав что-нибудь интересное, вспоминаем про MiniServ, для которой нужны аутентификационные данные. Еще хорошо то, что данный эксплоит присутствует в Metasploit. Можно посмотреть подробную информацию о нем.
Теперь выбираем эксплоит для использования и задаем основные опции.
Мы в системы с полными правами.
Вы можете присоединиться к нам в Telegram. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
Автор: Ральф Фаилов