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
log4shell-finder — Scanner de fichiers le plus rapide pour log4shell (CVE-2021-44228, CVE-2021-45046) et autres instances vulnérables (CVE-2017-5645, CVE-2019-17571, CVE-2022-23305, CVE-2022-23307 ... ) de la bibliothèque log4j. Excellentes performances et faible empreinte mémoire. | Kitploit
Outils/GitHubGitHub/hynekpetrak/log4shell-finder
Analyse StatiqueScanners de VulnérabilitésAnalyse des VulnérabilitésAnalyse de CodeSécurité de la Chaîne LogistiqueMauvaise Configuration
GitHubhynekpetrak/log4shell-finder

log4shell-finder

Scanner de fichiers le plus rapide pour log4shell (CVE-2021-44228, CVE-2021-45046) et autres instances vulnérables (CVE-2017-5645, CVE-2019-17571, CVE-2022-23305, CVE-2022-23307 ... ) de la bibliothèque log4j. Excellentes performances et faible empreinte mémoire.

Voir le dépôt
39134il y a 3 ansVérifié par Kitploit

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

log4shell-finder - Scanneur de système de fichiers le plus rapide pour les instances log4j

Portage Python de https://github.com/mergebase/log4j-detector log4j-detector est protégé par le droit d'auteur (C) Copyright 2021 Mergebase Software Inc. https://mergebase.com/ Sous licence GPLv3.

La motivation du portage en Python était d'améliorer les performances, de réduire la consommation mémoire et d'accroître la lisibilité du code. Voir la section performance ci-dessous pour la comparaison.

Et il semblerait que ce soit l'outil de scan le plus rapide avec les besoins en mémoire les plus faibles

Identifie les versions de log4j (1.x), reload4j (1.2.18+) et log4j-core (2.x) sur votre système de fichiers vulnérables à CVE-2021-44228, CVE-2021-45046 et bien d'autres – voir le tableau ci-dessous. Il est capable de trouver des instances intégrées dans des applications plus volumineuses, à plusieurs niveaux de profondeur. Fonctionne sous Linux, Windows, Mac ou partout ailleurs où Python 3.8+ s'exécute.

Peut détecter correctement log4j dans les jars/wars exécutables spring-boot, les dépendances fusionnées dans des uber jars, les shaded jars, et même les fichiers jar extraits, simplement non compressés sur le système de fichiers (c.-à-d. *.class).
Il peut également traiter les fichiers de classes shaded - extensions .esclazz (elastic) et .classdata (Azure).

Extensions d'archives Java recherchées : .zip, .jar, .war, .ear, .aar, .jpi, .hpi, .rar, .nar, .wab, .eba, .ejb, .sar, .apk, .par, .kar

Vulnérabilités détectées

DétecteCVECVSSv3SévéritéJavaVulnérable depuisVulnérable jusqu'àCorrigé dansBibliothèque
OUICVE-2021-4422810.0Critique82.0-beta92.14.12.15.0log4jv2
OUICVE-2017-56459.8Critique72.0-alpha12.8.12.8.2log4jv2
OUICVE-2019-175719.8Critique1.2.01.2.17nofixlog4jv1
OUICVE-2021-450469.0Critique7/82.0-beta92.15.0 excluant 2.12.22.12.2/2.16.0log4jv2
OUICVE-2022-233059.8Critique1.2.01.2.17nofix / 1.2.18.1log4jv1, reload4j
OUICVE-2022-233079.8Critique1.2.01.2.17nofix / 1.2.18.1log4jv1, reload4j
OUICVE-2022-233028.8Élevée1.01.2.17nofix / 1.2.18.1log4jv1, reload4j
OUICVE-2021-41047.5Élevée-1.01.2.17

Chaque instance est signalée avec la liste des CVE qui lui correspond. Pour chaque CVE, le fichier de bibliothèque log4j est analysé pour déterminer si les contournements recommandés (par ex. JndiLookup.class ou JMSAppender.class supprimés) ont été appliqués ; dans ce cas, il est considéré comme non vulnérable. Le statut STRANGE est signalé pour les archives contenant un fichier pom.properties de log4j-core, mais sans classes bytecode réelles ; il s'agit généralement de paquets source et ils peuvent être ignorés.

Avertissement La fonctionnalité --fix est expérimentale, utilisez-la à vos risques et périls ; assurez-vous de sauvegarder vos fichiers jar avant de l'utiliser.

L'argument --fix tente de renommer les instances de JndiLookup.class en JndiLookup.vulne, empêchant ainsi le chargement de la classe. Dans les archives Java, cela se fait via un renommage sur place, ne nécessite pas de re-compresser l'archive et est instantané.

Des binaires sont disponibles pour Linux 64 bits, MS Windows 64 bits et 32 bits – voir Releases

La version minimale de Python prise en charge est 3.8. D'après mes tests, l'implémentation zip de Python 3.6 ne peut pas ouvrir beaucoup de fichiers .jar de mes données de test.

Performances

log4shell finder est optimisé pour les performances et une faible empreinte mémoire.

Mis à jour le 23.1.2022, performances mesurées sur un répertoire de 26237 fichiers dans 2005 dossiers.

Temps d'exécution réduit de moitié, consommation mémoire réduite des deux tiers, lectures du système de fichiers réduites d'au moins 90 %

log4shell-finder (cet outil)

root@kitploit:~
Command being timed: "./test_log4shell.py /home/hynek/war/ --exclude-dirs /mnt --same-fs"
User time (seconds): 17.68
System time (seconds): 1.20
Percent of CPU this job got: 127%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:14.47
Maximum resident set size (kbytes): 64144
File system inputs: 114424

log4j-finder (https://github.com/fox-it/log4j-finder)

root@kitploit:~
Command being timed: "./log4j-finder.py /home/hynek/war/"
User time (seconds): 23.59
System time (seconds): 1.09
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:26.18
Maximum resident set size (kbytes): 38604
File system inputs: 142824

log4j-detector (https://github.com/mergebase/log4j-detector)

root@kitploit:~
Command being timed: "java -jar log4j-detector-latest.jar /home/hynek/war"
User time (seconds): 30.56
System time (seconds): 1.39
Percent of CPU this job got: 113%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:28.26
Maximum resident set size (kbytes): 214116
File system inputs: 14416

log4j2-scan (https://github.com/logpresso/CVE-2021-44228-Scanner)

root@kitploit:~
Command being timed: "./log4j2-scan /home/hynek/war --scan-log4j1 --scan-zip"
User time (seconds): 52.05
System time (seconds): 25.32
Percent of CPU this job got: 88%
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:27.86
Maximum resident set size (kbytes): 593080
File system inputs: 215416

Journal des modifications

Version 1.22-20220222

  • Ajout : lecture de la version et du nom de la bibliothèque (log4j, log4j-core, reload4j) depuis MANIFEST.MF ainsi que depuis pom.properties
  • Améliorations de performances supplémentaires de 15 %
  • Ajout : détection automatique de tous les lecteurs locaux sous mswin avec le paramètre all
  • Ajout : --no-csv-header pour omettre l'en-tête CSV afin de faciliter la fusion des résultats de plusieurs hôtes
  • Ajout : détection de CVE-2017-5645 (9.8), CVE-2019-17571 (9.8), CVE-2022-23307 (8.1), CVE-2022-23305 (9.8), CVE-2022-23305 (9.8), CVE-2022-23302 (8.1), détection améliorée de CVE-2017-5645
  • Ajout : paramètre --threads pour régler manuellement le nombre de threads de scan
  • Ajout : paramètre --cvs-clean afin d'écrire une ligne "CLEAN" dans la sortie CSV si aucune bibliothèque log4j n'est détectée
  • Ajout : paramètre --cvs-stats afin d'écrire une ligne "STATS" dans la sortie CSV avec le temps d'exécution en secondes et le nombre de fichiers et dossiers scannés

Version 1.21-20220109

  • Correction de bug : la commande --fix dans les versions 1.19 et 1.20 pouvait corrompre les archives .jar.

Pour les modifications précédentes, voir les notes de version

Utilisation

Exécutez-le depuis un interpréteur Python ou utilisez les binaires Windows/Linux du dossier dist.

Veillez à l'exécuter en tant qu'utilisateur ayant accès (au moins en lecture seule) à l'ensemble du système de fichiers. log4shell-finder ne parcourt que les dossiers auxquels il peut accéder, sans signaler les erreurs de permission refusée.

root@kitploit:~
PS C:\D\log4shell_finder> python3 .\test_log4shell.py --help
usage:  Type "test_log4shell.py --help" for more information
        On Windows "test_log4shell.py c:\ d:\"
        On Linux "test_log4shell.py /"

Searches file system for vulnerable log4j version.

positional arguments:
  folders               List of folders or files to scan. Use "-" to read list of files from stdin. On MS Windows use "all" to scan all local drives.

optional arguments:
  -h, --help            show this help message and exit
  --exclude-dirs DIR [DIR ...]
                        Exclude given directories from search.
  -s, --same-fs         Don't scan mounted volumens.
  -j [FILE], --json-out [FILE]
                        Save results to json file.
  -c [FILE], --csv-out [FILE]
                        Save results to csv file.
  --csv-clean           Add CLEAN status line in case no entries found
  --csv-stats           Add STATS line into csv output.
  --no-csv-header       Don't write CSV header to the output file.
  -f, --fix             Fix vulnerable by renaming JndiLookup.class into JndiLookup.vulne.
  --threads [THREADS]   Specify number of threads to use for parallel processing, default is 6.
  --file-log [LOGFILE]  Enable logging to log file, default is log4shell-finder.log.
  --progress [SEC]      Report progress every SEC seconds, default is 10 seconds.
  --no-errors           Suppress printing of file system errors.
  --strange             Report also strange occurences with pom.properties without binary classes (e.g. source or test packages)
  -d, --debug           Increase verbosity, mainly for debugging purposes.
  -v, --version         show program's version number and exit

Ne nécessite aucune bibliothèque Python supplémentaire.

Compilation des binaires

Les binaires ont été produits avec :

root@kitploit:~
pip install pyinstaller
pyinstaller -F ./test_log4shell.py

Si vous souhaitez compiler une version 32 bits, installez un interpréteur Python 32 bits, puis installez pyinstaller avec :

root@kitploit:~
C:\Users\User\AppData\Local\Programs\Python\Python38-32\python.exe -m pip install pyinstaller

puis :

root@kitploit:~
 C:\Users\User\AppData\Local\Programs\Python\Python38-32\Scripts\pyinstaller.exe -n test_log4shell-mswin32 -F test_log4shell.py 

Exemple d'exécution

Sous Linux, vous pouvez exécuter par exemple :

root@kitploit:~
python3 ./test_log4shell.py / /opt --same-fs --no-errors

pour MS Windows :

root@kitploit:~
python3 .\test_log4shell.py c:\ d:\ --same-fs --no-errors

Sous MS Windows :

Assurez-vous d'avoir installé pywin32, par exemple via pip install pywin32

root@kitploit:~
PS C:\D\log4shell_finder> python3 .\test_log4shell.py c:\ --same-fs --no-errors

 8                  .8         8             8 8        d'b  o            8
 8                 d'8         8             8 8        8                 8
 8 .oPYo. .oPYo.  d' 8  .oPYo. 8oPYo. .oPYo. 8 8       o8P  o8 odYo. .oPYo8 .oPYo. oPYo.
 8 8    8 8    8 Pooooo Yb..   8    8 8oooo8 8 8        8    8 8' `8 8    8 8oooo8 8  `'
 8 8    8 8    8     8    'Yb. 8    8 8.     8 8        8    8 8   8 8    8 8.     8
 8 `YooP' `YooP8     8  `YooP' 8    8 `Yooo' 8 8        8    8 8   8 `YooP' `Yooo' 8
 ..:.....::....8 ::::..::.....:..:::..:.....:....:::::::..:::....::..:.....::.....:..::::
 :::::::::::ooP'.:::::::::::::::::::::::::::::::::   Version 1.17-20220105   ::::::::::::
 :::::::::::...::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 Parameters: .\test_log4shell.py c:\ --same-fs --no-errors
 Host info: 'hostname': 'TESTHOST', 'fqdn': 'TESTHOST.example.com', 'ip': '10.0.0.1', 'system': 'Windows', 'release': '10', 'version': '10.0.19043', 'machine': 'AMD64', 'cpu': 'Intel64 Family 6 Model 142 Stepping 12, GenuineIntel'

[+] [CVE-2021-4104 (8.1)]  Package c:\Program Files\Microsoft SQL Server\150\DTS\Extensions\Common\Jars\log4j-1.2.17.jar contains Log4J-1.2.17 <= 1.2.17, JMSAppender.class found
[+] [CVE-2021-44832 (6.6), CVE-2021-45046 (9.0), CVE-2021-45105 (5.9)]  Package c:\Program Files\OWASP\Zed Attack Proxy\lib\log4j-core-2.15.0.jar contains Log4J-2.15.0 == 2.15.0
[+] [CVE-2021-44228 (10.0), CVE-2021-44832 (6.6), CVE-2021-45046 (9.0), CVE-2021-45105 (5.9)]  Package c:\Users\testuser\Downloads\sqldeveloper-20.4.1.407.0006-x64.zip -> sqldeveloper/sqldeveloper/lib/log4j-core.jar contains Log4J-2.13.3 >= 2.10.0
[+] [CVE-2021-44228 (10.0), CVE-2021-44832 (6.6), CVE-2021-45046 (9.0), CVE-2021-45105 (5.9)]  Package c:\Users\testuser\Downloads\sqldeveloper-20.4.1.407.0006-x64\sqldeveloper\sqldeveloper\lib\log4j-core.jar contains Log4J-2.13.3 >= 2.10.0


 Scanned 1162924 files in 286638 folders.
   Found 1 instances vulnerable to CVE-2021-4104 (8.1)
   Found 2 instances vulnerable to CVE-2021-44228 (10.0)
   Found 3 instances vulnerable to CVE-2021-44832 (6.6)
   Found 3 instances vulnerable to CVE-2021-45046 (9.0)
   Found 3 instances vulnerable to CVE-2021-45105 (5.9)

Scan de Kali, avec progression rapportée chaque seconde et dossier zip-bomb exclu :

root@kitploit:~
root@kali:/home/hynek/log4shell-finder# python3 test_log4shell.py / --same-fs --no-errors --progress 1  --exclude-dirs /usr/share/seclists/Payloads/Zip-Bombs/

 8                  .8         8             8 8        d'b  o            8
 8                 d'8         8             8 8        8                 8
 8 .oPYo. .oPYo.  d' 8  .oPYo. 8oPYo. .oPYo. 8 8       o8P  o8 odYo. .oPYo8 .oPYo. oPYo.
 8 8    8 8    8 Pooooo Yb..   8    8 8oooo8 8 8        8    8 8' `8 8    8 8oooo8 8  `'
 8 8    8 8    8     8    'Yb. 8    8 8.     8 8        8    8 8   8 8    8 8.     8
 8 `YooP' `YooP8     8  `YooP' 8    8 `Yooo' 8 8        8    8 8   8 `YooP' `Yooo' 8
 ..:.....::....8 ::::..::.....:..:::..:.....:....:::::::..:::....::..:.....::.....:..::::
 :::::::::::ooP'.:::::::::::::::::::::::::::::::::   Version 1.18-20220106   ::::::::::::
 :::::::::::...::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 Parameters: test_log4shell.py / --same-fs --no-errors --progress 1 --exclude-dirs /usr/share/seclists/Payloads/Zip-Bombs/
 Host info: 'hostname': 'kali', 'fqdn': 'kali', 'ip': '10.0.0.2', 'system': 'Linux', 'release': '5.14.0-kali4-amd64', 'version': '#1 SMP Debian 5.14.16-1kali1 (2021-11-05)', 'machine': 'x86_64', 'cpu': ''

Skipping mount point: /data
Skipping mount point: /home
Skipping mount point: /dev
Skipping mount point: /sys
[+] [CVE-2021-4104 (8.1)]  Package /usr/share/paros/paros.jar contains Log4J-1.x <= 1.2.17, JMSAppender.class found
 After 1 secs, scanned 119762 files in 4853 folders.
        Currently at: /usr/share/icons/hicolor/48x48/apps/kali-jd-gui.png
Skipping blaclisted folder: /usr/share/seclists/Payloads/Zip-Bombs
 After 2 secs, scanned 190067 files in 12980 folders.
        Currently at: /usr/share/plasma/desktoptheme/kali/metadata.desktop
[+] [CVE-2021-44228 (10.0), CVE-2021-44832 (6.6), CVE-2021-45046 (9.0), CVE-2021-45105 (5.9)]  Package /usr/share/jsql-injection/jsql-injection.jar contains Log4J-2.14.0 >= 2.10.0
 After 3 secs, scanned 221233 files in 17725 folders.
        Currently at: /usr/share/maltego/maltego-ui/modules/com-paterva-maltego-transform-finder.jar
[+] [CVE-2021-44228 (10.0), CVE-2021-44832 (6.6), CVE-2021-45046 (9.0), CVE-2021-45105 (5.9)]  Package /usr/share/zaproxy/lib/log4j-core-2.14.1.jar contains Log4J-2.14.1 >= 2.10.0
[+] [CVE-2021-4104 (8.1)]  Package /usr/share/javasnoop/lib/log4j-1.2.16.jar contains Log4J-1.2.16 <= 1.2.17, JMSAppender.class found
 After 7 secs, scanned 233394 files in 18705 folders.
        Currently at: /usr/share/images/desktop-base/login-background.svg
 After 8 secs, scanned 301417 files in 27952 folders.
        Currently at: /usr/lib/python3/dist-packages/faraday_plugins/plugins/repo/dirb/plugin.py
 After 9 secs, scanned 342342 files in 34421 folders.
        Currently at: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jexec
Skipping mount point: /run
Skipping mount point: /proc


 Scanned 379253 files in 37742 folders in 9.9 seconds.
   Found 2 instances vulnerable to CVE-2021-4104 (8.1)
   Found 2 instances vulnerable to CVE-2021-44228 (10.0)
   Found 2 instances vulnerable to CVE-2021-44832 (6.6)
   Found 2 instances vulnerable to CVE-2021-45046 (9.0)
   Found 2 instances vulnerable to CVE-2021-45105 (5.9)

Sortie JSON

La sortie json contient tous les éléments trouvés ainsi que les informations sur l'hôte :

root@kitploit:~
{
  "hostname": "myserver",
  "fqdn": "myserver",
  "ip": "10.0.0.1",
  "system": "Linux",
  "release": "5.4.0-58-generic",
  "version": "#64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020",
  "machine": "x86_64",
  "cpu": "x86_64",
  "cmdline": "./test_log4shell.py / --exclude-dirs /mnt --same-fs --csv-out --json-out",
  "starttime": "2021-12-22 07:07:54",
  "items": [
    {
      "container": "Package",
      "path": "/home/hynek/.m2/repository/org/apache/logging/log4j/log4j-core/2.14.1/log4j-core-2.14.1.jar",
      "status": "CVE_2021_44228",
      "message": "contains Log4J-2.14.1 >= 2.10.0",
      "pom_version": "2.14.1"
    },
    {
      "container": "Package",
      "path": "/home/hynek/.m2/repository/org/apache/logging/log4j/log4j-core/2.16.0/log4j-core-2.16.0.jar",
      "status": "NOTOKAY",
      "message": "contains Log4J-2.16.0 == 2.16.0",
      "pom_version": "2.16.0"
    },
    {
      "container": "Package",
      "path": "/home/hynek/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar",
      "status": "CVE_2021_4104",
      "message": "contains Log4J-1.2.17 <= 1.2.17, JMSAppender.class found",
      "pom_version": "1.2.17"
    },
    {
      "container": "Package",
      "path": "/home/hynek/.m2/repository/log4j/log4j/1.2.12/log4j-1.2.12.jar",
      "status": "CVE_2021_4104",
      "message": "contains Log4J-1.x <= 1.2.17, JMSAppender.class found",
      "pom_version": "1.x"
    },
    {
      "container": "Package",
      "path": "/home/hynek/war/elastic-apm-java-aws-lambda-layer-1.28.1.zip:elastic-apm-agent-1.28.1.jar",
      "status": "MAYBESAFE",
      "message": "contains Log4J-2.12.1 <= 2.0-beta8 (JndiLookup.class not present)",
      "pom_version": "2.12.1"
    }
  ]
}

Sortie CSV

La sortie CSV contient les colonnes suivantes :

root@kitploit:~
"datetime","ver","ip","fqdn","OS","Release","arch","container","status","path","message","pom_version","product"
"2022-01-24 10:59:36","1.22pre-20220123","10.0.0.1","mylinux","Linux","5.4.0-58-generic","x86_64","Folder","CVE-2022-23302 (6.6), CVE-2022-23305 (8.1), CVE-2022-23307 (8.1)","/home/hynek/war.bak/reload4j/reload4j-1.2.18.0/org/apache/log4j","contains log4j-1.2.18.0","1.2.18.0","log4j"
"2022-01-24 10:59:36","1.22pre-20220123","10.0.0.1","mylinux","Linux","5.4.0-58-generic","x86_64","Package","OLDSAFE","/home/hynek/war.bak/reload4j/reload4j-1.2.18.2.jar","contains reload4j-1.2.18.2","1.2.18.2","reload4j"
"2022-01-24 10:59:36","1.22pre-20220123","10.0.0.1","mylinux","Linux","5.4.0-58-generic","x86_64","Package","OLDSAFE","/home/hynek/war.bak/reload4j/reload4j-1.2.18.1.jar","contains reload4j-1.2.18.1","1.2.18.1","reload4j"
"2022-01-24 10:59:36","1.22pre-20220123","10.0.0.1","mylinux","Linux","5.4.0-58-generic","x86_64","Package","CVE-2019-17571 (9.8), CVE-2021-4104 (7.5), CVE-2022-23302 (6.6), CVE-2022-23305 (8.1), CVE-2022-23307 (8.1)","/home/hynek/war.bak/reload4j/log4j-1.2.17.jar","contains log4j-1.2.17","1.2.17","log4j"
"2022-01-24 10:59:36","1.22pre-20220123","10.0.0.1","mylinux","Linux","5.4.0-58-generic","x86_64","Package","CVE-2022-23302 (6.6), CVE-2022-23305 (8.1), CVE-2022-23307 (8.1)","/home/hynek/war.bak/reload4j/reload4j-1.2.18.0.jar","contains log4j-1.2.18.0","1.2.18.0","log4j"
Télécharger l’outil
nofix
log4jv1
OUICVE-2021-448326.6Moyenne6/7/82.0-alpha72.17.0, excluant 2.3.2/2.12.42.3.2/2.12.4/2.17.1log4jv2
-CVE-2021-425506.6Moyenne-1.01.2.71.2.8logback
OUICVE-2021-451055.9Moyenne6/7/82.0-beta92.16.0, excluant 2.12.32.3.1/2.12.3/2.17.0log4jv2
-CVE-2020-94883.7Faible7/82.0-alpha12.13.12.12.3/2.13.2log4jv2