
une vérification rapide pour savoir si votre serveur pourrait être vulnérable à CVE-2021-44228
Si vous souhaitez utiliser les berceaux de téléchargement windows/linux ci-dessous, veuillez d'abord examiner les scripts. Charger du code depuis Internet et l'exécuter, c'est ce qui nous a amenés ici avec Log4Shell - n'est-ce pas ? ;-)
Le script log4j_checker_beta.sh permet d'effectuer une vérification rapide pour savoir si votre serveur est potentiellement affecté par CVE-2021-44228 (la vulnérabilité log4j).
Il ne donne pas une preuve à 100% que vous n'êtes pas vulnérable, mais il donne une indication s'il est possible que vous soyez vulnérable.
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - |bash
Si vous voulez seulement voir les avertissements, utilisez
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash | grep '\[WARNING\]'
Assurez-vous que votre base de données locate est mise à jour avant d'exécuter avec
sudo updatedb
Le script peut tester les fichiers .class au premier niveau des archives JAR/WAR/EAR pour voir s'ils correspondent à des hachages sha256 connus de fichiers de classe vulnérables de log4j.
Vous devez fournir un téléchargement d'un fichier texte brut avec des hachages sha256 au format HEX, un par ligne, tout après le premier est ignoré.
L'URL peut être placée dans la variable download_file. Sinon, cette fonctionnalité ne fonctionnera pas.
Les informations que Lunasec.io a publiées sur les hachages des fichiers binaires Java .class vulnérables :
Voir aussi leur blog : https://www.lunasec.io/docs/blog/log4j-zero-day-mitigation-guide/
Nous avons inclus une SHA256_HASHES_URL dans le script qui pointe vers le fichier hashes-pre-cve.txt dans ce dépôt. Mais vous pouvez ajouter votre propre URL comme premier paramètre au script dans le shell ou utiliser un fichier local, par exemple stocker votre fichier dans hashes-pre-cve_local.txt et ensuite lancer :
./log4j_checker_beta.sh hashes-pre-cve_local.txt
Les commandes locate et unzip doivent être installées. unzip pour inspecter les fichiers jar.
Pour installer sur les systèmes Debian et Ubuntu :
sudo apt install unzip locate
sudo updatedb
Vous pouvez utiliser le snippet
IEX (New-Object Net.Webclient).downloadstring("https://raw.githubusercontent.com/anlx-sw/log4j_checker_beta/main/get-vulnerablejars.ps1")
pour vérifier directement les fichiers jar potentiellement vulnérables sur Windows. Ou vous pouvez télécharger ce script et rediriger la sortie vers un partage de fichiers accessible en écriture. Cela a encore fonctionné pour moi pour Powershell 2.0 sur Windows Server 2012.
La gestion des erreurs ou les fonctionnalités supplémentaires n'ont pas été ajoutées intentionnellement pour rester court, facile et compatible avec Powershell 2.0 et les versions antérieures de Windows. Ce script vérifie simplement les fichiers jar et recherche la chaîne "JndiLookup.class" qui indique une bibliothèque vulnérable. Utilisez votre outil de choix pour l'exécuter avec des autorisations d'administrateur (ou utilisez-le manuellement).
Alternativement, si vous ne pouvez pas utiliser Powershell, vous pouvez utiliser ce snippet pour l'invite de commandes afin de scanner le disque actuel à la recherche de fichiers jar contenant "JndiLookup.class". Après avoir exécuté cette ligne avec des autorisations d'administrateur, vérifiez le fichier c:\log4j-vuln.txt pour les fichiers vulnérables.
cd \ && for /r %f in (*.jar) do (find /i /c "JndiLookup.class" "%f" 1>nul && echo "%f" >> "c:\log4j-vuln.txt")