Hack The Box - TwoMillion: разбор
Обзор
Этот репозиторий содержит моё прохождение машины Hack The Box - TwoMillion. Цель этого райтапа — задокументировать методологию, объяснить процесс перечисления и показать цепочку эксплуатации, которая привела к получению доступа User и Root.
Отказ от ответственности: Этот райтап предназначен только для образовательных целей. Все действия выполнялись в легальной лабораторной среде, предоставленной Hack The Box.
Информация о машине
| Платформа | Сложность | Операционная система |
|---|
| Hack The Box | Лёгкая | Linux |
Рассматриваемые навыки
- Перечисление
- Тестирование веб-приложений
- Анализ JavaScript
- Перечисление API
- Уязвимость IDOR
- Инъекция команд
- Поиск учётных данных
- Локальное повышение привилегий
- Эксплуатация CVE
Перечисление
Я начал с перечисления на целевой машине, чтобы узнать, какие порты и службы на ней открыты.

Узнав, что здесь есть HTTP-сервис, и попытавшись перейти на другой хост, но для этого имени хоста нет IP, я отредактировал /etc/host

Пытаюсь открыть ссылку, и мы получаем эту страницу; затем перехожу на интересующую страницу, чтобы посмотреть, что на ней есть.

Я нашёл эту веб-страницу и нажал Join HTB.

Затем мы проверили, какие файлы загружаются при открытии этой страницы, и нашли интересный JS-файл.

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

Вот код, и, похоже, у нас есть URL-адреса для изучения.

Здесь я попытался выяснить, как сгенерировать инвайт-ключ, и взял эти закодированные данные, чтобы декодировать их.

Декодируем это с помощью локального CyberChef, и получаем путь для генерации ключа.

Здесь мы редактируем путь URL и получаем инвайт-код, но он, похоже, закодирован.

Я попробовал base64, и это сработало!! У меня есть инвайт-ключ.

Регистрируемся, используя инвайт-код, и заполняем данные.

Мы получили эту страницу и начали искать что-то ценное.

Мы нашли генератор VPN-файлов, это очень полезно, если мы получим какие-либо данные о привилегированных учётных записях.

Перейдя по ссылке с предыдущей страницы и пытаясь найти какие-либо эндпоинты, мы обнаружили очень интересные пути для администраторов.

Здесь я начал пытаться получить административную аутентификацию для своей учётной записи.



Наконец, мы получили ID, и я думаю, что у нас есть права администратора, поэтому теперь мы хотим проверить статус аутентификации.

Да, как мы и ожидали, у нас есть доступ администратора, поэтому следующий шаг — попытаться сгенерировать VPN для себя как администратора.

Здесь мы начинаем заполнять запрошенные поля из ответа.

Здесь мы получили VPN-файл, но почему бы не попробовать инъекцию команд?!!

Как мы и ожидали, это сработало!!!

После просмотра интересного файла, например .env, мы получили пароль администратора.

И наконец, мы внутри машины.

Чтение пользовательского флага

Здесь все усилия направлены на получение флага Root



Здесь мы получили письмо, которое раскрывает очень важную уязвимость.

После определения версии ядра я поискал общеизвестные уязвимости, затрагивающие его, и нашёл CVE-2023-0386. Это уязвимость локального повышения привилегий (LPE) в реализации OverlayFS в ядре Linux. Она позволяет локальному злоумышленнику получить root-привилегии, используя ошибку в том, как OverlayFS обрабатывает файлы с capabilities Linux. Поскольку целевая машина работала на уязвимом ядре, эта уязвимость стала подходящим путём для повышения привилегий с текущего пользователя до .

Я поискал, как эксплуатировать эту уязвимость, нашёл этот PoC и попытался его собрать.

Я скачал репозиторий в свою ВМ и с помощью scp скопировал его на машину TwoMillion, прочитал README и развернул эксплойт.




Здесь мы получили root-доступ и прочитали флаг Root.

Готово!!

Спасибо <3
Abdullah Rawashdeh