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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/pierpaolosestito-dev/log4shell-cve-2021-44228-poc
Vulnerability AnalysisExploitationWeb Application ExploitationCommand and ControlRemote Access ToolPayload Development
GitHubpierpaolosestito-dev/log4shell-cve-2021-44228-poc

Log4Shell-CVE-2021-44228-PoC

CVE 2021-44228 개념 증명. Log4Shell은 취약한 버전의 Log4J를 사용하는 서버를 대상으로 하는 공격입니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
13년 전아직 검토되지 않음

Log4Shell

CVE-2021-44228: 간단한 설명

Apache Log4j2 2.0-beta9 ~ 2.15.0 (2.12.2, 2.12.3 및 2.3.1 릴리스는 제외)

구성, 로그 메시지 및 매개변수에 사용되는 JNDI 기능은 공격자가 제어하는 LDAP 및 기타 JNDI 관련 엔드포인트로부터 보호하지 못합니다. 로그 메시지 또는 로그 메시지 매개변수를 제어할 수 있는 공격자는 메시지 조회 대체(message lookup substitution)가 활성화되어 있을 때 LDAP 서버에서 로드된 임의 코드를 실행할 수 있습니다. log4j 2.15.0부터 이 동작은 기본적으로 비활성화되었습니다. 버전 2.16.0(및 2.12.2, 2.12.3, 2.3.1)부터 이 기능은 완전히 제거되었습니다. 이 취약점은 log4j-core에만 해당하며 log4net, log4cxx 또는 기타 Apache Logging Services 프로젝트에는 영향을 미치지 않습니다.

그 결과 CVSS v3 점수 10.0(최대 점수)으로 평가됩니다.

공격자는 이러한 버전에 의존하는 취약한 서버에서 원격 코드 실행/역방향 코드 실행을 수행할 수 있습니다.

운 좋게도 이것은 제로데이 공격입니다. 그래서 개발자들은 이 문제를 당일(0-day)에 수정했습니다.

시나리오

Log4J를 사용하는 곳은?

Apache Log4j 프로젝트는 가장 많이 배포된 오픈 소스 소프트웨어 중 하나로, Java 애플리케이션에 로깅 기능을 제공합니다.

이 Proof-of-Concept는 어떻게 작동하나요?

우선 이 PoC는 다음을 사용합니다:

  • christophetd의 Spring 취약 앱
  • marshalsec 악성 LDAP 서버를 기동하기 위해 사용

Exploit 코드가 포함된 HTTP 서버 실행하기.

http_server 에는 2개의 파일이 있습니다: MyExploit.java 와 이것의 컴파일된 .class 파일인 MyExploit.class

💡알림: javac namefile.java 명령으로 Java 클래스를 컴파일하세요. :)

다음 명령을 사용하여 HTTP 서버를 즉시 실행할 수 있습니다: python -m http.server [PORT] 이 경우에

LDAP 서버 실행하기

marshalsec 저장소 자세한 내용은 여기

Spring 취약 앱 실행하기

christophetd의 저장소 자세한 내용은 여기

헤더에 악성 페이로드를 담은 curl HTTP GET 요청

일반적으로 요청 헤더에서 대상 필드는 User-agent 이지만, 이 PoC에서는 X-Api-Version 이 사용됩니다.

작동하는지 확인하기.

이 PoC는 취약한 서버에서 명령 실행(Command-Execution) 을 수행하여 tmp 폴더에 "pwned_by_pierpaolosestito_dev"라는 파일을 생성합니다. MyExploit.java에는 또한 공격자가 역방향 코드 실행(Reverse-Code-Execution) 을 수행하고 리버스 셸(Reverse-Shell) 을 얻을 수 있게 해주는 악성 페이로드가 포함되어 있습니다.

💡몇 가지 팁: docker exec [container_id] ifconfig를 실행하면 그것이 로컬 서브도메인에 없는 runner라는 것을 알 수 있습니다. RCE를 수행하려면 RCE 명령 문자열이 포함된 MyExploit.java 내부의 IP를 변경할 수 있습니다. Docker의 runner가 사설 IP로는 사용자에게 연락할 수 없기 때문에 공인 IP가 필요하며, 포트 포워딩을 통해 얻을 수 있습니다.

도구 다운로드