Содержание статьи
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Начинаем, как водится, со сканирования портов исследуемой машины. Ее IP сразу добавляем в /
:
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
).
![](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27086/02.png)
![](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27085/03.png)
![Результат работы скрипта Результат работы скрипта](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27084/04.png)
Мы нашли несколько открытых портов:
- порт 22 — служба OpenSSH 8.2p1;
- порты 80 и 8000 — служба веб‑сервера Apache 2.4.41;
- порты 3000 и 5000 — какие‑то неизвестные приложения, работающие по протоколу HTTP.
Проходим к сайту на порте 80.
![Главная страница сайта catch.htb Главная страница сайта catch.htb](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27083/05.png)
На сайте ничего необычного, скрытого или полезного не находим, кроме того, что предлагается загрузить какое‑то приложение.
![Окно загрузки приложения Окно загрузки приложения](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27082/06.png)
После загрузки видим, что это программа для Android. На других портах работают Git (3000), чат Let’s Chat и платформа Cachet.
Точка входа
Как создать и развернуть виртуальную машину Android, а затем включить отладку, я уже писал в недавнем прохождении машины Routerspace, поэтому сразу перейдем к установке приложения.
adb install catchv1.0.apk
![Установка приложения с помощью ADB Установка приложения с помощью ADB](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27081/07.png)
![Меню Android Меню Android](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27080/08.png)
При запуске приложения получаем ошибку соединения, а также раскрываем новый поддомен, который сразу добавляем в /
.
![Ошибка соединения Ошибка соединения](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27079/09.png)
10.10.11.150 catch.htb status.catch.htb
Указанный адрес ведет на порт 443, который на сервере закрыт, поэтому попробуем вытянуть из приложения еще какие‑нибудь данные. Для этого я буду использовать мини‑песочницу для Android-приложений MobSF. В ней есть возможность статического и динамического анализа. Если тебе неохота устанавливать макет на свой хост, то можно пользоваться уже развернутой онлайновой версией.
![Главная панель MobSF Главная панель MobSF](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27078/10.png)
Загружаем приложение и получаем отчет по статическому анализу.
![Информация о загруженном файле Информация о загруженном файле](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27071/11.png)
Из важного сразу отмечаем забитые в приложение токены.
![Найденные в приложении токены доступа Найденные в приложении токены доступа](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27070/12.png)
По второму токену определяем, что наша следующая цель — Let’s Chat. Вставляем его как токен доступа в заголовок Authorization
.
![Измененный запрос на сервер Измененный запрос на сервер](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27077/13.png)
Точка опоры
Чтобы этот токен автоматически вставлялся в каждый запрос, отправленный через браузер, воспользуемся функцией match/replace в опциях Burp Proxy. Там выбираем заголовок запроса в качестве типа и указываем замену пустого поля нашим заголовком.
![Опции Burp Proxy Опции Burp Proxy](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27076/14.png)
Обновляем страницу чата в браузере, в результате чего получаем редирект на страницу /
и список групп.
![Список групп пользователя Список групп пользователя](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27075/15.png)
Можем получить сообщения из группы, выполнив запрос на адрес /
.
![Сообщения из группы Сообщения из группы](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27074/16.png)
В группе 61b86b28d984e2451036eb17
находим пересланные учетные данные пользователя john.
![Сообщение с учетными данными Сообщение с учетными данными](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27073/17.png)
Пробуем ввести эту учетку на всех веб‑сервисах и получаем доступ к платформе Cachet.
![Форма авторизации Cachet Форма авторизации Cachet](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27072/18.png)
![Главная страница Cachet Главная страница Cachet](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27069/19.png)
Продвижение
В настройках платформы узнаем ее версию — 2.
.
![Параметры платформы Cachet Параметры платформы Cachet](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27068/20.png)
Первым делом стоит проверить, есть ли для этой версии готовые эксплоиты. Самый надежный способ сделать это — поискать в интернете на сайтах вроде HackerOne, exploit-db и, конечно, GitHub.
![Поиск эксплоитов в Google Поиск эксплоитов в Google](https://static.xakep.ru/images/ed241a1bf1a76b3230a1b86dcfee8a38/27067/21.png)
В блоге Sonar описано несколько CVE. Нам интересна CVE-2021-39174, которая позволит прочитать переменные среды.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»