
서버가 CVE-2021-44228에 취약한지 빠르게 확인합니다.
아래의 Windows/Linux 다운로드 크래들을 사용하려면 먼저 스크립트를 검토하세요. 인터넷에서 코드를 로드하고 실행하는 것이 바로 우리를 Log4Shell로 이끌었습니다. 그렇죠? ;-)
log4j_checker_beta.sh 스크립트는 서버가 CVE-2021-44228(log4j 취약점)의 영향을 받을 가능성이 있는지 빠르게 확인하는 데 사용됩니다.
이 스크립트는 취약하지 않다는 100% 증명을 제공하지는 않지만, 취약할 가능성이 있는지에 대한 힌트를 줍니다.
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - |bash
경고만 보고 싶다면 다음을 사용하세요.
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash | grep '\[WARNING\]'
실행하기 전에 locate 데이터베이스가 업데이트되었는지 확인하세요.
sudo updatedb
스크립트는 JAR/WAR/EAR 아카이브의 첫 번째 레벨에 있는 .class 파일을 테스트하여 log4j의 알려진 취약한 클래스 파일의 sha256 해시와 일치하는지 확인할 수 있습니다.
sha256 해시(HEX 형식)가 한 줄에 하나씩 포함된 일반 텍스트 파일의 다운로드를 제공해야 합니다. 첫 번째 이후의 모든 내용은 무시됩니다.
URL은 변수 download_file에 설정할 수 있습니다. 그렇지 않으면 이 기능이 작동하지 않습니다.
Lunasec.io가 취약한 바이너리 Java .class 파일의 해시에 대해 공개한 정보:
이 리포지토리의 hashes-pre-cve.txt 파일을 가리키는 SHA256_HASHES_URL을 스크립트에 포함했습니다. 하지만 쉘에서 스크립트의 첫 번째 매개변수로 자신의 URL을 추가하거나 로컬 파일을 사용할 수 있습니다. 예를 들어, hashes-pre-cve_local.txt 파일에 저장한 후 다음을 호출하세요:
./log4j_checker_beta.sh hashes-pre-cve_local.txt
locate 및 unzip 명령이 설치되어 있어야 합니다. unzip은 jar 파일을 검사하는 데 사용됩니다.
Debian 및 Ubuntu 시스템에 설치하려면:
sudo apt install unzip locate
sudo updatedb
다음 스니펫을 사용할 수 있습니다.
IEX (New-Object Net.Webclient).downloadstring("https://raw.githubusercontent.com/anlx-sw/log4j_checker_beta/main/get-vulnerablejars.ps1")
Windows에서 잠재적으로 취약한 jar 파일을 직접 확인할 수 있습니다. 또는 이 스크립트를 다운로드하여 출력을 쓰기 가능한 파일 공유에 저장할 수 있습니다. 이 방법은 Windows Server 2012의 Powershell 2.0에서도 여전히 작동했습니다.
의도적으로 오류 처리나 추가 기능을 추가하지 않았습니다. 스크립트를 짧고 간단하게 유지하고 Powershell 2.0 및 이전 버전의 Windows와 호환되도록 하기 위해서입니다. 이 스크립트는 단순히 jar 파일을 확인하고 취약한 라이브러리를 나타내는 문자열 "JndiLookup.class"를 검색합니다. 관리자 권한으로 실행하려면 원하는 도구를 사용하십시오(또는 수동으로 실행).
또는 Powershell을 사용할 수 없는 경우, 명령 프롬프트에서 이 스니펫을 사용하여 "JndiLookup.class"가 포함된 jar 파일을 현재 드라이브에서 스캔할 수 있습니다. 이 줄을 관리자 권한으로 실행한 후 c:\log4j-vuln.txt 파일에서 취약한 파일을 확인하세요.
cd \ && for /r %f in (*.jar) do (find /i /c "JndiLookup.class" "%f" 1>nul && echo "%f" >> "c:\log4j-vuln.txt")