- Регистрация
- 9 Май 2015
- Сообщения
- 1,549
- Баллы
- 155
Сегодня будем упражняться в сети с Active Directory, где часть машин работает на Linux. Начнем с веб‑уязвимостей: XSS в почтовике Roundcube и SQL-инъекции. Затем в Linux найдем бэкап базы данных и информацию для входа в домен. Следом используем несогласованность между поставщиками Kerberos и скомпрометируем еще один хост на Linux, а затем и весь домен.
Наша конечная цель — получение прав суперпользователя на машине DarkCorp с учебной площадки . Уровень сложности задания, как ты уже мог догадаться, — «безумный».
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Итак, приступим. Как всегда, добавляем IP-адрес машины в /etc/hosts:
10.10.11.54 darkcorp.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '
' ',' | sed s/,$//)
nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).
Результат работы скрипта
Сканер нашел два открытых порта:
Выбора нет, начинаем с веб‑сервера.
Точка входа
Нас редиректит на домен drip.htb, и система, естественно, не резолвит имя.
Текст ошибки
Обновим запись в файле /etc/hosts и снова обратимся к сайту.
10.10.11.54 darkcorp.htb drip.htb
Главная страница сайта
На сайте находим информацию о собственном почтовом сервисе (судя по картинке, это ). Также есть ссылка на авторизацию в почте, однако и этот домен не будет резолвиться.
Текст ошибки
Опять дополняем запись в /etc/hosts и обновляем страницу почтового сервиса.
10.10.11.54 darkcorp.htb drip.htb mail.drip.htb
Главная страница сайта
Мы можем зарегистрироваться на сайте, а затем авторизоваться в почтовом сервисе. Войдя в свой почтовый ящик, сразу получим сообщение от бота.
Входящие сообщения
Продолжаем собирать информацию. Узнаем, какая версия Roundcube развернута на сервере.
Информация о сервисе
Первым делом стоит проверить, есть ли для нее готовые эксплоиты. Просто поищем их в Google.
Поиск эксплоитов в Google
Третья ведет на репозиторий GitHub с описанием уязвимости .
CVE-2024-42009
Roundcube до версии 1.5.7 и с 1.6.x до 1.6.7 содержит уязвимость XSS, что дает возможность через отправку специального сообщения получить все данные из почтового ящика атакуемого пользователя, в том числе и содержимое сообщений.
Но нам нужно найти почтовые адреса для атаки. В форме Contact Us на сайте можно отправить сообщение, а в Burp Proxy — увидеть, что оно идет на почтовый ящик support@drip.htb.
Форма Contact Us
Запрос на сервер в Burp Proxy
Также интересно, от имени какого пользователя отправляется сообщение. Чтобы это узнать, используем Burp Repeater и изменим целевой адрес на свой.
Запрос на сервер
В почте проверим «Входящие» и из нового сообщения узнаем почтовый адрес безопасника bcase@drip.htb.
Содержимое сообщения
Теперь немного адаптируем код эксплоита. В строке 34 изменим TARGET_URL, в строке 44 укажем адрес своего веб‑сервера, куда будет эксфильтровано содержимое почтового ящика, а в переменной post_data заменим адрес отправителя и получателя.
Измененный код эксплоита
Запускаем веб‑сервер:
python3 -m http.server 4444
А теперь запускаем сам эксплоит:
python3 -m venv venv
source ./venv/bin/activate
pip install requests beautifulsoup4
python3 exploit.py
Результат работы эксплоита
Логи веб‑сервера
Декодируем данные из Base64 и открываем файлы через браузер. В одном из сообщений с адреса ebelford@drip.htb находим упоминание неизвестного нам сервиса dev-a3f1-01.drip.htb.
Декодированная страница
Точка опоры
Обновляем запись в файле /etc/hosts и отправляемся смотреть новый сервис.
10.10.11.54 darkcorp.htb drip.htb mail.drip.htb dev-a3f1-01.drip.htb
Главная страница dev-a3f1-01.drip.htb
Сайт недоступен, но на странице ошибки есть ссылка на авторизацию. А там — функция сброса пароля.
Страница сброса пароля
Чтобы сбросить пароль, укажем почту пользователя. Так как мы можем читать сообщения пользователей, введем почту bcase@drip.htb, а затем повторим эксплуатацию XSS. В сообщении найдем ссылку на страницу изменения пароля.
Входящее сообщение
Страница изменения пароля
Устанавливаем для учетной записи свой пароль и авторизуемся в системе.
Главная панель сайта
На странице Analytics выводятся логи и присутствует поле для фильтра.
Страница Analytics
Первым делом попробуем нагрузку для SQL-инъекции. На странице отобразилась ошибка SQL, а значит, будем копать дальше в этом направлении.
Ошибка SQL
SQL-инъекция
При эксплуатации SQL-инъекции первым делом узнаем версию СУБД.
''; SELECT version() -- -
Версии СУБД
Наша конечная цель — получение прав суперпользователя на машине DarkCorp с учебной площадки . Уровень сложности задания, как ты уже мог догадаться, — «безумный».
warning
Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка
Сканирование портов
Итак, приступим. Как всегда, добавляем IP-адрес машины в /etc/hosts:
10.10.11.54 darkcorp.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '
' ',' | sed s/,$//)
nmap -p$ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).
Результат работы скрипта
Сканер нашел два открытых порта:
- 22 — служба OpenSSH 9.2p1;
- 80 — веб‑сервер Nginx 1.22.1.
Выбора нет, начинаем с веб‑сервера.
Точка входа
Нас редиректит на домен drip.htb, и система, естественно, не резолвит имя.
Текст ошибки
Обновим запись в файле /etc/hosts и снова обратимся к сайту.
10.10.11.54 darkcorp.htb drip.htb
Главная страница сайта
На сайте находим информацию о собственном почтовом сервисе (судя по картинке, это ). Также есть ссылка на авторизацию в почте, однако и этот домен не будет резолвиться.
Текст ошибки
Опять дополняем запись в /etc/hosts и обновляем страницу почтового сервиса.
10.10.11.54 darkcorp.htb drip.htb mail.drip.htb
Главная страница сайта
Мы можем зарегистрироваться на сайте, а затем авторизоваться в почтовом сервисе. Войдя в свой почтовый ящик, сразу получим сообщение от бота.
Входящие сообщения
Продолжаем собирать информацию. Узнаем, какая версия Roundcube развернута на сервере.
Информация о сервисе
Первым делом стоит проверить, есть ли для нее готовые эксплоиты. Просто поищем их в Google.
Поиск эксплоитов в Google
Третья ведет на репозиторий GitHub с описанием уязвимости .
CVE-2024-42009
Roundcube до версии 1.5.7 и с 1.6.x до 1.6.7 содержит уязвимость XSS, что дает возможность через отправку специального сообщения получить все данные из почтового ящика атакуемого пользователя, в том числе и содержимое сообщений.
Но нам нужно найти почтовые адреса для атаки. В форме Contact Us на сайте можно отправить сообщение, а в Burp Proxy — увидеть, что оно идет на почтовый ящик support@drip.htb.
Форма Contact Us
Запрос на сервер в Burp Proxy
Также интересно, от имени какого пользователя отправляется сообщение. Чтобы это узнать, используем Burp Repeater и изменим целевой адрес на свой.
Запрос на сервер
В почте проверим «Входящие» и из нового сообщения узнаем почтовый адрес безопасника bcase@drip.htb.
Содержимое сообщения
Теперь немного адаптируем код эксплоита. В строке 34 изменим TARGET_URL, в строке 44 укажем адрес своего веб‑сервера, куда будет эксфильтровано содержимое почтового ящика, а в переменной post_data заменим адрес отправителя и получателя.
Измененный код эксплоита
Запускаем веб‑сервер:
python3 -m http.server 4444
А теперь запускаем сам эксплоит:
python3 -m venv venv
source ./venv/bin/activate
pip install requests beautifulsoup4
python3 exploit.py
Результат работы эксплоита
Логи веб‑сервера
Декодируем данные из Base64 и открываем файлы через браузер. В одном из сообщений с адреса ebelford@drip.htb находим упоминание неизвестного нам сервиса dev-a3f1-01.drip.htb.
Декодированная страница
Точка опоры
Обновляем запись в файле /etc/hosts и отправляемся смотреть новый сервис.
10.10.11.54 darkcorp.htb drip.htb mail.drip.htb dev-a3f1-01.drip.htb
Главная страница dev-a3f1-01.drip.htb
Сайт недоступен, но на странице ошибки есть ссылка на авторизацию. А там — функция сброса пароля.
Страница сброса пароля
Чтобы сбросить пароль, укажем почту пользователя. Так как мы можем читать сообщения пользователей, введем почту bcase@drip.htb, а затем повторим эксплуатацию XSS. В сообщении найдем ссылку на страницу изменения пароля.
Входящее сообщение
Страница изменения пароля
Устанавливаем для учетной записи свой пароль и авторизуемся в системе.
Главная панель сайта
На странице Analytics выводятся логи и присутствует поле для фильтра.
Страница Analytics
Первым делом попробуем нагрузку для SQL-инъекции. На странице отобразилась ошибка SQL, а значит, будем копать дальше в этом направлении.
Ошибка SQL
SQL-инъекция
При эксплуатации SQL-инъекции первым делом узнаем версию СУБД.
''; SELECT version() -- -
Версии СУБД
Источник: