---
# System prepended metadata

title: DMZ Proxy Task(10.10.10.20)

---

# 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)