Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Log4JShell-Bytecode-Detector — 로컬 바이트코드 스캐너 - Log4JShell 취약점(CVE-2021-44228) 대응 | Kitploit
도구/GitHubGitHub/codeshield-security/log4jshell-bytecode-detector
Static AnalysisVulnerability ScannersCode AnalysisBinary AnalysisSupply Chain SecurityIncident Response
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

로컬 바이트코드 스캐너 - Log4JShell 취약점(CVE-2021-44228) 대응

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
저장소 보기웹사이트
499164년 전Kitploit 검토 완료
공유

🔍 Log4JShell 바이트코드 감지기

Log4jShell 바이트코드 감지기는 jar 파일이 심각한 CVE-2021-44228에 영향을 받는지 확인하는 데 도움이 되는 오픈 소스 도구입니다. 이 도구는 jar 파일을 스캔하고 jar 내 클래스에 대한 취약한 해시 집합과 클래스를 비교합니다. 해시는 Maven Central의 아티팩트에 대해 미리 계산되었습니다.

중요 업데이트: Maven Central에서 영향을 받는 아티팩트 목록을 확장했습니다. 목록에는 18,816개의 아티팩트가 포함됩니다. 이 아티팩트들은 log4j-core를 선언된 종속성으로 사용하거나, 영향을 받는 log4j-core 버전과 일치하는 .class 파일이 아티팩트 내에서 식별된 경우입니다.

📝 실행 방법

  1. 릴리스에서 jar 파일을 다운로드합니다.
  2. java -cp <다운로드한_JAR_경로> de.codeshield.log4jshell.Log4JDetector <확인할_JAR의_절대_경로> 실행

jar가 영향을 받는 경우, 도구는 명령줄에 정보를 출력합니다:

CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 실행 중인 서버에서 실행하는 방법 (실행 중인 Java 인스턴스를 중지할 필요 없음)

  1. 릴리스에서 jar 파일을 다운로드합니다.
  2. java -cp <다운로드한_JAR_경로> de.codeshield.log4jshell.Log4JProcessDetector 실행
  3. jar는 실행 중인 모든 Java 프로세스의 클래스패스에서 취약한 log4j 인스턴스를 검색합니다.

❓ CVE-2021-44228 배경 정보

log4j에서 심각한 원격 코드 실행 취약점이 발견되었으며 버전 2.0-beta9부터 2.14까지 영향을 받습니다. 이 취약점은 Java에서 가장 많이 사용되는 로깅 라이브러리 중 하나인 log4j에 영향을 미치므로 심각한 수준으로 분류되었습니다. 다양한 참고 자료와 기사가 있습니다.

  • Hackernews
  • BSI (독일어)
  • 취약점 악용 개념 증명
  • Log4JShell 치트 시트

👀 이것이 중요한 이유는?

Log4j는 대부분의 Java 프로젝트에서 로깅 목적으로 사용되어 왔습니다. 이제 어떤 프로젝트와 라이브러리가 실제로 영향을 받는지 파악해야 합니다. Java의 종속성 메커니즘으로 인해, 애플리케이션이 전이적(transitively)으로 취약한 라이브러리 버전을 포함하는 경우에도 영향을 받을 수 있습니다. 프로젝트 A가 A의 직접 종속성 B 중 하나가 lib에 종속성을 가질 경우 라이브러리 lib을 전이적으로 포함합니다. 영향을 받는지 확인하는 간단한 테스트는 maven 종속성 트리를 사용하여 수행할 수 있습니다:

예: Maven 프로젝트에서 mvn dependency:tree 명령 실행.

[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

그러나 이 확인은 첫 번째 징후일 뿐이며 다음 이유로 충분하지 않습니다:

Java 프로그램은 자주 다음과 같이 됩니다:

  • fatjar 또는 uberjar로 패키징: 모든 클래스 파일(직접 및 전이적 종속성 포함)이 단일 jar 파일로 제공됩니다. (이 소프트웨어 아티팩트에서와 같이)
  • 재패키징 또는 재번들링: 원래 패키지 이름이 이름 충돌을 피하기 위해 변경됩니다 (일부 컴파일러 및 패키징 메커니즘이 코드 변환을 적용)
  • 재컴파일: 소스 코드가 다른 컴파일러로 컴파일되어 새로 패키징되어 수정된 바이트코드가 생성됩니다.

결과적으로, Java 프로젝트가 사용하는 모든 라이브러리는 취약점을 프로젝트에 포함시킬 수 있습니다. 심층 바이트코드 분석이 도움이 되며, 이것이 이 저장소의 일부로 게시하는 것입니다.

📕 스크립트

  1. .jar에서 pom.xml 파일 추출
  2. 선언된 종속성을 Maven Central에 호스팅된 아티팩트에 대한 영향을 받는 groupId:artifactId:version 목록의 미리 계산된 목록과 비교
  3. .jar에서 .class 파일 추출
  4. 클래스 파일의 SHA 해시 계산
  5. SHA를 미리 계산된 목록과 일치

🛠 빌드 지침

이 도구를 빌드하려면 다음을 실행하세요

mvn compile

실행 가능한 jar를 조립하려면 다음을 사용하세요

mvn clean compile assembly:single

💡 취약한 클래스의 미리 계산된 해시

취약한 클래스에 대한 해시 집합은 전체 Maven Central 저장소에서 미리 계산되었습니다. 클래스의 해시에는 지문 기술을 사용하여 바이트코드가 유사하다고 식별된 모든 해시가 포함됩니다.

미리 계산된 정보에는 다음이 포함됩니다:

  • 취약한 버전 중 하나에 log4j를 직접 포함하는 모든 아티팩트
  • 영향을 받는 버전 범위 내에서 log4j의 취약한 해시를 포함하는 클래스를 제공하는 모든 아티팩트
  • log4j의 취약한 클래스를 재번들링하는 모든 아티팩트
  • 영향을 받는 버전 범위 내에서 log4j의 클래스의 재컴파일된 클래스를 가진 모든 아티팩트

영향을 받는 버전 범위로는 [2.0-beta9, 2.15)를 고려했습니다. 참고.

💻 지문 기술

이 도구는 Andreas Dann이 발명한 Java용 새로운 바이트코드 지문 기술을 사용합니다. 기본 흐름은 다음과 같습니다.

  1. 사용 가능한 수정 커밋 커밋1, 커밋2, 커밋3을 사용하여 영향을 받는 클래스를 식별합니다.
  2. 취약한 클래스의 바이트코드 "지문"을 계산합니다.
  3. 동일한 "지문"을 가진 MavenCentral의 다른 클래스를 검색합니다.

참고: 간편한 배포를 위해 이 저장소는 취약한 클래스의 SHA 해시를 제공하며, 정보는 지문을 사용하여 계산되었습니다.

📌 면책 조항

해시 및 Maven 아티팩트 목록이 완전하지 않습니다. 정기적으로 목록을 업데이트할 예정입니다.

📯 기여자

이 도구는 CodeShield 공동 창립자들이 공동 제작했습니다.

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

피드백을 환영합니다!

영향을 받는 아티팩트 목록을 확장하는 작업을 진행 중이며, 항상 제공 사항을 개선하기 위해 노력하고 있습니다. 기여 환영

또한, 이 저장소가 도움이 되었다면 ⭐️를 눌러주세요!

✍️ 연락처

지원이 필요하거나 당사의 기술에 대해 알고 싶으시면 [email protected]로 연락주십시오.

여러분의 CodeShield 팀 💚

도구 다운로드