# Использование сторонних компонентов с известными уязвимостями
## Описание уязвимостей этого типа
Уязвимости, которые возникают с течением времени в программном обеспечении. Так как за время существования приложения находятся недостатки, которые могут быть использованы злоумышленниками для проведения атак.
## Причины возникновения уязвимостей
Могут происходить из-за:
- отсутствия механизмов проверки версионности используемых компонентов
- отсутствия информации о опубликованной уязвимости
- недостаточной оценке критичности уязвимости
## Демонстрация общедоступных систем публикации уязвимостей
- https://nvd.nist.gov
- https://cve.mitre.org
- https://www.exploit-db.com
- ...
## Последствия эксплуатации уязвимостей
Уязвимости, которые попадают в публичные репозитории и исследования сразу могут стать популярными для использования против систем, которые могут работать с внешним миром, однако, важной составляющей уязвимости может стать:
- результат (выполнение команд, отказ в обслуживании и т.д.)
- распространенность ПО, где обнаружена уязвимость
- популярность компании, где была найдена уязвимость
## Примеры эксплуатации уязвимостей, которые привели к большим утечкам данных
- Log4Shell
- Follina
- Spring4Shell
- Google Chrome Zero-Day
- F5 BIG-IP
- Microsoft Office Bug
- ProxyNotShell
- Zimbra Collaboration Suite Bugs
- Atlassian Confluence RCE Flaw
- Zyxel RCE Vulnerability
## Основные нашумевшие уязвимости (FREAK, POODLE, ShellShock, EventStream, Zip-Slip)
**FREAK** - атака на понижение версии используемого шифрования для TLS.
**CVE-2015-0204** - тоесть уязвимы будут все сервера и клиенты, которые используют версии openSSL ниже 1.01k. Так же считается, что данная уязвимость есть вообще во всех пакетах для работы с TLS, которые выходили до 2014 года.
[Тут можно посмотреть насколько уязвимость популярна сегодня](https://en.fofa.info/result?qbase64=IkNWRS0yMDE1LTAyMDQi)
**POODLE** - вид атаки на понижение версии шифроваиня для TLS через использование MiTM техник
**CVE-2014-3566** - уязвимость, которая имеет несколько вариантов, так как после патча, был разработан метод эксплуатации, который использовал режим работы CBC AES для проведения Padding Oracle атаки.
**ShellShock** - уязвимость в процессинге запросов на сервер, где для этого применялся Shell.
**EventStream** - атака на поставщика, подразумевает, что злоумышленник занимается подменой известных пакетов или библиотек для работы приложения.
**Zip-Slip** - уязвимость в ПО, которое использует для своей работы решения для архивации данных.
Обычно работает с:
- .tar
- .jar
- .war
- .cpio
- .apk
- .rar
- .7z
Небольшой список уязвимых приложений и компонентов можно найти [тут](https://github.com/snyk/zip-slip-vulnerability).
## Оценка безопасности компонента
Может быть произведена только, если применяются подходы для постоянного обеспечения безопасности приложений и **Patch Management**.
Так же можно применить несколько простых правил:
- Удалять неиспользуемые зависимости, неиспользуемые функции, компоненты, файлы и т.д. Эта процедура поможет уменьшить `поверхность атаки`.
- согласовение версий `frontend` и `backend` и отслеживание известных уязвимостей для ПО
- получение компонентов и библиотек из официальных или доверенных источников
- мониторинг уязвимостей и проверка патчей - публикация информации об узявимости может не содержать подробностей о применимости патча для старых версий
## Пример эксплуатации веб-приложения с известной уязвимостью
Развернуть приложенние можно из [этого](https://github.com/vulhub/vulhub/tree/master/cacti/CVE-2022-46169) репозитория.
Для атаки будет использоваться фреймворк Metasploit:
- открыть terminal
- найти эксплойт - https://github.com/rapid7/metasploit-framework/blob/89378d54c8596aa7896741b12e314391a19b3c95/modules/exploits/linux/http/cacti_unauthenticated_cmd_injection.rb#L20
- создать файл в директории exploits и скопировать содержимое файла из предыдущего пункта - для kali linux это путь - /usr/share/metasploit-framework/exploits/
- запустить команду set PAYLOAD payload/linux/x64/exec
- запустить команду set CMD "echo 'Test' >> /tmp/test.txt"
- запустить команду set RHOST ip.add.dr
- запустить команду exploit
ip.add.dr - адрес уязвимого контейнера от cacti.