Содержание статьи
Наша цель — получение прав суперпользователя на машине Instant с учебной площадки Hack The Box. Уровень сложности задания — средний.
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.11.37 instant.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).

Сканер нашел всего два открытых порта: 22 — служба OpenSSH 9.6p1 — и 80 — веб‑сервер Apache 2.4.58. Сразу идем смотреть сайт и находим там ссылку на загрузку файла APK (формат приложений для Android).

Точка входа
Для первичного анализа APK будем использовать фреймворк MobSF. Можно скачать его с GitHub и развернуть локально либо использовать общедоступный вариант по адресу mobsf.live. Я воспользовался вторым вариантом.
Заходим на сайт и загружаем приложение на анализ.

Спустя несколько минут статус задачи сканирования поменяется и будет доступна ссылка с отчетом. Среди общей статистики нам также доступен декомпилированный код приложения. Хотя для декомпиляции лучше обратиться к Decompiler.com.

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

Так мы узнаём о новом домене mywalletv1.
, поэтому обновляем запись в файле /
.
10.10.11.37 instant.htb mywalletv1.instant.htb
Также MobSF пробует найти различные секреты, токены и ключи. Второй очень похож на часть JWT.

Поочередно просматриваем декомпилированные файлы Java, в которых используются URL-адреса. В файле AdminActivities.
выполняется запрос на http://
и используется токен JWT.

Декодировать JWT можно на сайте JWT.io. В данных токена видим роль Admin.

При обращении к API profile
через браузер получим ошибку 401.

Однако, применив найденный JWT, мы получаем код ответа 200 вместе с запрошенными данными.

JWT рабочий, а значит, можно исследовать API.
Точка опоры
API
Больше ничего интересного я не нашел, поэтому переходим к следующему шагу — декомпиляции APK на уже упомянутом Decompiler.com.

Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее