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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-44228-playground — Docker 기반 실습 환경으로, Java 웹 애플리케이션에서 Log4Shell(CVE-2021-44228) 취약점을 검증하고, 완화 조치를 테스트하며, LDAP 및 JNDI 인젝션을 통한 원격 코드 실행(RCE) 악용을 시뮬레이션합니다. | Kitploit
도구/GitHubGitHub/b-abderrahmane/cve-2021-44228-playground
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubb-abderrahmane/cve-2021-44228-playground

CVE-2021-44228-playground

Docker 기반 실습 환경으로, Java 웹 애플리케이션에서 Log4Shell(CVE-2021-44228) 취약점을 검증하고, 완화 조치를 테스트하며, LDAP 및 JNDI 인젝션을 통한 원격 코드 실행(RCE) 악용을 시뮬레이션합니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

LOG4SHELL-CVE-2021-44228-Validator

Basic test

Extended test

소개

이 도구를 사용하면 사용자가 제공한 Java 및 Log4J 버전에 대해 간단한 Java 웹 앱이 CVE-2021-44228에 취약한지 확인할 수 있습니다. 또한 [선택적으로] 몇 가지 사전 정의된 완화 조치 중 하나를 적용할 수 있습니다. log4shell_validator.py로 구동되는 시뮬레이션 랩은 docker-compose를 사용하여 log4j 취약점을 악용하고 취약한 머신에서 RCE를 얻는 과정을 시뮬레이션합니다.

작동 방식

먼저, 일부 도커 이미지를 빌드해야 합니다. ./build_images.sh 스크립트가 이를 처리합니다.

공격 시뮬레이션은 다음과 같은 방식으로 수행됩니다:

  • 먼저 포트 8080에서 컨테이너에 간단한 Java 웹 애플리케이션이 구동됩니다. 이 애플리케이션이 /2021-44228-via-message에서 GET 호출을 받으면 항상 User-Agent 헤더 필드를 기록합니다. 이 애플리케이션의 코드는 ./poc_template에서 확인할 수 있습니다.
  • 포크 LDAP 서버는 marshalsec을 사용하여 별도의 컨테이너에서 포트 1389에 구동됩니다. (이 컨테이너는 수신된 LDAP 요청을 Nginx 서버로 전달합니다.)
  • Nginx 웹 서버는 포트 8888에 구동되며, 이 컨테이너는 취약한 앱에서 실행하려는 컴파일된 .class 파일을 호스팅합니다.
  • 간단한 curl 컨테이너가 시작되며, 이 컨테이너는 취약한 앱에 페이로드를 전송하는 ./exploit.sh 스크립트를 실행합니다.

지침

  • python, docker, docker-compose 및 maven이 로컬에서 사용 가능한지 확인하십시오.
  • 다음을 실행하여 marshalsec jar 파일을 빌드하십시오: cd marshalsec/ ;mvn clean package -DskipTests ;cd -
  • ./build-images.sh를 실행하십시오.
  • python log4shell_validator.py --java-version 8 --log4j-version 2.12.1을 실행하십시오.

사용 예

  • Python 래퍼 도움말 텍스트:
root@kitploit:~
~/workspace/CVE-2021-44228-playground$ python log4shell_validator.py --help
usage: log4shell_validator.py [-h] [--java-version JAVA_VERSION] --log4j-version LOG4J_VERSION [--no-cleanup] [--disable-trust-url] [--remove-jndi-lookup-class] [--disable-message-lookup] [--debug]
                              [--exploit-via-thread-context]

log4j-vulnerability-tester

optional arguments:
  -h, --help            show this help message and exit
  --java-version JAVA_VERSION
                        version of java to be used
  --log4j-version LOG4J_VERSION
                        version of log4j to be used
  --no-cleanup          Don't delete used containers.
  --disable-trust-url   Disable the LDAP trustURLCodebase setting on the victim app
  --remove-jndi-lookup-class
                        Remove the JNDI Lookup class from the log4j jar file
  --disable-message-lookup
                        Disable the JNDI message lookup in the victim app's JVM
  --debug               Display all container's logs
  --exploit-via-thread-context
                        By sending the payload to an HTTP handler which makes use of Custom logging with ThreadContext, attempt to bypass the no-message-lookup mitigation

사용 가능한 기능:

이 검증기는 Java7/8의 여러 조합과 다양한 Log4J2 버전으로 테스트되었습니다. 더 많은 예제는 github actions 탭의 확장 테스트 파이프라인을 참조하십시오.

현재까지 다음 완화 조치가 구현되었습니다:

  • LDAP에 대한 trustURLCodebase를 비활성화하려면 com.sun.jndi.ldap.object.trustURLCodebase 속성을 False로 설정합니다.
  • log4j jar 파일에서 JNDILookup.class 파일을 제거합니다.
  • 다음 플래그를 JVM에 제공하여 메시지 조회를 비활성화합니다: -Dlog4j2.formatMsgNoLookups=True

또한, 메시지 조회 비활성화를 우회할 수 있는 익스플로잇 벡터를 테스트하기 위해 새로운 플래그가 추가되었습니다: --exploit-via-thread-context

면책 조항

이 소프트웨어는 순수하게 연구 목적과 효과적인 완화 기법 개발을 위해 만들어졌으며, 명시적으로 승인된 경우를 제외하고 시스템을 공격하는 데 사용하도록 의도되지 않았습니다. 프로젝트 유지 관리자는 소프트웨어의 오용에 대해 책임을 지지 않습니다. 책임감 있게 사용하십시오.

도구 다운로드