Содержание статьи
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка. Сканирование портов
Добавляем IP-адрес машины в /
:
10.10.10.247 explore.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
).
Видим всего два открытых порта: 2222 (служба SSH) и пока неизвестный для нас 59777 (на пояснение Nmap можно не смотреть, так как он просто вывел информацию из своей базы). На SSH нам пока делать нечего, у нас нет никаких ключей, учетных данных и вообще какой‑либо информации для составления списка паролей. Поэтому отправимся в Google и поищем сведения про порт 59777.
Узнаем, что открытый порт 59777 содержат версии ES File Explorer 4.1.9.5.2 и более ранние. ES File Explorer — это полнофункциональный менеджер файлов для Android, и он годится как для локального, так и для сетевого использования.
Точка входа. Поиск эксплоитов
Мы узнали, какая используется технология, а это значит, что можно поискать готовые эксплоиты.
Справка: поиск готовых эксплоитов
При пентесте лучше всего искать эксплоиты при помощи Google, поскольку этот поисковик заглядывает и в личные блоги, и в самые разные отчеты. Ускорят дело специализированные базы вроде Exploit-DB — там часто можно обнаружить подходящие варианты. Если ты работаешь в специализированной ОС вроде Kali Linux, то эта база у тебя уже есть и для поиска можно использовать утилиту searchsploit
.
В Exploit-DB находим готовый код. Эксплуатируемая им уязвимость носит идентификатор CVE-2019-6447
. Из ее описания узнаем детали: приложение запускает на устройстве скрытый HTTP-сервер, который позволяет получить доступ к данным других пользователей, подключенных к той же сети в момент запуска приложения.
Скачиваем и пробуем запустить эксплоит. Нам сообщают, что в качестве обязательных параметров нужно указать команду и адрес, также есть опция для скачивания файлов.
Если просмотреть код эксплоита, мы сможем узнать о следующих поддерживаемых командах:
-
listFiles
— получить список файлов в директории; -
listPics
— список изображений; -
listVideos
— список видеофайлов; -
listAudios
— список аудиофайлов; -
listApps
— список установленных приложений; -
listAppsSystem
— список системных приложений; -
listAppsPhone
— список приложений для связи; -
listAppsSdcard
— список приложений на карте SD; -
listAppsAll
— список всех приложений; -
getFile
— загрузить файл с устройства (для этого, видимо, и нужен третий параметр); -
getDeviceInfo
— получить информацию об устройстве.
Прежде чем ковыряться в файловой системе, нужно узнать, с чем мы работаем. Давай получим информацию об устройстве:
python3 50070.py getDeviceInfo explore.htb
Информации немного, но видим корневую директорию ftpRoot — /
.
Точка опоры. Модернизация эксплоита
Получить список файлов в заданной директории при помощи этого эксплоита не выйдет, поэтому мне пришлось его немного доработать. Для этого нужно просто добавить к URL каталог, к которому мы обращаемся. Я реализовал это в третьем параметре, ниже приведен код, который следует добавить в эксплоит.
if cmd == cmds[0]: if len(sys.argv) != 4: print("[+] Include dir for get list.") sys.exit(1) else: url += sys.argv[3]
А теперь в третьем параметре передадим каталог, содержимое которого мы хотим получить.
python3 50070.py listFiles explore.htb /sdcard
Находим файл user.
, но забирать его пока рано, ведь мы не получили управление. Можно посмотреть каталоги загрузок (Download
) и документов (Documents
), также много интересного можем найти и в картинках. Но сперва обратим внимание на две директории, дата изменения которых отличается от остальных: dianxinos
и DCIM
. В первой ничего интересного, а вот в директории камеры есть интересный файл creds
.
python3 50070.py listFiles explore.htb /sdcard/DCIM
Эти же фотографии можно было обнаружить с помощью специальной поддерживаемой команды listPics
.
python3 50070.py listPics explore.htb
Загрузим интересующее нас изображение командой getFile
.
python3 50070.py getFile explore.htb /sdcard/DCIM/creds.jpg
Просматриваем картинку и находим логин и пароль.
Что характерно для такого рода задачек, эта учетка подходит к SSH. Таким образом мы получаем флаг пользователя.
Локальное повышение привилегий
Сомневаюсь, что скрипты для поиска путей повышения привилегий вроде LinPEAS сработают на Android, поэтому я решил проверять вручную. Первое, на что я обратил внимание, — это система, но никаких эксплоитов для Android этой версии обнаружить не удалось.
uname -a
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»