# DMZ Proxy Task(10.10.10.20) ## Описание У нас есть информация, что данный хост используется для администрирования БД. Их администратор также занимается настройкой сетевого оборудования. Так же наша группа OSINT нашла в публичном репозитории https://dropmefiles.com/EqGvd конфиг с этого сервиса. Попробуй найти какую-нибудь конфигурацию сетевого оборудования и присылай нам. Содержимое apache2.conf ``` <VirtualHost *:80> ProxyPreserveHost On <Location "/"> AuthType Basic AuthName "Control Panel" AuthBasicProvider file AuthUserFile "/etc/apache2/passwd" require valid-user ProxyPass "http://127.0.0.1:8000/" ProxyPassReverse "http://127.0.0.1:8000/" </Location> <Location "/guest"> Satisfy Any RequestHeader set Guest "True" ProxyPass "http://127.0.0.1:8000/" ProxyPassReverse "http://127.0.0.1:8000/" </Location> <Location "/static"> Satisfy Any </Location> </VirtualHost> ``` ## Краткое описание уязвимостей На сервере имеется разделение доступа через добавление специального заголовка с использованием прокси-сервера Apache. Данный механизм обходится с помощью [RFC 2616 Section 13.5.1](https://www.rfc-editor.org/rfc/rfc2616#section-13.5.1). В самой админ-панели находится mysql-клиент с [разрешенной загрузкой локальных файлов](https://dev.mysql.com/doc/refman/8.0/en/load-data-local-security.html). Через чтение закрытого ключа открывается доступ по SSH. # Решение ## Исследование сервера Полученный файл представляет собой конфигурацию Apache2, работающий в режиме reverse-proxy. На корневой путь установлена Basic-аутентификация. На `/guest` аутентификация отсутствует, но прокси-сервер устанавливает заголовок `Guest`, из-за чего Backend-сервер ограничивает доступ. ![GuestAccess](https://i.imgur.com/HU3sqXD.png) ## Подготовка эксплоита и исполнение Изменим заголовок `Connection: close` на `Connection: close, Guest`. Прокси-сервер должен будет удалить заголовок `Guest` из своего запроса. ![Hop-By-Hop Strip](https://i.imgur.com/2zE5xex.png) ![Admin-Panel](https://i.imgur.com/e7Zb614.png) Далее запускаем [Rogue-MySQL](https://github.com/jib1337/Rogue-MySQL-Server) сервер для считывания файлов с клиента. Необходимо считать приватный ключ SSH пользователя `root` по пути `/root/.ssh/id_rsa`. ![Rogue-Obtained](https://i.imgur.com/vHTzqzX.png) ![SSH-Private Key](https://i.imgur.com/O4kOE2Z.png) Используя приватный ключ, получаем доступ по SSH на порту 2200. ![SSH-root](https://i.imgur.com/6v9Efy2.png) В файле `config.pcf` получаем флаг. ![flag](https://i.imgur.com/BVHjblW.png)