Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
log4shell_sentinel — Um scanner inteligente para Log4Shell/Log4j/CVE-2021-44228 | Kitploit
Ferramentas/GitHubGitHub/ossie-git/log4shell_sentinel
Scanners de VulnerabilidadesSegurança de ContêineresAnálise de VulnerabilidadesAnálise ForenseResposta a IncidentesAnálise de Logs
GitHubossie-git/log4shell_sentinel

log4shell_sentinel

Um scanner inteligente para Log4Shell/Log4j/CVE-2021-44228

Ver Repositório
14129há 4 anosAinda não revisado

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

Log4Shell Sentinel – Um Scanner Inteligente para CVE-2021-44228

Introdução

Embora existam ferramentas excelentes lançadas para ajudar organizações a escanear seus ambientes em busca de aplicativos vulneráveis à vulnerabilidade crítica Log4J / CVE-2021-44228, senti que:

  • nenhuma das ferramentas que encontrei foi feita para analistas acompanharem um determinado achado durante todo o processo de remediação. Log4Shell Sentinel gera seus resultados em formato CSV, partindo do pressuposto de que um analista irá então manipular e analisar os resultados no Excel, adicionar alguns achados a uma lista de ignorados e reexecutar a varredura, comparar varreduras, adicionar dados aos resultados, etc.
  • os scanners baseados em arquivo deixam muito trabalho para os analistas, especialmente em ambientes conteinerizados

Assim nasceu o Log4Shell Sentinel. O Log4Shell Sentinel é um scanner baseado em arquivo com alguns recursos únicos. Ele não pretende substituir todas as outras ferramentas disponíveis, mas pode complementá-las.

Funcionalidades

O Log4Shell Sentinel é um scanner baseado em arquivo. Ele procura por aplicações baseadas em Java escaneando um sistema alvo em busca de artefatos dos seguintes formatos de arquivo:

Tipo de ArquivoDetalhes
Simple jarÉ o caso onde o arquivo log4j-core não está embutido.
Fat / Uber jarUm uber jar é um jar que contém tanto suas classes/pacote quanto todas as dependências da sua aplicação (bibliotecas, recursos e arquivos de metadados) dentro de um único arquivo jar. Esta é a opção de implantação mais comum.
WARUm arquivo war (Web Application Archive) contém seu código JSP, HTML e JavaScript, além de suas bibliotecas e outros recursos. Este formato é menos comum.
EARUm ear (Enterprise Application Archive) é outro formato mais comumente usado com Jakarta EE para implantações.

e procura por instâncias de jars log4j-core vulneráveis. Em seguida, ele:

  • calcula um hash MD5 do artefato. Isso permite que um analista identifique o mesmo aplicativo executando em máquinas/contêineres diferentes e trate-os como um único achado.

  • para arquivos determinados como pertencentes a um contêiner, como: /var/lib/docker/overlay2/192768f471818601094bf4edd96d14bfc0e2b178a04a2efd00b2231ad4e46b33/merged/app/spring-boot-application.jar, faz o trabalho pesado de mapear o arquivo para a imagem correspondente. Por exemplo, converteria o acima na seguinte imagem: ghcr.io/christophetd/log4shell-vulnerable-app:latest. Como os vários runtimes de contêiner armazenam esse mapeamento de maneiras diferentes, isso pode economizar horas de frustração de um analista. Isso também permite que um analista trate vários contêineres executando um único aplicativo como um único achado.

  • remove correspondências inúteis, como correspondências de contêineres que não estão em execução no momento, incluindo imagens em cache. Isso permite que o analista se concentre no que é importante e novamente economiza horas de trabalho desnecessário.

  • permite que um analista ignore correspondências com base em:

    • hash MD5
    • caminho do arquivo
    • imagem do contêiner

    Isso permite que o analista remova aplicativos que sabe que não são vulneráveis ou que correspondem a aplicativos baseados em CLI que não representam ameaça. Por exemplo, se uma instância do Logstash for detectada, um analista pode optar por ignorá-la se não executar a ferramenta ou executá-la apenas ocasionalmente via CLI.

  • é otimizado para funcionar com suas ferramentas de gerenciamento de configuração, como Ansible, dando a capacidade de escanear rapidamente seu ambiente em minutos.

Enriquecimento de Metadados

Para detalhes sobre o enriquecimento de metadados adicionado pelo Log4Shell Sentinel, consulte meu post no blog.

Instalação

A maneira mais fácil é baixar o binário pré-compilado.

Compilando a partir do código fonte

Novamente, é direto. No entanto, você provavelmente desejará compilar uma versão estaticamente ligada para contornar variações relacionadas ao GLIBC em seu ambiente. A ferramenta usa os seguintes módulos que usam CGO por padrão:

  • os/user
  • net

Para compilar uma versão estaticamente ligada que usa as versões Go dessas bibliotecas, basta clonar o repositório e executar:

$ CGO_ENABLED=0 go build -ldflags="-s -w"
$ ldd log4shell_sentinel
        not a dynamic executable

Uso

$ ./log4shell_sentinel -h
NAME:
   Log4Shell Sentinel - by Osama Elnaggar

USAGE:
   log4shell_sentinel [global options] command [command options] [arguments...]

VERSION:
   v1.0.0

COMMANDS:
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --path value, -p value       Path to search (default: ".")
   --no-banner, --nb            Suppress banner (default: false)
   --no-messages, --nm          Suppress messages except for CSV output (default: false)
   --no-header, --nh            Suppress header in CSV output (default: false)
   --imd5 value, --im value     Ignore MD5 hashes. Refer to the GitHub page for expected format
   --ipath value, --ip value    Ignore file path matches. Refer to the GitHub page for expected format
   --icimage value, --ic value  Ignore container image matches. Refer to the GitHub page for expected format
   --print-headers, --ph        Print CSV Headers only (default: false)
   --help, -h                   show help (default: false)
   --version, -v                print the version (default: false)

Assim que executado, uma varredura simplesmente escaneará o diretório atual. Por exemplo:

$ ./log4shell_sentinel

░█░░░█▀█░█▀▀░█░█░█▀▀░█░█░█▀▀░█░░░█░░░░░█▀▀░█▀▀░█▀█░▀█▀░▀█▀░█▀█░█▀▀░█░░
░█░░░█░█░█░█░░▀█░▀▀█░█▀█░█▀▀░█░░░█░░░░░▀▀█░█▀▀░█░█░░█░░░█░░█░█░█▀▀░█░░
░▀▀▀░▀▀▀░▀▀▀░░░▀░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀░░░▀▀▀░▀▀▀░▀░▀░░▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀

- A CVE-2021-44228/CVE-2021-45046/CVE-2021-45105 Scanner
- v1.0.0
- by Osama Elnaggar

[*] WARNING: Running as non-root user.
             Non-readable files / dirs will be skipped
             Container mapping will fail

[*] Starting shallow scan ............ [DONE]
[*] Starting deep scan ............... [DONE]
[*] Calculating MD5 hashes ........... [DONE]
[*] Performing container image lookups [DONE]
[*] Processing ignore list(s) ........ [DONE]
[*] Generating output ................ [DONE]

IP,Hostname,AppName,Team,Ignore (Y/N),Comments,MD5Hash,Timestamp,Container,ContainerImage,FullPath,Version
192.168.121.121,server3,,,,,4e615cd580758b70c49ade1f79103328,2021-12-21T07:38:09Z,true,ghcr.io/christophetd/log4shell-vulnerable-app:latest,/run/containerd/io.containerd.runtime.v2.task/k8s.io/dc2c9c214809f506283c917244cd126a9b056ac7274322d12b59c9196d95dd9b/rootfs/app/spring-boot-application.jar,log4j-core-2.14.1.jar

Você verá imediatamente um AVISO se executá-lo como um usuário não root, pois ele requer permissões root:

  • se você planeja escanear todo o seu sistema de arquivos (recomendado)
  • se você planeja enriquecer com buscas de contêiner -> imagem (acesso ao daemon Docker, arquivos de configuração etc. é necessário)

Ele ainda funcionará sem privilégios root, mas pode não fornecer os melhores resultados.

Entendendo os Achados

Um exemplo de achado se parece com:

IP,Hostname,AppName,Team,Ignore (Y/N),Comments,MD5Hash,Timestamp,Container,ContainerImage,FullPath,Version
192.168.121.121,server3,,,,,4e615cd580758b70c49ade1f79103328,2021-12-21T07:38:09Z,true,ghcr.io/christophetd/log4shell-vulnerable-app:latest,/run/containerd/io.containerd.runtime.v2.task/k8s.io/dc2c9c214809f506283c917244cd126a9b056ac7274322d12b59c9196d95dd9b/rootfs/app/spring-boot-application.jar,log4j-core-2.14.1.jar

Alguns campos são intencionalmente deixados vazios para que o analista os preencha no Excel, etc. Uma breve descrição de cada campo é mostrada abaixo:

Baixar ferramenta