Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2021-44228 — Guide en norvégien sur les vulnérabilités Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) avec des scripts de détection, des étapes d'atténuation et des cartes mentales pour identifier et corriger les systèmes affectés. | Kitploit
Outils/GitHubGitHub/helsecert/cve-2021-44228
Analyse des VulnérabilitésSécurité de la Chaîne LogistiqueApprentissage et ÉducationRéponse aux IncidentsRessources OrganiséesAnalyse de Journaux
GitHubhelsecert/cve-2021-44228

CVE-2021-44228

Guide en norvégien sur les vulnérabilités Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) avec des scripts de détection, des étapes d'atténuation et des cartes mentales pour identifier et corriger les systèmes affectés.

Voir le dépôt
11il y a 4 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Vulnérabilités dans Log4j

Mise à jour 19.12.2021 : De nouvelles vulnérabilités et de nouvelles façons de les exploiter sont constamment découvertes dans Log4j. Nous avons ajouté trois organigrammes (mind maps) dans le gitrepo qui décrivent respectivement version vulnérable de Log4j, comment vérifier si on est vulnérable et atténuation des différentes vulnérabilités.

Recommandation

Log4j v2.x:

  • Identifier les logiciels qui utilisent Log4j version 2.x

  • Atténuer les vulnérabilités dans Log4j

    • Mettre à jour les logiciels qui utilisent Log4j vers une version qui utilise Log4j 2.17.0

    Si ce qui précède n'est pas possible

    • Assurez-vous que les mesures d'atténuation pour CVE-2021-44228 et CVE-2021-45046 sont mises en œuvre, notez que vous êtes alors vulnérable aux DoS
    • Si les systèmes sont particulièrement critiques, envisagez de rechercher les Context Lookups dans les Pattern Layouts dans la configuration de Log4j2

Log4j v1.x:

  • Identifier les logiciels qui utilisent Log4j version 1.x.

  • Si Log4j version 1.x est utilisé dans l'entreprise, dialoguez avec le fournisseur et exigez qu'ils

    • Mette à niveau vers Log4j version 2.x
    • ou alternativement, passez à une autre bibliothèque en ce qui concerne la journalisation

Les vulnérabilités

CVE-2021-44228

Le grand méchant loup des vulnérabilités dans Log4j. La vulnérabilité est exploitée lorsqu'une variante de la chaîne ${jndi:ldap://\<code d'attaque>/a} est journalisée par Log4j. CVSS 10.0, RCE.

CVE-2021-45046

Pas aussi grave que CVE-2021-44228, mais tout aussi méchant. Nécessite une configuration non standard de Log4j. CVSS 9.0, RCE et DoS.

CVE-2021-45105

Pas aussi grave que CVE-2021-44228, aussi un peu moins méchant. CVSS 7.5, DoS

CVE-2021-4104

Concerne uniquement Log4j version 1.x. Nécessite que Log4j utilise JMSAppender. CVSS 6.6, RCE L'exploitation nécessite que Log4j utilise JMSAppender. Soit par JMSAppender configuré directement - ce qui est rare - soit par l'attaquant l'ajoutant lui-même à la configuration de Log4j. De plus, l'attaquant doit avoir accès pour modifier la configuration de JMSAppender. Si c'est le cas, l'attaquant aura normalement déjà accès au système. La vulnérabilité est donc considérée comme peu pertinente.

CVE-2019-17571

Concerne uniquement Log4j version 1.x. Nécessite que Log4j utilise SocketServer. CVSS 9.8, RCE Donne à un attaquant ayant un accès réseau au socket concerné la possibilité d'exécuter du code. Le code d'exploitation est publiquement disponible.

Pour Java 8, Log4j v. 2.17.0 est la dernière version. Elle atténue toutes les vulnérabilités ci-dessus.

La version 2.16.0 atténue les pires vulnérabilités.

Pour Java 7, Log4j a été publié en version 2.12.2. Celle-ci n'atténue pas CVE-2021-45105. L'équipe derrière Log4j dit d'ailleurs que ni Java 6 ni Java 7 ne sont plus supportés. Il est incertain qu'ils publient une autre mise à jour de sécurité pour Log4j sur Java 7.

L'organigramme "Mind map #1" donne un bon aperçu des conditions pour savoir si l'on a les différentes vulnérabilités.
Organigramme pour savoir si on est vulnérable à Log4j

Créé par Loïc Castel. Tiré de github.

Détecter si on est vulnérable

Une partie du défi est que ce ne sont pas nécessairement les serveurs directement exposés à Internet qui sont vulnérables. La vulnérabilité peut se trouver dans un serveur plus loin dans la 'chaîne' qui reçoit les mêmes données et les journalise. Cela peut rendre difficile de savoir ce qui est exposé et ce qui ne l'est pas.

L'organigramme "Mind map #2" donne un bon aperçu de comment vérifier ses propres systèmes pour les vulnérabilités.

Organigramme pour rechercher des instances vulnérables de Log4j

Créé par Loïc Castel. Tiré de github.

En déclenchant la vulnérabilité 1. Créez un token canari DNS [https://canarytokens.org/generate#](https://canarytokens.org/generate#)

Création d'un canari DNS

  1. Construisez cette chaîne de texte ${jndi:ldap://<token canari>/a}
  2. Saisissez cette chaîne dans tous les champs qui peuvent potentiellement être journalisés

"Recherche" avec chaîne canari

root@kitploit:~
- User-agent
- Champ de recherche
- Nom d'utilisateur
- ...

4. Suivez les alertes canari et découvrez où log4j s'exécute.

Réf : Tweet de Florian Roth

En recherchant sur les hôtes

Windows

Celle-ci prend tous les disques, y compris les lecteurs réseau mappés :

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

Si l'on souhaite uniquement vérifier les disques locaux :

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

Si l'on souhaite en plus vérifier le journal des événements sur la machine.

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

Atténuer la vulnérabilité

L'organigramme "Mind map #3" donne un aperçu des possibilités d'atténuation.

Organigramme pour les atténuations de Log4j

Créé par Loïc Castel. Tiré de github.

Ci-dessous, nous avons listé quelques ressources pour effectuer les atténuations.

#1 Patch

Java 8

Mettez à jour Log4j vers la v 2.17.0

Java 7

Mettez à jour Log4j vers la v 2.12.2 ATTENTION n'atténue pas CVE-2021-45105

#4 Atténuation #1 : Définir une variable

⚠️ cette méthode n'est plus considérée comme une solution complète car elle n'atténue pas toutes les vulnérabilités dans toutes les situations.

Windows

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

REMARQUE : Nécessite un redémarrage

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

Définir le flag JVM

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

Exemple de ligne de commande :

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

Ou avec une valeur -Xmx :

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

Exemple de configuration systemd :

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

Ou avec une valeur -Xmx :

root@kitploit:~
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" "-Xmx4g'
#4 Atténuation #2 : Supprimer la classe Java Supprimez JndiLookup.class dans le fichier jar de log4j.

Un fichier jar est une archive (fichier zip) et peut être ouvert. Les fichiers peuvent ensuite être supprimés. Cela peut être fait manuellement avec des outils comme 7-zip (voir image) ou en utilisant un script.

Nécessite un redémarrage de l'application

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

Suppression de jndilookup.class

Windows

root@kitploit:~
[Reflection.Assembly]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/HEAD/:LoadWithPartialName(%27System.IO.Compression%27)
$JarFilLokasjon = 'C:\temp\log4j-core-2.13.0-test.jar'
$Filnavn   = 'JndiLookup.class' #Cette ligne est supprimée !

$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

Listes de logiciels affectés

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

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

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

Télécharger l’outil

À exécuter en tant que root

Linux #2

root@kitploit:~
lsof | grep log4j-core

Ceci est chargé lors du redémarrage de l'application De https://github.com/ConsenSys/teku/security/advisories/GHSA-mwfw-vm54-g3p7