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
112il 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
    

    À exécuter en tant que root

    Linux #2

    root@kitploit:~
    lsof | grep log4j-core
    

    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/main/: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'
    

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

    #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/main/: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