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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
log4j-finder — 디스크 및 Java 아카이브 파일 내에서 취약한 Log4j2 버전을 찾습니다 (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105) | Kitploit
도구/GitHubGitHub/fox-it/log4j-finder
Static AnalysisVulnerability ScannersVulnerability AnalysisCode AnalysisSupply Chain SecurityIncident Response
GitHubfox-it/log4j-finder

log4j-finder

디스크 및 Java 아카이브 파일 내에서 취약한 Log4j2 버전을 찾습니다 (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

log4j-finder

파일시스템을 스캔하여 Log4Shell(CVE-2021-44228 & CVE-2021-45046 & CVE-2021-45105)에 취약한 Log4j2를 찾는 Python3 스크립트입니다. 디스크와 Java 아카이브 파일(JAR) 내부(중첩 포함)를 재귀적으로 스캔합니다.

log4j-finder results

작동 방식

log4j-finder는 log4j2-core-* 패키지에 포함된 특정 파일(현재는 JndiManager.class만 해당)의 알려진 나쁜 및 알려진 좋은 MD5 해시 목록을 사용하여 파일시스템에서 log4j2 라이브러리를 식별합니다. log4shell의 영향을 받는 주요 패키지입니다. Java 아카이브 파일 내부와 파일시스템에서 이러한 파일을 검색합니다. 그런 다음 이 파일의 MD5 해시를 기반으로 log4j2 버전을 식별합니다.

스캔 속도를 최적화하기 위해 파일시스템에서 다음 파일 이름만 처리합니다:

  • 파일 이름에 Java ARchive 확장자가 있는 모든 파일(이러한 아카이브 내부 중첩 포함):
    • *.jar, *.war, *.ear
  • 알려진 나쁜 및 좋은 해시를 보유한 파일 이름 (위 아카이브 내부 및 중첩 포함):
    • JndiManager.class

파일이 위에 언급된 확장자 중 하나와 일치하면 이러한 아카이브 내부(모두 메모리에서 처리되며 압축 해제되지 않음)를 확인하여 스크립트가 알려진 해시를 가진 파일 이름을 검색합니다. 또한 중첩된 아카이브 내부도 확인합니다(예: WAR 파일 안의 JAR 파일).

이 스크립트는 7z, RAR, TAR, BZ2 등과 같은 다른 아카이브 파일 확장자는 스캔하지 않습니다. 예를 들어 JAR 파일이 7z 파일 안에 있으면 스크립트가 찾지 못합니다. 그 이유는 Java가 Java ARchive 형식만 로드할 수 있기 때문에 해당 형식만 스캔하기 때문입니다.

알 수 없는 MD5 해시는 UNKNOWN으로 표시됩니다. 이는 log4j2가 아닌 Java 패키지가 이 스크립트가 검색하는 동일한 파일 이름을 사용하는 경우 발생할 수 있습니다. 식별된 파일 경로에 org/apache/logging/log4j에 대한 참조가 포함되어 있지 않다면 log4j2일 가능성이 매우 낮습니다. 그래도 수동 확인을 권장합니다.

다운로드 및 실행

다음 방법 중 하나를 사용하여 log4j-finder를 설치할 수 있습니다:

릴리스 바이너리 사용

운영 체제에 맞는 올바른 바이너리를 다운로드할 수 있습니다:

  • Windows 최신 (서명됨): log4j-finder-signed.exe
    • 서명되지 않은 바이너리도 제공되지만, PyInstaller 실행 파일이므로 바이러스 백신에서 경고를 표시할 수 있습니다. 직접 실행 파일을 생성할 수도 있습니다. 자세한 내용은 "log4j-finder 실행 파일 생성"을 참조하세요.
  • Linux x86_64 최신: log4j-finder

Linux를 사용하는 경우 다음 방법 중 하나로 최신 릴리스를 다운로드하여 실행할 수도 있습니다:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -o log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -O log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder

Python 3 사용

Python 3.6+가 설치된 배포의 경우 다음 방법 중 하나도 작동합니다:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py -o log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
sudo python3 log4j-finder.py

log4j-finder 실행 파일 생성

자동 생성된 실행 파일

리포지토리에는 모든 커밋에서 PyInstaller를 사용하여 Windows 및 Linux 바이너리를 자동으로 생성하는 GitHub Action이 있습니다. 이 워크플로 실행의 빌드 아티팩트는 Releases 페이지에 첨부하는 데 사용됩니다.

일부 안티바이러스 공급업체가 Windows 바이너리를 좋아하지 않는다는 것을 인지하고 있습니다. 이러한 경우 다음 단계를 사용하여 직접 실행 파일을 생성하는 것이 좋습니다(이제 서명된 바이너리도 제공합니다).

Windows 실행 파일 생성

  1. Python 3.6 이상이 설치되어 있지 않으면 먼저 https://www.python.org/downloads/ 에서 다운로드하세요.

    • Windows 7에서 바이너리를 작동시키려면 Python 3.8.10을 선택하세요:
      • Python 3.8.10 Windows installer (32 bit) 다운로드
      • Python 3.8.10 Windows installer (64-bit) 다운로드
    • 설치 중 Add Python 3.x to PATH를 선택해야 다음 단계가 훨씬 쉬워집니다.
  2. 명령 프롬프트를 열고 pip를 사용하여 pyinstaller 패키지를 설치하세요:

    root@kitploit:~
    pip install pyinstaller
    
    # 출력에서 pyinstaller가 설치된 위치를 확인할 수 있습니다. 예:
    # C:\Users\User\AppData\Roaming\Python\Python310\Scripts
    #
    # --version으로 확인
    C:\Users\User\AppData\Roaming\Python\Python310\Scripts\pyinstaller.exe --version
    4.7
    
  3. 선택적으로 colorama 패키지를 설치하여 색상 지원을 추가할 수 있습니다:

    root@kitploit:~
    pip install colorama
    
  4. 최신 버전의 log4j-finder.py 스크립트를 다운로드한 후 PyInstaller를 실행하세요:

root@kitploit:~
pyinstaller --onefile --hidden-import colorama log4j-finder.py

그러면 Windows 실행 파일이 dist 디렉토리에 생성됩니다: dist\log4j-finder.exe

Linux 실행 파일 생성

Debian 11을 예시로 들면:

root@kitploit:~
# pip3를 사용하여 PyInstaller 설치
sudo apt update
sudo apt install python3-pip git
pip3 install --user pyinstaller

# Git 클론 및 PyInstaller로 빌드
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
~/.local/bin/pyinstaller --onefile log4j-finder.spec

# 바이너리 작동 확인
./dist/log4j-finder --help

사용법

경로를 스캔하는 예시 (기본값은 /):

root@kitploit:~
$ python3 log4j-finder.py /path/to/scan

또는 JAR 파일 직접 지정:

root@kitploit:~
$ python3 log4j-finder.py /path/to/jarfile.jar

또는 여러 디렉토리 및/또는 파일:

root@kitploit:~
$ python3 log4j-finder.py /path/to/dir1 /path/to/dir2 /path/to/jarfile.jar

파일 또는 디렉토리 제외:

root@kitploit:~
$ python3 log4j-finder.py / --exclude "/*/.dontgohere" --exclude "/home/user/*.war"

Windows에서는 추가 인수를 지정하지 않으면 루트 c:\ 드라이브만 스캔합니다. 명령줄에서 스캔할 드라이브를 지정하는 것이 좋습니다(존재하지 않는 드라이브는 건너뜁니다):

root@kitploit:~
log4j-finder.exe c:\ d:\ e:\ f:\

액세스할 수 없는 파일 또는 디렉토리(권한 거부 오류)는 출력되지 않습니다.

더 많은 출력을 보려면 -v 플래그(상세), 또는 -vv 플래그(디버그 모드, 디버깅 목적으로만 권장)를 사용할 수 있습니다.

애플리케이션 인수:

root@kitploit:~
positional arguments:
  PATH                  스캔할 디렉토리 또는 파일(들) (재귀적) (기본값:
                        ['/'])

optional arguments:
  -h, --help            이 도움말 메시지를 표시하고 종료
  -v, --verbose         상세 출력 (-v는 정보, -vv는 디버그) (기본값: 0)
  -n, --no-color        색상 출력 비활성화 (기본값: False)
  -q, --quiet           더 조용하게, 배너와 요약 비활성화 (기본값:
                        False)
  -b, --no-banner       배너 비활성화 (기본값: False)
  -V, --version         프로그램 버전 번호를 표시하고 종료
  -e PATTERN, --exclude PATTERN
                        패턴으로 파일/디렉토리 제외 (여러 번 사용 가능) (기본값: None)

파일은 디스크와 (중첩된) Java 아카이브 파일 내에서 재귀적으로 스캔됩니다.

도구 다운로드