Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
log4j-finder — Encontre versões vulneráveis do Log4j2 no disco e também dentro de arquivos Java Archive (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105) | Kitploit
Ferramentas/GitHubGitHub/fox-it/log4j-finder
Análise EstáticaScanners de VulnerabilidadesAnálise de VulnerabilidadesAnálise de CódigoSegurança da Cadeia de SuprimentosResposta a Incidentes
GitHubfox-it/log4j-finder

log4j-finder

Encontre versões vulneráveis do Log4j2 no disco e também dentro de arquivos Java Archive (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105)

Ver Repositório
4399648há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

log4j-finder

Um script Python3 para escanear o sistema de arquivos para encontrar Log4j2 que é vulnerável ao Log4Shell (CVE-2021-44228 & CVE-2021-45046 & CVE-2021-45105). Ele escaneia recursivamente tanto no disco quanto dentro de arquivos Java Archive (JARs) aninhados.

Resultados do log4j-finder

Como funciona

O log4j-finder identifica bibliotecas log4j2 no seu sistema de arquivos usando uma lista de hashes MD5 conhecidos como ruins e conhecidos como bons de arquivos específicos (atualmente apenas JndiManager.class) presentes nos pacotes log4j2-core-*; o pacote principal afetado pelo log4shell. Ele procura por esses arquivos dentro de arquivos Java Archive e no sistema de arquivos. A versão do é então identificada com base no hash MD5 desse arquivo.

log4j2

Para otimizar a velocidade de varredura, ele escaneia o sistema de arquivos e processa APENAS os seguintes nomes de arquivo:

  • Todos os arquivos com extensões de arquivo Java ARchive no nome do arquivo (também aninhados nesses arquivos):
    • *.jar, *.war, *.ear
  • Nomes de arquivo para os quais temos hashes conhecidos como ruins e bons (também dentro dos arquivos acima e aninhados):
    • JndiManager.class

Se o arquivo corresponder a uma das extensões mencionadas acima, ele verificará dentro desses arquivos (tudo em memória, nada é descompactado) para procurar os nomes de arquivo para os quais o script tem hashes conhecidos. Ele também procura dentro de arquivos aninhados, por exemplo, um arquivo JAR dentro de um arquivo WAR.

O script NÃO escaneia outras extensões de arquivo de arquivamento como 7z, RAR, TAR, BZ2, etc. Então, por exemplo, se um arquivo JAR estiver dentro de um arquivo 7z, o script não o encontrará. A lógica é que o Java só pode carregar formatos Java ARchive, então escaneamos apenas esses.

Hashes MD5 desconhecidos são mostrados como UNKNOWN; isso pode acontecer se um pacote Java que não é log4j2 usar o mesmo nome de arquivo que este script procura. Muito provavelmente não é log4j2 se o caminho do arquivo identificado não contiver referências a org/apache/logging/log4j. No entanto, a verificação manual ainda é recomendada.

Download e execução

Você pode instalar o log4j-finder usando um dos seguintes métodos:

Usando o binário da versão

Você pode baixar o binário correto para o seu sistema operacional:

  • Windows mais recente (assinado): log4j-finder-signed.exe
    • Binários não assinados também estão disponíveis, mas podem acionar seu antivírus por ser um executável PyInstaller. Você também pode gerar o executável você mesmo, veja "Gerando executáveis do log4j-finder" sobre como fazer isso.
  • Linux x86_64 mais recente: log4j-finder

Se você estiver no Linux, também pode baixar a última versão e executar usando uma das seguintes formas:

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

Usando Python 3

Para distribuição com Python 3.6+ instalado, um dos seguintes métodos também funciona:

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

Gerando executáveis do log4j-finder

Executáveis gerados automaticamente

Há uma GitHub Action no repositório que gera automaticamente um binário para Windows e Linux do script log4j-finder.py usando PyInstaller a cada commit. Os artefatos de build dessas execuções de workflow são usados para anexar à página de Releases.

Estamos cientes de que alguns fornecedores de antivírus não gostam dos binários do Windows; nesse caso, recomendamos gerar o executável você mesmo usando os seguintes passos (note que agora também fornecemos binários assinados).

Gerando o executável para Windows

  1. Se você não tiver Python 3.6 ou superior instalado, baixe-o primeiro de https://www.python.org/downloads/

    • Escolha Python 3.8.10 se quiser que seu binário funcione no Windows 7:
      • Baixe Python 3.8.10 Windows installer (32 bit)
      • Baixe Python 3.8.10 Windows installer (64-bit)
    • Certifique-se de que durante a instalação você escolha: Add Python 3.x to PATH, isso torna os próximos passos muito mais fáceis.
  2. Abra um prompt de comando e use pip para instalar o pacote pyinstaller:

    root@kitploit:~
    pip install pyinstaller
    
    # Na saída, você verá onde o pyinstaller está instalado, por exemplo:
    # C:\Users\User\AppData\Roaming\Python\Python310\Scripts
    #
    # Verifique usando --version
    C:\Users\User\AppData\Roaming\Python\Python310\Scripts\pyinstaller.exe --version
    4.7
    
  3. Opcionalmente, instale o pacote colorama para adicionar suporte a cores:

    root@kitploit:~
    pip install colorama
    
  4. Baixe a versão mais recente do script log4j-finder.py e depois execute o PyInstaller:

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

O executável do Windows estará então no diretório dist: dist\log4j-finder.exe

Gerando o executável para Linux

Exemplo dado para Debian 11:

root@kitploit:~
# Install PyInstaller using pip3
sudo apt update
sudo apt install python3-pip git
pip3 install --user pyinstaller

# Git clone and build using PyInstaller
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
~/.local/bin/pyinstaller --onefile log4j-finder.spec

# Verify that the binary works
./dist/log4j-finder --help

Uso

Exemplo de uso para escanear um caminho (padrão é /):

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

Ou diretamente um arquivo JAR:

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

Ou múltiplos diretórios e/ou arquivos:

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

Excluir arquivos ou diretórios:

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

Note que no Windows ele escaneia apenas a raiz c:\ se você não fornecer argumentos extras. Recomendamos especificar as unidades que você precisa escanear na linha de comando, como (unidades que não existem são ignoradas):

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

Arquivos ou diretórios que não podem ser acessados (erros de permissão negada) não são exibidos.

Se quiser ver mais saída, você pode usar a flag -v para verbose, ou -vv para modo debug (recomendado apenas para fins de depuração).

Argumentos da aplicação:

root@kitploit:~
argumentos posicionais:
  PATH                  Diretório ou arquivo(s) para escanear (recursivamente) (padrão:
                        ['/'])

argumentos opcionais:
  -h, --help            mostra esta mensagem de ajuda e sai
  -v, --verbose         saída detalhada (-v é info, -vv é debug) (padrão: 0)
  -n, --no-color        desabilita saída colorida (padrão: False)
  -q, --quiet           fica mais silencioso, desabilita banner e resumo (padrão:
                        False)
  -b, --no-banner       desabilita banner (padrão: False)
  -V, --version         mostra o número da versão do programa e sai
  -e PATTERN, --exclude PATTERN
                        exclui arquivos/diretórios por padrão (pode ser usado
                        várias vezes) (padrão: None)

Arquivos são escaneados recursivamente, tanto no disco quanto em arquivos Java Archive aninhados.

Baixar ferramenta