Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
hka-seminar-log4shell — Démonstration pratique de la vulnérabilité Log4Shell (CVE-2021-44228) | Kitploit
Outils/GitHubGitHub/fabioeletto/hka-seminar-log4shell
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubfabioeletto/hka-seminar-log4shell

hka-seminar-log4shell

Démonstration pratique de la vulnérabilité Log4Shell (CVE-2021-44228)

Voir le dépôt
1il y a 1 anPas 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

Travail de séminaire - Démonstration de la vulnérabilité Log4Shell (CVE-2021-44228)

Avis de sécurité

Ce dépôt sert exclusivement à des fins éducatives et de démonstration dans le cadre d'un travail de séminaire lié à la sécurité. N'utilisez pas ce code dans des environnements de production ou contre des systèmes sans autorisation explicite. La configuration vise à renforcer la sensibilisation à la sécurité et à montrer comment des vulnérabilités complexes peuvent apparaître lorsque des fonctionnalités apparemment inoffensives comme la journalisation, la résolution de noms et le chargement dynamique de classes sont combinées.

Table des matières

  • 1. Description du projet

    • 1.1 Objectif du travail de séminaire
    • 1.2 Aperçu de la démonstration
  • 2. Qu'est-ce que Log4Shell ?

  • 3. Composants techniques en détail

    • 3.1 Log4j - Fonctionnement
    • 3.2 JNDI - Mécanisme de lookup
    • 3.3 LDAP - Structure et rôle
    • 3.4 Déroulement général de Log4Shell
  • 4. Structure du projet et configuration

    • 4.1 Aperçu des répertoires
    • 4.2 Prérequis
    • 4.3 Configuration
  • 5. Démo du projet

  • 6. Mesures de protection

  • 7. Conclusion

  • 8. Sources

1. Description du projet

1.1 Objectif du travail de séminaire

L'objectif de ce travail de séminaire est de fournir une compréhension approfondie de la faille de sécurité Log4Shell (CVE-2021-44228), révélée en décembre 2021 et classée parmi les failles de sécurité les plus critiques de ces dernières années. Ce travail explique à la fois les bases théoriques et présente une démonstration pratique de la vulnérabilité.

1.2 Aperçu de la démonstration

Pour illustrer concrètement la faille de sécurité Log4Shell, ce dépôt met en place un environnement isolé et conteneurisé qui reproduit de manière reproductible le déroulement complet de l'attaque. La démonstration repose sur trois composants centraux :

  • vulnerable-app : Une application Spring Boot intentionnellement vulnérable utilisant Log4j en version 2.14.1. Elle journalise l'en-tête User-Agent de la requête HTTP, que les attaquants peuvent manipuler pour exploiter la vulnérabilité.
  • ldap-server : Un fork de l'outil bien connu marshalsec, qui agit comme serveur LDAP. Ce serveur est sous le contrôle de l'attaquant et fournit une référence vers une classe Java malveillante qui sera exécutée ultérieurement.
  • payload-server : Un simple serveur HTTP qui distribue une classe Java malveillante (Exploit.class). Comme le serveur LDAP, ce serveur est sous le contrôle de l'attaquant.

Remarque : Des informations détaillées sur la configuration et l'exécution de la démonstration se trouvent dans les sections 4. Structure du projet et configuration et 5. Démo du projet.

2. Qu'est-ce que Log4Shell ?

Log4Shell est le nom d'une faille de sécurité critique dans la bibliothèque Java Log4j, portant la référence CVE-2021-44228. Elle permet à un attaquant d'exécuter du code arbitraire sur un serveur distant avec un effort minimal (Remote Code Execution, ou RCE).

La vulnérabilité affecte Log4j dans les versions 2.0 à 2.14.1 et est si grave qu'elle a été classée au niveau de risque le plus élevé par de nombreuses autorités de sécurité, dont le BSI (Office fédéral allemand de la sécurité des technologies de l'information).

Log4Shell est particulièrement dangereuse car ...

  • Log4j est extrêmement répandu. Il est utilisé des serveurs de jeux aux applications d'entreprise.
  • aucune authentification n'est nécessaire, tout attaquant externe anonyme peut potentiellement causer des dommages.
  • le vecteur d'attaque est trivial, il suffit souvent d'envoyer une chaîne de caractères manipulée à l'application.
  • la fonctionnalité de Log4j permettant d'exploiter cette vulnérabilité est activée par défaut.

La cause fondamentale réside dans une fonctionnalité de Log4j qui permet de charger des contenus dynamiques dans les messages de journal via ce que l'on appelle des lookups. Combinée à JNDI (Java Naming and Directory Interface) et au protocole LDAP (Lightweight Directory Access Protocol), cette fonctionnalité permet de charger et d'exécuter des classes Java malveillantes distantes.

La découverte et la publication de la vulnérabilité ont déclenché une onde de choc mondiale en matière de sécurité. De nombreux systèmes ont dû être immédiatement patchés ou mis hors ligne. Par la suite, d'autres vulnérabilités connexes (par ex. CVE-2021-45046) ont été révélées, ce qui montre à quel point le problème était profond et dangereux.

Dans ce qui suit, les technologies impliquées et leur interaction sont expliquées en détail afin de développer une meilleure compréhension de la vulnérabilité.

3. Composants techniques en détail

3.1 Log4j - Fonctionnement

Log4j est une bibliothèque créée par Apache pour journaliser les événements dans les applications Java. La journalisation est un outil central du développement logiciel pour surveiller les systèmes ou analyser les erreurs. Log4j est l'un des frameworks de journalisation les plus connus et les plus utilisés de l'écosystème Java, employé aussi bien dans de petites applications que dans de grands systèmes d'entreprise.

Pourquoi journaliser ?

Lorsqu'un programme s'exécute, les événements suivants se produisent par exemple :

  • Requêtes utilisateur
  • changements d'état internes
  • messages d'erreur

Ces événements peuvent être documentés à l'aide de journaux (logs), généralement sous forme de sortie texte dans la console, dans des fichiers ou via des protocoles réseau vers des serveurs de logs centraux. Grâce à une journalisation judicieuse, il est possible de retracer ce qu'une application a fait et à quel moment.

Qu'offre Log4j ?

Log4j offre une infrastructure flexible et hautement configurable pour la génération et le traitement des messages de journal. Parmi les fonctions centrales figurent :

  • Niveaux de log : Il existe différents degrés d'importance (par ex. DEBUG, INFO, WARN, ERROR) qui permettent de contrôler le niveau de détail de la journalisation.
  • Appenders : Les sorties de journal peuvent être dirigées vers différentes destinations (par ex. console, fichier ou serveurs distants).
  • Layouts : Les layouts permettent de définir le format du message de journal (par ex. horodatage, thread, message).

D'autres fonctionnalités pertinentes pour ce travail de séminaire sont traitées dans les sections suivantes, notamment la fonctionnalité de placeholders et la fonctionnalité de lookup.

Exemple simple```java

import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;

public class Example { private static final Logger logger = LogManager.getLogger();

Télécharger l’outil