Hack The Box — прохождение Postman. Redis и WebMin

image


Продолжаю публикацию решений отправленных на дорешивание машин с площадки 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


image

Далее нужно собрать больше информации об известных портах. Для того используем nmap с параметром -А.

nmap -A postman.htb -p22,80,6379,10000


image

Как следует из отчета nmap на хосте работает SSH и веб-сервер. Так же на 6379 порте работает redis. Redis — это высокопроизводительная БД с открытым исходным кодом, которая хранит данные в памяти, доступ к которым осуществляется по ключу доступа. И порт 100000 отведен для Webmin — это программный комплекс, позволяющий администрировать операционную систему через веб-интерфейс.

Далее ищем информацию о redis 4.0.9 и MiniServ 1.910. Для redis был найден эксплоит, позволяющий аутентифицироваться на хосте, зная имя пользователя.

image

В случае WebMin мы можем получить RCE.

image

Но так как для WebMin нам необходимы аутентификационные данные, то начинаем с redis.

Entry Point


Скачав и запустив эксплоит, увидим, что он требует адрес хоста и имя пользователя.

image

Так как redis — это служба, то она работает под пользователем службы «redis».

image

Но эксплоит отрабатывает неудачно. Давайте разбираться в чем дело. Если кратко — то данный эксплоит генерирует ssh ключи и размещает публичный в домашнюю директорию пользователя. Потом подключается по SSH с приватным ключом. Но вот в чем дело, при обращении он ищет пользователя в стандартной домашней директории home, a мы работаем с пользователем службы, чья домашняя директория будет располагаться в /var/lib.

image

Изменим команду cmd4, на нашу правильную домашнюю дирректорию и запустим эксплоит.

image

И мы попали на хост.

USER


Теперь, не зная куда идти дальше, мы должны собрать по максимуму информации с хоста и проанализировать ее. В этом помогут скрипты перечисления, к примеру, LinEnum.

Я просто скопировал его на хост, присвоил права на запуск и выполнил.

image

Далее нам нужно просмотреть кучу информации и найти то, что выбивается из нормы. И мы находим.

image

При поиске бэкапов был обнаружен приватный ssh ключ. Причем его владельцем является пользователь Matt, а права на файл позволяют нам его читать.

image

Копируем ключ к себе на рабочую машину. Как видим ключ зашифрован, поэтому при подключении у нас попросят пароль.

image

Нам нужно узнать пароль. Сделать это можно пробрутив ключ с помощью того же John«а. Для начал перегоним его в нужный формат с помощью ssh2john.

image

Данный вывод нужно сохранить в файл и отдать на перебор.

image

И очень быстро находим пароль. Но подключиться по ssh ни по ключу, ни по паролю не вышло. Вспомнив про redis и команду su, входим в систему как Matt.

image

ROOT


Снова поискав что-нибудь интересное, вспоминаем про MiniServ, для которой нужны аутентификационные данные. Еще хорошо то, что данный эксплоит присутствует в Metasploit. Можно посмотреть подробную информацию о нем.

image

Теперь выбираем эксплоит для использования и задаем основные опции.

image

Мы в системы с полными правами.

Вы можете присоединиться к нам в Telegram. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.

© Habrahabr.ru