
Образовательная автономная реализация на JavaScript публичного эксплойта для CVE-2016-9079 (Firefox Use-After-Free), адаптированная из оригинального модуля Exploit-DB/Metasploit.
Образовательная реализация публичного эксплойта для CVE-2016-9079, адаптированная из оригинального модуля Exploit-DB/Metasploit для автономного использования.
Дисклеймер
Этот репозиторий предоставлен строго в образовательных и исследовательских целях. Он содержит JavaScript-порт публично доступного эксплойта для изучения исторических техник эксплуатации браузеров. Он не предназначен для несанкционированного использования против систем, которыми вы не владеете или на тестирование которых у вас нет разрешения.
Этот репозиторий содержит автономную JavaScript-реализацию публичного эксплойта для CVE-2016-9079 — уязвимости типа Use-After-Free (UAF), затрагивающей старые версии Mozilla Firefox.
Уязвимость существует в подсистеме анимации SMIL (Synchronized Multimedia Integration Language) Firefox и при определённых условиях может позволить удалённое выполнение кода.
В отличие от оригинального публичного эксплойта, который распространяется в виде модуля Metasploit, этот репозиторий предоставляет браузерную реализацию, которую можно раздавать с простого HTTP-сервера.
Этот репозиторий предназначен как исторический образовательный справочник, а не как современный инструмент эксплуатации.
Готовясь к OSCP, я столкнулся с CTF-машиной, на которой работала старая уязвимая версия Firefox.
После перечисления (enumeration) эксплуатация браузера оказалась предполагаемым путём повышения привилегий.
Публично доступный эксплойт на Exploit-DB был реализован в виде модуля Metasploit. Поскольку экзамен OSCP ограничивает использование Metasploit, мне нужна была автономная версия, которую можно было бы запустить без этого фреймворка.
Изучив публичный эксплойт, я адаптировал его в эту JavaScript-реализацию.
Важно отметить, что:
CVE: CVE-2016-9079
Тип: Use-After-Free (UAF)
Поражённый компонент: SMIL-анимация Firefox (nsSMILTimeContainer)
Воздействие: Удалённое выполнение кода
Уязвимость срабатывает через специально созданные SVG-анимационные объекты, которые вызывают состояние use-after-free внутри движка анимации Firefox. Затем эксплойт выполняет манипуляции с кучей (heap), после чего запускает ROP-цепочку для достижения выполнения кода.
Этот репозиторий сохраняет публично задокументированную технику эксплуатации в образовательных целях.
index.htmlОсновная точка входа.
Загружает JavaScript-компоненты и запускает уязвимость при открытии в совместимой версии Firefox.
worker.jsСодержит большую часть логики эксплойта, включая:
Реализация адаптирована из публично доступного эксплойта.
README.mdДокументация, описывающая уязвимость, назначение репозитория и его использование.
Совместимость с более новыми версиями Firefox не ожидается.

python3 -m http.server 8000
Перейдите по адресу:
http://<server-ip>:8000/index.html
из уязвимого экземпляра Firefox.

Примечание — возможно, придётся запускать эксплойт несколько раз.
Этот репозиторий намеренно минималистичен и не должен рассматриваться как универсальный фреймворк эксплуатации.
По сравнению с оригинальной реализацией Metasploit:
В результате эту реализацию следует использовать только в контролируемых средах с заведомо совместимыми версиями.
Хотя я не являюсь автором оригинального эксплойта, его адаптация в автономную реализацию дала ценный опыт работы с такими концепциями, как:
Этот репозиторий дополняет мою работу в области безопасности приложений и bug bounty, документируя часть моего процесса подготовки к OSCP.
Этот репозиторий распространяется только в образовательных целях.
Авторство оригинальной техники эксплуатации принадлежит первоначальным исследователям и авторам публичного эксплойта. Этот репозиторий лишь адаптирует публично доступную реализацию в автономный формат для образовательного использования.