
uma verificação rápida para saber se o seu servidor pode ser vulnerável ao CVE-2021-44228
Se você quiser usar os cradles de download do Windows/Linux abaixo, revise os scripts antes. Carregar código da internet e executá-lo foi o que nos trouxe até aqui com o Log4Shell - certo? ;-)
O script log4j_checker_beta.sh é usado para realizar uma verificação rápida se o seu servidor está possivelmente afetado pela CVE-2021-44228 (a vulnerabilidade do log4j).
Ele não oferece 100% de prova de que você não está vulnerável, mas dá uma indicação se é possível que você esteja vulnerável.
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - |bash
Se você quiser ver apenas os avisos, use
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash | grep '\[WARNING\]'
Certifique-se de que o banco de dados do seu locate esteja atualizado antes de executar com
sudo updatedb
O script pode testar arquivos .class no primeiro nível de arquivos JAR/WAR/EAR para ver se correspondem a hashes sha256 conhecidos de arquivos de classe vulneráveis do log4j.
Você precisa fornecer o download de um arquivo de texto simples com hashes sha256 em formato HEX, um por linha, tudo após o primeiro espaço é ignorado.
A URL pode ser colocada na variável download_file. Caso contrário, esse recurso não funcionará.
As informações que a Lunasec.io publicou sobre hashes de arquivos .class Java binários vulneráveis:
https://github.com/lunasec-io/lunasec/blob/master/tools/log4shell/constants/vulnerablehashes.go
Veja também o blog deles: https://www.lunasec.io/docs/blog/log4j-zero-day-mitigation-guide/
Incluímos um SHA256_HASHES_URL no script que aponta para o arquivo hashes-pre-cve.txt neste repositório. Mas você pode adicionar sua própria URL como primeiro parâmetro do script no shell ou usar um arquivo local, por exemplo, armazene seu arquivo em hashes-pre-cve_local.txt e então execute:
./log4j_checker_beta.sh hashes-pre-cve_local.txt
Os comandos locate e unzip precisam estar instalados. unzip para inspecionar os arquivos jar.
Para instalar em sistemas Debian e Ubuntu:
sudo apt install unzip locate
sudo updatedb
Você pode usar o snippet
IEX (New-Object Net.Webclient).downloadstring("https://raw.githubusercontent.com/anlx-sw/log4j_checker_beta/main/get-vulnerablejars.ps1")
para verificar diretamente se há arquivos jar potencialmente vulneráveis no Windows. Ou você pode baixar este script e apontar a saída para um compartilhamento de arquivos gravável. Isso ainda funcionou para mim no Powershell 2.0 no Windows Server 2012.
Tratamento de erros ou recursos adicionais não foram adicionados de propósito para manter o script curto, simples e compatível com Powershell 2.0 e versões mais antigas do Windows. Este script apenas verifica arquivos jar e procura pela string "JndiLookup.class", que indica uma biblioteca vulnerável. Use a ferramenta de sua preferência para executá-lo com permissões de administrador (ou apenas use-o manualmente).
Alternativamente, se você não puder usar o powershell, você pode usar este trecho no prompt de comando para verificar a unidade atual em busca de arquivos jar com a string "JndiLookup.class". Depois de executar esta linha com permissões de administrador, verifique o arquivo c:\log4j-vuln.txt para arquivos vulneráveis.
cd \ && for /r %f in (*.jar) do (find /i /c "JndiLookup.class" "%f" 1>nul && echo "%f" >> "c:\log4j-vuln.txt")