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
CVE-2021-44228 — Guia em norueguês sobre vulnerabilidades Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) com scripts de detecção, etapas de mitigação e mapas mentais para identificar e remediar sistemas afetados. | Kitploit
Ferramentas/GitHubGitHub/helsecert/cve-2021-44228
Análise de VulnerabilidadesSegurança da Cadeia de SuprimentosAprendizado e EducaçãoResposta a IncidentesRecursos CuradosAnálise de Logs
GitHubhelsecert/cve-2021-44228

CVE-2021-44228

Guia em norueguês sobre vulnerabilidades Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) com scripts de detecção, etapas de mitigação e mapas mentais para identificar e remediar sistemas afetados.

Ver Repositório
112há 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

Vulnerabilidades no Log4j

Atualização 19.12.2021: Novas vulnerabilidades e novas formas de explorá-las no Log4j continuam sendo descobertas. Adicionamos três fluxogramas (mapas mentais) ao repositório git que descrevem respectivamente versão vulnerável do Log4j, como verificar se você está vulnerável e mitigação das várias vulnerabilidades.

Recomendação

Log4j v2.x:

  • Identifique softwares que utilizam Log4j versão 2.x

  • Mitigue vulnerabilidades no Log4j

    • Atualize softwares que utilizam Log4j para uma versão que utilize Log4j 2.17.0

    Se o acima não for possível

    • Certifique-se de que medidas mitigadoras para CVE-2021-44228 e CVE-2021-45046 foram implementadas, note que você estará vulnerável a DoS
    • Se os sistemas forem especialmente críticos, considere verificar Context Lookups em Pattern Layouts na configuração do Log4j2

Log4j v1.x:

  • Identifique softwares que utilizam Log4j versão 1.x.

  • Se o Log4j versão 1.x for utilizado na empresa, entre em diálogo com o fornecedor e exija que eles

  • Atualizem para Log4j versão 2.x
  • alternativamente, migrem para outra biblioteca de logging

As Vulnerabilidades

CVE-2021-44228

O grande lobo mau das vulnerabilidades no Log4j. A vulnerabilidade é explorada quando uma variante da string ${jndi:ldap://\<código_de_ataque>/a} é registrada pelo Log4j. CVSS 10.0, RCE.

CVE-2021-45046

Não tão grande quanto CVE-2021-44228, mas igualmente grave. Requer configuração não padrão do Log4j. CVSS 9.0, RCE e DoS.

CVE-2021-45105

Não tão grande quanto CVE-2021-44228, também um pouco menos grave. CVSS 7.5, DoS

CVE-2021-4104

Aplica-se apenas ao Log4j versão 1.x. Requer que o Log4j use JMSAppender. CVSS 6.6, RCE A exploração requer que o Log4j use JMSAppender. Seja porque o JMSAppender está configurado diretamente - o que é incomum - ou porque o atacante o adiciona à configuração do Log4j. Além disso, o atacante precisa ter acesso para modificar a configuração do JMSAppender. Se for o caso, o atacante normalmente já teria acesso ao sistema. Portanto, a vulnerabilidade é considerada de baixa relevância.

CVE-2019-17571

Aplica-se apenas ao Log4j versão 1.x. Requer que o Log4j use SocketServer. CVSS 9.8, RCE Dá a um atacante com acesso de rede ao socket em questão a capacidade de executar código. O código de exploração está publicamente disponível.

Para Java 8, o Log4j v. 2.17.0 é a versão mais recente. Ela mitiga todas as vulnerabilidades acima.

A versão 2.16.0 mitiga as piores vulnerabilidades.

Para Java 7, o Log4j foi lançado na versão 2.12.2. Esta não mitiga CVE-2021-45105. A equipe por trás do Log4j afirma que nem Java 6 nem Java 7 são mais suportados. Não se sabe se eles lançarão outra atualização de segurança para Log4j no Java 7.

O fluxograma "Mind map #1" fornece uma boa visão geral das condições para ter as diferentes vulnerabilidades.
Fluxograma para verificar se você está vulnerável ao Log4j

Criado por Loïc Castel. Obtido do github.

Descobrir se está vulnerável

Parte do desafio é que não são necessariamente servidores diretamente expostos à internet que estão vulneráveis. A vulnerabilidade pode estar em um servidor mais atrás na 'cadeia' que recebe os mesmos dados e os registra. Isso pode tornar desafiador saber o que está exposto e o que não está.

O fluxograma "Mind map #2" fornece uma boa visão geral de como verificar seus próprios sistemas para as vulnerabilidades.

Fluxograma para procurar instâncias vulneráveis do Log4j

Criado por Loïc Castel. Obtido do github.

Ao acionar a vulnerabilidade 1. Crie um token canário DNS [https://canarytokens.org/generate#](https://canarytokens.org/generate#)

Criação de canário DNS

  1. Construa esta string de texto ${jndi:ldap://<token_canário>/a}
  2. Insira esta string em todos os campos que potencialmente podem ser registrados

"Busca" com string canário

root@kitploit:~
- User-agent
- Campo de busca
- Nome de usuário
- ...

4. Acompanhe os acertos do canário e descubra onde o log4j está em execução.

Ref: Tweet de Florian Roth

Ao pesquisar em hosts

Windows

Este comando abrange todos os discos, incluindo unidades de rede mapeadas:

root@kitploit:~
Get-PSDrive -PSProvider FileSystem | foreach {(gci ($_.Root) -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path)}

Ref: https://twitter.com/0gtweet/status/1469661769547362305

Se você deseja verificar apenas discos locais:

root@kitploit:~
Get-CimInstance win32_volume | Where-Object { $_.DriveType -eq 3 -and $_.DriveLetter -ne $null} | ForEach-Object {(gci ($_.DriveLetter+"\") -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path)}

Ref: https://twitter.com/webmastir/status/1470386184052486155?s=20

Se você também deseja verificar o log de eventos na máquina.

root@kitploit:~
Get-WinEvent -ListLog * |
  foreach { get-winevent @{logname=$_.logname; } -ea 0 } |
  where message -match 'jndi'

Linux #1

root@kitploit:~
#!/bin/bash
find / -name '*log4j*.jar' -print0 2>/dev/null -print0 | while read -d $'\0' log4j; do
        echo -en "${log4j}: "$(unzip -p "${log4j}" | strings | grep -Po '^Implementation-Version:\s+([0-9\.]+)' | awk '{ print $NF }')"\n"
done
exit 0

Execute como root

Linux #2

root@kitploit:~
lsof | grep log4j-core

Mitigar vulnerabilidade

O fluxograma "Mind map #3" fornece uma visão geral das opções de mitigação.

Fluxograma para mitigações do Log4j

Criado por Loïc Castel. Obtido do github.

Abaixo listamos alguns recursos para realizar as mitigações.

#1 Patch

Java 8

Atualize o Log4j para v 2.17.0

Java 7

Atualize o Log4j para v 2.12.2 OBS não mitiga CVE-2021-45105

#4 Mitigação #1: Definir variável

⚠️ este método não é mais considerado uma solução completa, pois não mitiga todas as vulnerabilidades em todas as situações.

Windows

root@kitploit:~
[Environment]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/main/:SetEnvironmentVariable(%22LOG4J_FORMAT_MSG_NO_LOOKUPS%22,%22true%22,%22Machine%22)

NOTA: Requer reinicialização

De https://twitter.com/CyberRaiju/status/1469505680138661890

Definir flag JVM

root@kitploit:~
"‐Dlog4j2.formatMsgNoLookups=True"

Command line example:

root@kitploit:~
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" teku --network mainnet

Or with an -Xmx value:

root@kitploit:~
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx4g" teku

Systemd config example:

root@kitploit:~
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true"'

Or with an -Xmx value:

root@kitploit:~
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" "-Xmx4g'

Isso é carregado ao reiniciar a aplicação De https://github.com/ConsenSys/teku/security/advisories/GHSA-mwfw-vm54-g3p7

#4 Mitigação #2: Excluir classe Java Exclua JndiLookup.class no arquivo jar do log4j.

Um arquivo jar é um arquivo (zip) e pode ser aberto. Arquivos podem então ser removidos. Isso pode ser feito manualmente com ferramentas como 7-zip (veja imagem) ou usando scripts.

Requer reinicialização da aplicação

Ref: https://mogwailabs.de/en/blog/2021/12/vulnerability-notes-log4shell/9

Remoção de jndilookup.class

Windows

root@kitploit:~
[Reflection.Assembly]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/main/:LoadWithPartialName(%27System.IO.Compression%27)
$JarFilLokasjon = 'C:\temp\log4j-core-2.13.0-test.jar'
$Filnavn   = 'JndiLookup.class' #Esta classe será excluída!

$Stream = New-Object IO.FileStream($JarFilLokasjon, [IO.FileMode]::Open)
$ZipMode   = [IO.Compression.ZipArchiveMode]::Update
$Zip    = New-Object IO.Compression.ZipArchive($stream, $ZipMode)

($zip.Entries | Where-Object { $Filnavn -contains $_.Name }) | ForEach-Object { $_.Delete() }
$zip.Dispose()
$stream.Close()
$stream.Dispose()

Linux

root@kitploit:~
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

Listas de softwares afetados

https://github.com/NCSC-NL/log4shell/tree/main/software

https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

https://github.com/cisagov/log4j-affected-db

Baixar ferramenta