# 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-сервер ограничивает доступ.

## Подготовка эксплоита и исполнение
Изменим заголовок `Connection: close` на `Connection: close, Guest`. Прокси-сервер должен будет удалить заголовок `Guest` из своего запроса.


Далее запускаем [Rogue-MySQL](https://github.com/jib1337/Rogue-MySQL-Server) сервер для считывания файлов с клиента. Необходимо считать приватный ключ SSH пользователя `root` по пути `/root/.ssh/id_rsa`.


Используя приватный ключ, получаем доступ по SSH на порту 2200.

В файле `config.pcf` получаем флаг.
