Содержание статьи
Наша цель — получение прав суперпользователя на машине Visual с учебной площадки Hack The Box. Уровень сложности машины — средний.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Добавляем IP-адрес машины в /
:
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# и скопируем его папку на свой основной хост.
Теперь нужно создать Git-репозиторий. Инициализировать пустой репозиторий можно командой git
в каталоге с проектом.
Теперь командой git
нужно добавить каталог проекта в репозиторий и создать коммит с любым именем, к примеру e1
:
git commit -m e1
В конце обновляем информацию о сервере командой git
.
Когда все готово, в текущем каталоге снова запускаем веб‑сервер и отправляем адрес репозитория:
http://10.10.16.91/.git
Сборка проекта прошла успешно, а значит, мы можем перейти к следующей стадии — получению удаленного выполнения кода.
Точка опоры
Существует несколько способов выполнить код, манипулируя настройками сборки проектов Visual Studio. Обычно такие трюки применяют при целевых фишинговых атаках, направленных на разработчиков. Самый простой из них — это задания перед сборкой и после.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»