Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Сегодня мы проанализируем приложение для Android, подберемся к скрытому сайту, поработаем с платформой Cachet, чтобы получить доступ к хосту, и рекомпилируем приложение, чтобы повысить привилегии. Все это в рамках прохождения средней по сложности машины Catch с площадки Hack The Box.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Начинаем, как водится, со сканирования портов исследуемой машины. Ее IP сразу добавляем в /etc/hosts
:
10.10.11.150 catch.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта.
#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A
).
Результат работы скрипта
Мы нашли несколько открытых портов:
Проходим к сайту на порте 80.
Главная страница сайта catch.htb
На сайте ничего необычного, скрытого или полезного не находим, кроме того, что предлагается загрузить какое‑то приложение.
Окно загрузки приложения
После загрузки видим, что это программа для Android. На других портах работают Git (3000), чат Let’s Chat и платформа Cachet.
Как создать и развернуть виртуальную машину Android, а затем включить отладку, я уже писал в недавнем прохождении машины Routerspace, поэтому сразу перейдем к установке приложения.
adb install catchv1.0.apk
Установка приложения с помощью ADB
Меню Android
При запуске приложения получаем ошибку соединения, а также раскрываем новый поддомен, который сразу добавляем в /etc/hosts
.
Ошибка соединения10.10.11.150 catch.htb status.catch.htb
Указанный адрес ведет на порт 443, который на сервере закрыт, поэтому попробуем вытянуть из приложения еще какие‑нибудь данные. Для этого я буду использовать мини‑песочницу для Android-приложений MobSF. В ней есть возможность статического и динамического анализа. Если тебе неохота устанавливать макет на свой хост, то можно пользоваться уже развернутой онлайновой версией.
Главная панель MobSF
Загружаем приложение и получаем отчет по статическому анализу.
Информация о загруженном файле
Из важного сразу отмечаем забитые в приложение токены.
Найденные в приложении токены доступа
По второму токену определяем, что наша следующая цель — Let’s Chat. Вставляем его как токен доступа в заголовок Authorization
.
Измененный запрос на сервер
Чтобы этот токен автоматически вставлялся в каждый запрос, отправленный через браузер, воспользуемся функцией match/replace в опциях Burp Proxy. Там выбираем заголовок запроса в качестве типа и указываем замену пустого поля нашим заголовком.
Опции Burp Proxy
Обновляем страницу чата в браузере, в результате чего получаем редирект на страницу /rooms
и список групп.
Список групп пользователя
Можем получить сообщения из группы, выполнив запрос на адрес /rooms/<is>/messages
.
Сообщения из группы
В группе 61b86b28d984e2451036eb17
находим пересланные учетные данные пользователя john.
Сообщение с учетными данными
Пробуем ввести эту учетку на всех веб‑сервисах и получаем доступ к платформе Cachet.
Форма авторизации Cachet
Главная страница Cachet
В настройках платформы узнаем ее версию — 2.4.0-dev
.
Параметры платформы Cachet
Первым делом стоит проверить, есть ли для этой версии готовые эксплоиты. Самый надежный способ сделать это — поискать в интернете на сайтах вроде HackerOne, exploit-db и, конечно, GitHub.
Поиск эксплоитов в Google
В блоге Sonar описано несколько CVE. Нам интересна CVE-2021-39174, которая позволит прочитать переменные среды.
Источник: xakep.ru