Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Сегодня я покажу процесс анализа APK-приложения в Linux. Мы получим данные для доступа к закрытому API на сайте, а затем через уязвимость LFI прочитаем критически важные файлы на сервере и получим сессию пользователя. Для повышения привилегий взломаем хеш Werkzeug и извлечем учетные данные из Solar-PuTTY.
Наша цель — получение прав суперпользователя на машине Instant с учебной площадки Hack The Box. Уровень сложности задания — средний.
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Добавляем IP-адрес машины в /etc/hosts
:
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.
Отчет MobSF
Листаем страницу отчета и отмечаем любые данные, которые могут пригодиться для более детального изучения файла. Очень важная информация — это список URL, найденных в файле.
Список URL-адресов
Так мы узнаём о новом домене mywalletv1.instant.htb
, поэтому обновляем запись в файле /etc/hosts
.
10.10.11.37 instant.htb mywalletv1.instant.htb
Также MobSF пробует найти различные секреты, токены и ключи. Второй очень похож на часть JWT.
Список возможных секретов
Поочередно просматриваем декомпилированные файлы Java, в которых используются URL-адреса. В файле AdminActivities.java
выполняется запрос на http://mywalletv1.instant.htb/api/v1/view/profile
и используется токен JWT.
Содержимое файла AdminActivities.java
Декодировать JWT можно на сайте JWT.io. В данных токена видим роль Admin.
Декодированный JWT-токен
При обращении к API profile
через браузер получим ошибку 401.
Ответ сервера
Однако, применив найденный JWT, мы получаем код ответа 200 вместе с запрошенными данными.
Запрос и ответ в Burp Repeater
JWT рабочий, а значит, можно исследовать API.
Больше ничего интересного я не нашел, поэтому переходим к следующему шагу — декомпиляции APK на уже упомянутом Decompiler.com.
Декомпилирование APK
Источник: xakep.ru