Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
log4j-finder — Encuentra versiones vulnerables de Log4j2 en el disco y también dentro de archivos Java Archive (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105) | Kitploit
Herramientas/GitHubGitHub/fox-it/log4j-finder
Análisis EstáticoEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesAnálisis de CódigoSeguridad de Cadena de SuministroRespuesta a Incidentes
GitHubfox-it/log4j-finder

log4j-finder

Encuentra versiones vulnerables de Log4j2 en el disco y también dentro de archivos Java Archive (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105)

Ver Repositorio
4399648hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

log4j-finder

Un script en Python3 para escanear el sistema de archivos y encontrar Log4j2 vulnerable a Log4Shell (CVE-2021-44228 y CVE-2021-45046 y CVE-2021-45105). Escanea recursivamente tanto en disco como dentro de archivos Java Archive (JAR) (anidados).

resultados de log4j-finder

Cómo funciona

log4j-finder identifica librerías log4j2 en tu sistema de archivos usando una lista de hashes MD5 conocidos como malos y conocidos como buenos de archivos específicos (actualmente solo JndiManager.class) presentes en los paquetes log4j2-core-*; el paquete principal afectado por log4shell. Busca estos archivos dentro de archivos Java Archive y en el sistema de archivos. La versión de se identifica entonces basándose en el hash MD5 de este archivo.

log4j2

Para optimizar la velocidad de escaneo, busca en el sistema de archivos y procesa SOLO los siguientes nombres de archivo:

  • Todos los archivos con extensiones de archivo Java ARchive en el nombre (también anidados en estos archivos):
    • *.jar, *.war, *.ear
  • Nombres de archivo para los que tenemos hashes conocidos como malos y buenos (también dentro de los archivos anteriores, y anidados):
    • JndiManager.class

Si el archivo coincide con una de las extensiones mencionadas anteriormente, se revisará dentro de estos archivos (todo en memoria, no se descomprime nada) para buscar los nombres de archivo para los que el script tiene hashes conocidos. También busca dentro de archivos anidados, por ejemplo, un archivo JAR dentro de un archivo WAR.

El script NO escanea otras extensiones de archivos comprimidos como 7z, RAR, TAR, BZ2, etc. Así que, por ejemplo, si un archivo JAR está dentro de un archivo 7z, el script no lo encontrará. La razón es que Java solo puede cargar formatos Java ARchive, por lo que solo escaneamos esos.

Los hashes MD5 desconocidos se muestran como UNKNOWN; esto podría ocurrir si un paquete Java que no es log4j2 usa el mismo nombre de archivo que este script busca. Lo más probable es que no sea log4j2 si la ruta de archivo identificada no contiene referencias a org/apache/logging/log4j. Sin embargo, se recomienda una verificación manual.

Descarga y ejecución

Puedes instalar log4j-finder usando uno de los siguientes métodos:

Usando el binario de la versión publicada

Puedes descargar el binario correcto para tu sistema operativo:

  • Windows última versión (firmado): log4j-finder-signed.exe
    • Los binarios no firmados también están disponibles, pero pueden activar tu antivirus debido a que es un ejecutable de PyInstaller. También puedes generar el ejecutable tú mismo; consulta "Generación de ejecutables de log4j-finder" para saber cómo hacerlo.
  • Linux x86_64 última versión: log4j-finder

Si estás en Linux, también puedes descargar la última versión y ejecutarla usando una de las siguientes formas:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -o log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -O log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder

Usando Python 3

Para distribuciones con Python 3.6+ instalado, uno de los siguientes métodos también funciona:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py -o log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
sudo python3 log4j-finder.py

Generación de ejecutables de log4j-finder

Ejecutables generados automáticamente

Hay una GitHub Action en el repositorio que genera automáticamente un binario de Windows y uno de Linux del script log4j-finder.py usando PyInstaller en cada commit. Los artefactos de compilación de estas ejecuciones del flujo de trabajo se usan para adjuntarlos a la página de Releases.

Somos conscientes de que a algunos proveedores de antivirus no les gustan los binarios de Windows; en ese caso, recomendamos generar el ejecutable tú mismo siguiendo los siguientes pasos (ten en cuenta que ahora también proporcionamos binarios firmados).

Generación del ejecutable de Windows

  1. Si no tienes Python 3.6 o superior instalado, descárgalo primero desde https://www.python.org/downloads/

    • Elige Python 3.8.10 si quieres que tu binario funcione en Windows 7:
      • Descarga Instalador de Windows de Python 3.8.10 (32 bits)
      • Descarga Instalador de Windows de Python 3.8.10 (64 bits)
    • Asegúrate de elegir durante la instalación: Add Python 3.x to PATH, esto hace que los siguientes pasos sean mucho más fáciles.
  2. Abre un símbolo del sistema y usa pip para instalar el paquete pyinstaller:

    root@kitploit:~
    pip install pyinstaller
    
    # En la salida verás dónde está instalado pyinstaller, por ejemplo:
    # C:\Users\User\AppData\Roaming\Python\Python310\Scripts
    #
    # Verifícalo usando --version
    C:\Users\User\AppData\Roaming\Python\Python310\Scripts\pyinstaller.exe --version
    4.7
    
  3. Opcionalmente, instala el paquete colorama para añadir soporte de colores:

    root@kitploit:~
    pip install colorama
    
  4. Descarga la última versión del script log4j-finder.py y luego ejecuta PyInstaller:

root@kitploit:~
pyinstaller --onefile --hidden-import colorama log4j-finder.py

El ejecutable de Windows está entonces en el directorio dist: dist\log4j-finder.exe

Generación del ejecutable de Linux

Ejemplo dado para Debian 11:

root@kitploit:~
# Instala PyInstaller usando pip3
sudo apt update
sudo apt install python3-pip git
pip3 install --user pyinstaller

# Git clone y compila usando PyInstaller
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
~/.local/bin/pyinstaller --onefile log4j-finder.spec

# Verifica que el binario funciona
./dist/log4j-finder --help

Uso

Ejemplo de uso para escanear una ruta (por defecto /):

root@kitploit:~
$ python3 log4j-finder.py /path/to/scan

O directamente un archivo JAR:

root@kitploit:~
$ python3 log4j-finder.py /path/to/jarfile.jar

O múltiples directorios y/o archivos:

root@kitploit:~
$ python3 log4j-finder.py /path/to/dir1 /path/to/dir2 /path/to/jarfile.jar

Excluir archivos o directorios:

root@kitploit:~
$ python3 log4j-finder.py / --exclude "/*/.dontgohere" --exclude "/home/user/*.war"

Ten en cuenta que en Windows solo escanea la unidad raíz c:\ si no proporcionas argumentos adicionales. Recomendamos especificar en la línea de comandos las unidades que necesitas escanear, como por ejemplo (las unidades que no existen se omiten):

root@kitploit:~
log4j-finder.exe c:\ d:\ e:\ f:\

Los archivos o directorios a los que no se puede acceder (errores de Permiso denegado) no se muestran.

Si quieres ver más salida, puedes usar el flag -v para modo verboso, o -vv para modo depuración (solo recomendado para fines de depuración).

Argumentos de la aplicación:

root@kitploit:~
positional arguments:
  PATH                  Directory or file(s) to scan (recursively) (default:
                        ['/'])

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         verbose output (-v is info, -vv is debug) (default: 0)
  -n, --no-color        disable color output (default: False)
  -q, --quiet           be more quiet, disables banner and summary (default:
                        False)
  -b, --no-banner       disable banner (default: False)
  -V, --version         show program's version number and exit
  -e PATTERN, --exclude PATTERN
                        exclude files/directories by pattern (can be used
                        multiple times) (default: None)

Los archivos se escanean recursivamente, tanto en disco como en archivos Java Archive (anidados).

Descargar herramienta