Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этом райтапе я покажу, как проникнуть на хост через бэкдор в настройках проекта Visual Studio. Затем получим сессию от имени службы веб‑сервера, активируем привилегию SeImpersonate и используем очередную «картошку» для выполнения кода от имени системы.
Наша цель — получение прав суперпользователя на машине Visual с учебной площадки Hack The Box. Уровень сложности машины — средний.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Добавляем IP-адрес машины в /etc/hosts
:
10.10.11.234 visual.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 (веб‑сервер Apache 2.4.56), что для Windows крайне нехарактерно. Давай взглянем на сайт, с которым нам предстоит работать.
Главная страница сайта
На сайте есть форма вставки URL и Git-репозиторий. Давай для теста запустим локальный веб‑сервер и посмотрим, что будет, если вставить в поле для ссылки его адрес.
python3 -m http.server 80
Мы получаем лог сборки проекта.
Лог сборки
Логи веб‑сервера
На сайте указано, что используется язык разработки C# и среда Visual Studio, а значит, ожидается, что пользователь вставит адрес репозитория с проектом на C#. Давай подготовим такой репозиторий.
Поднимаем виртуалку с Windows и ставим Visual Studio. Теперь создадим простой консольный проект C# и скопируем его папку на свой основной хост.
Структура проекта Visual Studio
Теперь нужно создать Git-репозиторий. Инициализировать пустой репозиторий можно командой git init
в каталоге с проектом.
Создание Git-репозитория
Теперь командой git add
нужно добавить каталог проекта в репозиторий и создать коммит с любым именем, к примеру e1
:
git commit -m e1
В конце обновляем информацию о сервере командой git update-server-info
.
Добавление файлов в репозиторий
Когда все готово, в текущем каталоге снова запускаем веб‑сервер и отправляем адрес репозитория:
http://10.10.16.91/.git
Логи веб‑сервера
Логи сборки
Сборка проекта прошла успешно, а значит, мы можем перейти к следующей стадии — получению удаленного выполнения кода.
Существует несколько способов выполнить код, манипулируя настройками сборки проектов Visual Studio. Обычно такие трюки применяют при целевых фишинговых атаках, направленных на разработчиков. Самый простой из них — это задания перед сборкой и после.
Источник: xakep.ru