
Эксплойт доказательства концепции для CVE-2024-24824, демонстрирующий, как примитив произвольной загрузки классов может быть преобразован в удаленное выполнение кода на уязвимых развертываниях Graylog.
Этот репозиторий содержит эксплойт proof-of-concept, представленный в моём докладе:
Эксплуатация произвольной загрузки классов в JVM
Посмотрите его здесь, если интересно: Youtube
Эксплойт нацелен на CVE-2024-24824 (небольшая опечатка в слайдах) — уязвимость произвольной загрузки классов, затрагивающую Graylog версий 2.0.0 до 5.2.3.
Вместо того чтобы рассматривать произвольную загрузку классов как конечную цель, это исследование изучает, как этот примитив можно использовать для обнаружения и построения всё более мощных техник эксплуатации путём анализа доступного classpath JVM.
Имея возможность создавать произвольные классы с данными, контролируемыми атакующим, возникает задача:
Что мы на самом деле можем с этим сделать?
Ответ полностью зависит от того, какие классы существуют в classpath целевого приложения.
Сопроводительное исследование показало, как примитив произвольной загрузки классов может быть преобразован в несколько примитивов эксплуатации, включая:
Этот репозиторий фокусируется на эксплойте удалённого выполнения кода, продемонстрированном во время доклада.
Ниже показан ожидаемый результат запуска эксплойта на уязвимом экземпляре:

exploit/
exploit source
docs/
slides
Сопроводительный доклад шаг за шагом проходит весь процесс эксплуатации:
Цель — продемонстрировать процесс мышления, стоящий за разработкой эксплойта, а не просто сбросить готовый эксплойт.
Этот код выпущен только в образовательных целях, для исследований в области безопасности и авторизованного тестирования безопасности.
Тестируйте только системы, которые вам принадлежат или на которые у вас есть явное разрешение.