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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/codeshield-security/log4jshell-bytecode-detector
Análise EstáticaScanners de VulnerabilidadesAnálise de CódigoAnálise de BináriosSegurança da Cadeia de SuprimentosResposta a Incidentes
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

Scanner local de bytecode para a vulnerabilidade Log4JShell (CVE-2021-44228)

Ver RepositórioSite
49916há 4 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

🔍 Detector de Bytecode Log4JShell

Log4JShell Bytecode Detector é uma ferramenta de código aberto que ajuda a identificar se um arquivo jar é afetado pela vulnerabilidade crítica CVE-2021-44228. A ferramenta verifica o arquivo jar e compara as classes com um conjunto de hashes vulneráveis de classes dentro do arquivo jar. Os hashes foram pré-calculados para artefatos no Maven Central.

ATUALIZAÇÃO IMPORTANTE: Ampliamos a lista de artefatos afetados no Maven Central. A lista contém 18.816 artefatos. Os artefatos usam log4j-core como dependência declarada, ou identificamos arquivos .class dentro dos artefatos que correspondem às versões afetadas do log4j-core.

📝 Como executar

  1. Baixe o arquivo jar na seção de releases.
  2. Execute java -cp <PATH_TO_DOWNLOADED_JAR> de.codeshield.log4jshell.Log4JDetector <ABSOLUTE_PATH_TO_JAR_TO_CHECK>

Se o jar estiver afetado, a ferramenta exibe informações na linha de comando:

CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 Como executar em um servidor em produção (não é necessário interromper suas instâncias Java em execução)

  1. Baixe o arquivo jar na seção de releases.
  2. Execute java -cp <PATH_TO_DOWNLOADED_JAR> de.codeshield.log4jshell.Log4JProcessDetector
  3. O jar procura no classpath de todos os processos java em execução por instâncias do log4j vulneráveis.

❓ Contexto sobre a CVE-2021-44228

Uma grave vulnerabilidade de Execução Remota de Código foi descoberta no log4j, e as versões 2.0-beta9 a 2.14 são afetadas. A vulnerabilidade foi classificada como crítica, pois afeta o log4j, uma das bibliotecas de logging mais utilizadas para Java. Existem muitas referências e artigos disponíveis.

  • Hackernews
  • BSI (somente em alemão)
  • Prova de conceito para explorar a vulnerabilidade
  • Folha de dicas do Log4JShell

👀 Por que isso é importante?

O Log4j é e tem sido usado em praticamente qualquer projeto Java para fins de logging. Agora precisamos entender quais projetos e bibliotecas estão realmente afetados. Devido ao mecanismo de dependências do Java, uma aplicação também pode ser afetada se incluir transitively a versão vulnerável da biblioteca. Um projeto A inclui uma biblioteca lib transitively se uma das dependências diretas B de A tiver uma dependência de lib. Um teste simples para verificar se você é afetado pode ser feito usando a árvore de dependências do maven:

Exemplo: Execute o comando mvn dependency:tree em um projeto maven.

[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

Essa verificação, no entanto, é apenas uma primeira indicação e não é suficiente pelos seguintes motivos:

Os programas Java são frequentemente:

  • empacotados como fatjar ou uberjar: Todos os arquivos de classe (incluindo dependências diretas e transitivas) são enviados em um único arquivo jar. (como fazemos para este artefato de software)
  • reempacotados ou reagrupados: os nomes originais dos pacotes são alterados para evitar conflitos de nomenclatura (alguns compiladores e mecanismos de empacotamento aplicam transformações de código)
  • recompilados: O código-fonte é compilado com um compilador diferente e empacotado como novo, o que leva a bytecode modificado

Consequentemente, qualquer biblioteca que um projeto Java utiliza pode incluir a vulnerabilidade no seu projeto. Uma análise aprofundada de bytecode ajuda, e é isso que publicamos como parte deste repositório.

📕 O script

  1. Extrai arquivos pom.xml do .jar
  2. Verifica as dependências declaradas em relação a uma lista pré-calculada de groupId:artifactId:version afetados para artefatos hospedados no Maven Central
  3. Extrai arquivos .class do .jar
  4. Calcula os hashes SHA dos arquivos de classe
  5. Compara os SHAs com uma lista pré-calculada

🛠 Instruções de Build

Para compilar esta ferramenta execute

mvn compile

Para montar um jar executável use

mvn clean compile assembly:single

💡 Hashes Pré-calculados de Classes Vulneráveis

O conjunto de hashes vulneráveis para classes foi pré-calculado em todo o repositório Maven Central. Os hashes das classes contêm todos os hashes que identificamos como semelhantes em bytecode usando a tecnologia de Fingerprinting.

As informações pré-calculadas contêm:

  • todos os artefatos que incluem diretamente o log4j em qualquer uma das versões vulneráveis
  • todos os artefatos que distribuem uma classe que contém um hash vulnerável do log4j na faixa de versões afetadas
  • todos os artefatos que reagrupam uma classe vulnerável do log4j
  • todos os artefatos que possuem uma classe recompilada de uma classe do log4j na faixa de versões afetadas

Como faixa de versões afetadas consideramos [2.0-beta9, 2.15) Referência.

💻 Tecnologia de Fingerprinting

Esta ferramenta utiliza uma nova tecnologia de fingerprinting de bytecode para Java inventada por Andreas Dann. O fluxo básico é o seguinte:

  1. Use os commits de correção disponíveis Commit1, Commit2 e Commit3 para identificar quais classes são afetadas.
  2. Calcule "Fingerprints" de bytecode das classes vulneráveis.
  3. Procure outras classes no MavenCentral com o mesmo "Fingerprint".

Nota: Para uma implementação mais simples, este repositório fornece hashes SHA das classes vulneráveis; as informações foram calculadas usando Fingerprinting

📌 Aviso Legal

A lista de hashes e artefatos maven não está completa. Atualizaremos as listas regularmente.

📯 Contribuidores

Esta ferramenta foi criada em conjunto pelos cofundadores da CodeShield

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

Feedback é bem-vindo!

Estamos trabalhando para ampliar a lista de artefatos afetados e sempre buscamos melhorar nossa oferta. contribution welcome

Além disso, ⭐️ este repositório se nosso scanner ajudou você!

✍️ Contato

Se precisar de suporte ou quiser saber mais sobre nossa tecnologia, entre em contato pelo e-mail [email protected].

Sua equipe CodeShield 💚

Baixar ferramenta