Решение задачи Kotarak на базе платформы Hack the Box

Решение задачи Kotarak на базе платформы Hack the Box

Сегодня мы будем решать задачу «Kotarak», которая доступна онлайн для тех, кто хочет прокачать навыки пентестера и научиться тестировать «черные ящики»

Автор: Raj Chandel

Привет друзья! Сегодня мы будем решать задачу «Kotarak», которая доступна онлайн для тех, кто хочет прокачать навыки пентестера и научиться тестировать «черные ящики». Kotarak – изъятая из использования лабораторная работа, в которой нужно найти уязвимость, на базе платформы Hack the Box, предназначенной для выполнения практик, связанных с пентестами, согласно вашего уровня экспертности. Есть лабораторные как для начинающих, так и для продвинутых специалистов.

Уровень: Сложный

Задача: найти файлы user.txt и root.txt на компьютере жертвы.

Поскольку эти лабораторные работы доступны онлайн, у каждой есть статический IP-адрес. В нашем случае мы будем использовать адрес 10.10.10.55.

Приступаем к сканированию портов.

nmap -p- -A 10.10.10.55 --open

По результатам сканирования выясняется, что на компьютере жертвы открыты порты 22, 8009, 8080, 60000.

Рисунок 1: Результаты сканирования портов

Поскольку на портах 8080 и 60000 используется протокол HTTP, вводим IP в адресной строке браузера для доступа к странице через порт 8080. После ввода IP-адреса в браузере появляется приглашение на ввод имени пользователя и пароля.

Рисунок 2: Окно для авторизации в Tomcat Manager

Если мы попытаемся получить доступ через порт 60000, то в ответ получим страницу, которая может использоваться для серфинга в интернете.

Рисунок 3: Сервис для анонимного серфинга в интернете

Теперь воспользуемся утилитой dirb для поиска директорий на целевой машине.

dirb http://10.10.10.55:60000/

По результатам поиска нашлась одна директория.

Рисунок 4: Перечень доступных файлов и директорий на машине жертвы

Затем проверяем, уязвима ли данная страница к атаке SSRF, посредством доступа к запрещенной странице на целевой машине.

Рисунок 5: Попытка доступа к запрещенной странице

При попытке посмотреть содержимое директории server-status через уязвимую страницу, мы смогли получить доступ конфиденциальной информации. Кроме того, выяснилось, что порт 888 доступен локально на целевой машине.

Рисунок 6: Перечень процессов, запущенных в целевой системе

Далее открываем http://localhost:888 при помощи того же трюка и получаем несколько ссылок на разные файлы.

Рисунок 7: Содержимое одной из директорий

Пробуем открыть файл backup. В ответ - пустота.

Рисунок 8: Результаты просмотра файла backup в браузере

Далее при помощи утилиты curl выяснилось, что эта страница представляет собой XML-файл, содержащий имя пользователя и пароль.

curl http://10.10.10.55:60000/url.php?path=localhost:888/?doc=backup

Рисунок 9: Содержимое файла backup

Используем полученные учетные записи для авторизации в приложении Tomcat Manager, которое доступно через порт 8080.

Рисунок 10: Ввод полученных учетных записей в окне авторизации

После получения правильной учетной записи выяснилось, что сервер Tomcat имеет уязвимость. Для эксплуатации этой бреши мы использовали metasploit.

msf > use exploit/multi/http/tomcat_mgr_upload

msf exploit(multi/http/tomcat_mgr_upload) > set rhost 10.10.10.55

msf exploit(multi/http/tomcat_mgr_upload) > set rport 8080

msf exploit(multi/http/tomcat_mgr_upload) > set httpusername admin

msf exploit(multi/http/tomcat_mgr_upload) > set httppassword 3@g01PdhB!

msf exploit(multi/http/tomcat_mgr_upload) > exploit

В конце нам удалось получить meterpreter-сессию, как показано на рисунке ниже.

Рисунок 11: Получение сессии в Meterpreter

После получения обратного шелла мы начали исследовать целевую систему. В директории /home/tomcat/to_archive/pentest_data оказалось много интересных файлов.

Рисунок 12: Переход в директорию pentest_data

В папке home/tomcat/to_archive/Pentest_data мы нашли файл с информацией о дереве директорий, а также бинарный файл.

Мы скачали оба файла.

Рисунок 13: Содержимое директории pentest_data

Для выгрузки хешей из этих файлов мы использовали утилиту impacket-secretsdump.

Рисунок 14: Выгрузка хешей из файлов

Нам удалось взломать один из хешей. Получен пароль f16tomcat!

Рисунок 15: Результаты подбора пароля к одному из хешей

После авторизации при помощи логина atanas и полученного пароля, в директории /root/ мы нашли файл flag.txt. Однако после открытия найденного файла выяснилось, что это обманка.

Рисунок 16: Содержимое файла flag.txt

В директории root мы нашли файл app.log. После просмотра содержимого этого файла выяснилось, что логи созданы по факту использования утилиты wget версии 1.16.

Рисунок 17: Содержимое файла app.log

По результатам поиска на сайте Exploit-DB выяснилось, что эта версия wget имеет уязвимость, связанную с удаленным выполнением кода.

Рисунок 18: Описание эксплоита

Мы выполнили все инструкции, указанные на сайте exploit-db.com, касающиеся эксплуатации этой уязвимости.

Рисунок 19: Перечень манипуляций, необходимых для эксплуатации уязвимости

Затем мы открыли файл wgetrc в редакторе vim, чтобы изменить значение параметра Post_file с /etc/shadow на /root/root.txt.

Рисунок 20: Редактирование файла wgetrc

Мы скачали этот эксплоит с сайта exploit-db.com, после чего загрузили полученный файл на целевую машину через meterpreter.

Рисунок 21: Загрузка эксплоита на компьютер жертвы

Затем на загруженный файл были установлены права на чтение, запись и выполнение.

Рисунок 22: Установка прав на файл exploit.py

Далее мы воспользовались утилитой authbind, которая позволяет запускать приложения, обычно требующие прав суперпользователя, от имени рядового пользователя. Как только нам удалось воспользоваться эксплоитом, мы получили все необходимые файлы.

Рисунок 23: Запуск
эксплоита при помощи authbind


Ваша приватность умирает красиво, но мы можем спасти её.

Присоединяйтесь к нам!