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
browser-xpi-malware-scanner — Una extensión integral de navegador (.xpi) para escanear malware que detecta muchas tácticas comunes de malware, como: robadores de credenciales, tácticas de ofuscación, esteganografía, payloads base64, trucos con zip, ejecución remota de código, trucos poliglotas y trucos de metadatos, con el objetivo de brindar al analista información sobre dónde se necesita un análisis más profundo. | Kitploit
Herramientas/GitHubGitHub/ernos/browser-xpi-malware-scanner
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoAnálisis ForenseEsteganografíaAnálisis de MalwarePapers e InvestigaciónAprendizaje y Educación
GitHub
ernos/browser-xpi-malware-scanner

browser-xpi-malware-scanner

Ver Repositorio
818hace 4 mesesAún no revisado

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 →

Acerca de

Una extensión integral de navegador (.xpi) para escanear malware que detecta muchas tácticas comunes de malware, como: robadores de credenciales, tácticas de ofuscación, esteganografía, payloads base64, trucos con zip, ejecución remota de código, trucos poliglotas y trucos de metadatos, con el objetivo de brindar al analista información sobre dónde se necesita un análisis más profundo.

Compartir

XPI Analyzer — Escáner de Seguridad para Extensiones de Firefox

Una herramienta de línea de comandos que analiza archivos de extensión de Firefox (.xpi) en busca de signos de malware, ofuscación, cargas ocultas, esteganografía y otras técnicas utilizadas para colar código malicioso más allá de los equipos de revisión de extensiones.

Qué Hace

extension-scanner.py abre una extensión de Firefox y realiza una batería de comprobaciones de seguridad en cada archivo que contiene. Luego produce un informe codificado por colores con los hallazgos clasificados por gravedad.

Guías/Tutoriales sobre cómo usar este escáner para encontrar malware en vivo en la tienda de extensiones de Firefox/Mozilla y examinarlos más a fondo

  • Análisis de malware: Usando browser-xpi-malware-scanner.py para encontrar malware en estado salvaje
  • El bloqueador de anuncios que roba tus clics: Dentro de "Supreme Adblocker for Youtube"
  • Cómo construí un escáner de malware para extensiones de navegador — Y lo usé para exponer un "YouTube Downloader" malicioso
  • Comprobaciones Realizadas

    CategoríaQué Busca
    PermisosPermisos peligrosos o excesivamente amplios (nativeMessaging, <all_urls>, debugger, desktopCapture, etc.)
    Política de Seguridad de Contenidounsafe-inline, unsafe-eval, fuentes de scripts remotos en CSP
    Ofuscación de JavaScripteval(), atob(), abuso del constructor Function(), secuencias de escape hexadecimal, reensamblaje split/join/reverse, literales de cadena codificados, setTimeout con argumentos de cadena
    URLs sospechosasDominios externos codificados clasificados como conocidos-malos (coincidencia en lista de bloqueo → ALTO), desconocidos (no en lista blanca → MEDIO), o conocidos-buenos (en lista blanca → suprimido). Ejecute --update-blocklist para actualizar la lista de bloqueo de dominios desde URLhaus y la lista de Peter Lowe.
    Credenciales y SecretosClaves API, tokens (AWS, GitHub, Slack, Google), contraseñas, claves privadas y direcciones IP codificados
    Cargas Base64Decodifica blobs base64 incrustados y los escanea en busca de ejecutables, scripts y código de red
    Esteganografía PNGDetecta datos adjuntos después de IEND de PNG y decodifica automáticamente el remolque (base64, zlib, gzip y combinaciones); las cargas decodificadas se escanean recursivamente en busca de ofuscación JS, credenciales y URL sospechosas. También detecta tipos de fragmentos desconocidos, anomalías en el canal LSB y entropía de píxeles inusualmente alta
    Metadatos de ArchivoDetección de bytes mágicos de ejecutables (.exe, .elf, .dylib), extensiones dobles (ej. photo.png.js), nombres de archivo sospechosos (keylog, miner, wallet)
    Archivos PolíglotasArchivos que son válidos simultáneamente en dos formatos (ej. HTML + ZIP)

    Niveles de Gravedad

    • CRITICAL — Casi con certeza malicioso; se requiere investigación inmediata
    • HIGH — Fuertemente sospechoso; merece una revisión cuidadosa
    • MEDIUM — Potencialmente riesgoso; revisar en contexto
    • LOW — Preocupación menor; informativo
    • INFO — Metadatos (hash, tamaño de archivo, etc.)

    Instalación

    Paquetes pre-requisitos

    • Python 3.10+ es requerido. python3.11, python3.12 o python3.13
    • **python3-venv** - Requerido si usas entornos virtuales

    Usando entornos virtuales:

    root@kitploit:~
    sudo apt install python3 python3-venv
    git clone https://github.com/ernos/extension-scanner.git
    cd extension-scanner
    
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    

    Paquetes opcionales

    • **python3-numpy** - Recomendado para esteganografía, instalación a nivel de sistema (de lo contrario pip install -r requirements.txt)
    • pillow: Recomendado para esteganografía
    • numpy: Recomendado para esteganografía
      ```bash
      pip install pillow numpy
      #System-wide install on ubuntu:
      sudo apt install python3-pillow python3-numpy
    root@kitploit:~
    git clone https://github.com/ernos/extension-scanner.git
    cd extension-scanner
    chmod +x extension-scanner.py
    mkdir -p ~/.local/share/bin
    ln -s $PWD/extension-scanner.py ~/.local/share/bin/extension-scanner
    
    
    # Requerido para análisis de esteganografía LSB (opcional pero recomendado)
    pip install pillow numpy
    
    # OPCIÓN 1. Solo para el usuario actual:
    # Habilita autocompletado de bash para un uso más sencillo (TAB para autocompletar comandos)
    mkdir -p ~/.local/share/bash-completion/completions
    cp extension-scanner-completions ~/.local/share/bash-completion/completions
    echo "source ~/.local/share/bash-completion/completions/extension-scanner-completions" >> ~/.bashrc
    
    # OPCIÓN 2. Habilita autocompletado globalmente para todos los usuarios (Debería cargarse automáticamente desde tu .bashrc)
    cp extension-scanner-completions /usr/share/bash-completion/completions
    

    Si Pillow/NumPy no están instalados, la herramienta aún se ejecuta: las comprobaciones de LSB y entropía de píxeles simplemente se omiten y se imprime una advertencia.


    Uso

    root@kitploit:~
    usage: xpiscanner [-h] [--update-blocklist] [--min-severity {CRITICAL,HIGH,MEDIUM,LOW,INFO}] [--json] [--compact] [-v] [-m] [--scans CHECK [CHECK ...]]
                      [targets ...]
    
    Firefox Extension Scanner - Scans XPI files for security risks and malware indicators
    
    positional arguments:
      targets               One or more XPI files or directories containing XPIs to analyze
    
    options:
      -h, --help            show this help message and exit
      --update-blocklist, --update, -u
                            Fetch fresh domain blocklists from URLhaus and Peter Lowe's list, merge with the bundled snapshot, and saves to
                            /home/peb/projects/Firefox-Extensions/extension-scanner/blocklist.json. Exits after updating.
      --min-severity {CRITICAL,HIGH,MEDIUM,LOW,INFO}
                            Minimum severity to display (CRITICAL, HIGH, MEDIUM, LOW, INFO; default: INFO)
      --json                Output results as JSON instead of formatted text
      --compact, -c         Print each finding on 1-2 lines instead of the default 3-line format
      -v, --verbose         Enable verbose output: show additional context for findings
      -m, --manifest        Show full extension manifest for each target
      --scans, -s CHECK [CHECK ...]
                            Limit analysis to specific check types. Choices: anti-analysis, api-abuse, credentials, cross-file,
                            file-meta, hidden-elements, obfuscation, payloads, permissions, polyglot, remote-code,
                            signatures, steganography, time-bomb, zip-tricks. Omit to run all checks (default).
    
        extension-scanner.py — Analyze Firefox (and other browsers) extension XPI files for security risks and malware indicators.
    
        Read README.md for information on how to interpret findings, limitations, and best practices for use.  
        This tool is intended for security researchers, analysts, and advanced users who want to perform a 
        comprehensive static analysis of browser extensions. It should work well for other browsers as well, 
        but this has only been tested on firefox.
    
    Usage:
        python3 extension-scanner.py [OPTIONS] targets...
    
    Targets can be individual .xpi files or directories containing .xpi files. Use glob patterns (e.g. *.xpi) for convenience.
    
    Available check types:
        permissions               Dangerous/broad manifest permissions and CSP issues
        remote-code               Background pages or service workers loaded from remote URLs
        obfuscation               eval/atob/encoding tricks, suspicious URLs, high-entropy strings
        payloads                  Base64-encoded blobs decoded and scanned for executables/scripts
        steganography             PNG appended data (auto-decoded via base64/zlib/gzip), unknown chunks, LSB channel analysis
        credentials               Hardcoded API keys, tokens, passwords, private keys, IP addresses
        file-meta                 Magic bytes, double extensions, suspicious filenames, file entropy
        polyglot                  Files valid in two formats simultaneously (e.g. HTML+ZIP)
        zip-tricks                Path traversal, null bytes, duplicate entries, ZIP comments
        cross-file                HTML class tokens cross-referenced against JS localStorage keys
        signatures                Known strings from confirmed malicious extension families (qingcaila, YTMP4, etc.)
        api-abuse                 Browser API calls indicating data theft or exfiltration (cookies, tabs, history, keylogger, clipboard, executeScript)
        hidden-elements           Invisible iframes, zero-dimension element injection, tracking pixels (new Image().src)
        time-bomb                 Long-delay setTimeout, Date.now() gates, localStorage install-date checks, Math.random() gates
        anti-analysis             navigator.webdriver, zero-size window, bare debugger statement, performance.now() timing
    
    Examples:
        python3 extension-scanner.py extension.xpi
        python3 extension-scanner.py *.xpi
        python3 extension-scanner.py /path/to/extensions/
        python3 extension-scanner.py a.xpi b.xpi --min-severity HIGH
        python3 extension-scanner.py ext.xpi --scans obfuscation payloads
        python3 extension-scanner.py ext.xpi --s steganography zip-tricks file-meta
        python3 extension-scanner.py ext.xpi --verbose
        python3 extension-scanner.py --update-blocklist
        python3 extension-scanner.py --manifest
    
    Tips:
        - Make sure to source scanner-completions.sh from your .bashrc or .zshrc to enable tab completion for --scans categories and target file paths.
        - Use --min-severity to focus on the most critical findings first.
        - Use --scans to limit the analysis to specific categories of checks if you're looking for something specific or want to speed up the scan.
        - Review the full manifest with --manifest for context on permissions, content scripts, and other extension metadata that can help interpret findings.
        - Regularly update the blocklist with --update-blocklist to ensure the latest malicious domains are included in the checks.
    
    Credits:
        Developed by Ernos @ https://www.yourdev.net
        Email: max at yourdev.net
        GitHub: https://www.github.com/ernos/extension-scanner
    

    Opciones

    BanderaDescripción
    --update-blocklistObtiene listas de dominios frescas de URLhaus y la lista de servidores de anuncios/malware de Peter Lowe, las fusiona con la instantánea incluida y las guarda en blocklist.json junto al script. Sale después de actualizar.
    targetsUno o más archivos .xpi o directorios
    --min-severityFiltrar salida: CRITICAL, HIGH, MEDIUM, LOW, INFO (por defecto: INFO)
    --jsonEmitir hallazgos como un documento JSON en lugar del informe legible
    --verbose o -vImprime el contenido de manifest.json y también incluye aproximadamente 5 líneas de código alrededor del patrón sospechoso encontrado
    --checksEscanear solo estas categorías de comprobación específicas (ver más abajo)

    Categorías de comprobación disponiblesDescripción de las comprobaciones en la categoría
    permissionsPermisos de manifiesto peligrosos/amplios y problemas de CSP
    remote-codePáginas de fondo o service workers cargados desde URL remotas
    obfuscationTrucos de eval/atob/codificación, URL sospechosas, cadenas de alta entropía
    payloadsBlobs codificados en base64 decodificados y escaneados en busca de ejecutables/scripts
    steganographyDatos adjuntos a PNG, fragmentos desconocidos, análisis de canal LSB
    credentialsClaves API, tokens, contraseñas, claves privadas, direcciones IP codificados
    file-metaBytes mágicos, extensiones dobles, nombres de archivo sospechosos, entropía de archivo
    polyglotArchivos válidos en dos formatos simultáneamente (ej. HTML+ZIP)
    zip-tricksPath traversal, bytes nulos, entradas duplicadas, comentarios ZIP
    cross-fileTokens de clase HTML referenciados cruzadamente con claves de localStorage JS
    api-abuseLlamadas a la API del navegador que indican robo o exfiltración de datos (cookies, pestañas, historial, teclado, portapapeles). CRÍTICO cuando la recolección y el envío de red aparecen en el mismo archivo.
    hidden-elementsInyección de iframes invisibles y píxeles de seguimiento. ALTO cuando el iframe está oculto y se añade al DOM.
    time-bombsetTimeout de retardo largo, compuertas aritméticas Date.now(), fecha de instalación en localStorage, umbral Math.random().
    anti-analysisnavigator.webdriver, ventana de tamaño cero, sentencia debugger simple, aritmética de performance.now().

    Leyendo la Salida

    root@kitploit:~
    ════════════════════════════════════════════════════════════════════════════
      XPI ANALYZER — example.xpi
    ════════════════════════════════════════════════════════════════════════════
      Overall verdict: HIGH RISK
    
      Findings: 1 CRITICAL  3 HIGH  2 MEDIUM  1 LOW
    
      ── CRITICAL ────────────────────────────────────────────────────────────
      [CRITICAL ] [JS_OBFUSCATION] content.js
               eval() call — can execute arbitrary code from strings
               Evidence: var x = eval(atob("dmFyIGE9MTs…"))
    
      ── HIGH ────────────────────────────────────────────────────────────────
      [HIGH     ] [PERMISSION] manifest.json
               Dangerous permission: 'nativeMessaging' — Can spawn native OS …
               Evidence: permissions: ['nativeMessaging', 'storage', '<all_urls>']
      …
    

    Al analizar múltiples archivos, se imprime una tabla de comparación después de los informes individuales mostrando todas las extensiones lado a lado.


    Códigos de Salida

    CódigoSignificado
    0Sin hallazgos CRÍTICOS o ALTOS
    1Al menos un hallazgo ALTO
    2Al menos un hallazgo CRÍTICO

    Esto facilita su uso en tuberías CI o scripts de shell:

    root@kitploit:~
    python3 extension-scanner.py extension.xpi --min-severity HIGH
    if [ $? -eq 2 ]; then echo "CRITICAL issues found!"; fi
    

    Limitaciones

    • Solo análisis estático. La herramienta no ejecuta ningún código. Las técnicas dinámicas (cargas obtenidas en tiempo de ejecución, polimorfismo del lado del servidor) no serán detectadas.
    • Las heurísticas de esteganografía LSB producen falsos positivos en algunas imágenes naturalmente ruidosas o muy comprimidas.
    • Los patrones de ofuscación se centran en técnicas comunes; empaquetadores personalizados o novedosos pueden no generar advertencias.
    • Los dominios en lista blanca (API de Google, Mozilla, W3C) no se marcan en las comprobaciones de URL. Las extensiones legítimas que llaman a otras CDN de confianza pueden aparecer como hallazgos HIGH.
    • La herramienta no envía archivos a ningún servicio externo. Todo el análisis es local.

    Autor

    Maximilian Cornett

    Contacto

    https://www.yourdev.net https://www.github.com/ernos

    Licencia

    GNU General Public License - Esta herramienta está destinada únicamente a la investigación de seguridad y análisis defensivo.

    Descargar herramienta
    Trucos ZIP
    Entradas de path traversal, bytes nulos en nombres de archivo, entradas duplicadas que podrían engañar a los analizadores, comentarios ZIP con cargas
    Código RemotoPáginas en segundo plano o service workers cargados desde URL remotas
    Alta EntropíaArchivos o literales de cadena con entropía sospechosamente alta (probables cargas cifradas o comprimidas)
    Abuso de APILlamadas a la API de extensiones del navegador que indican robo o exfiltración de datos: cookies.getAll({}), tabs.query({}), history.search, listeners de teclado, lecturas de portapapeles, scripting.executeScript con una función dinámica. Se eleva a CRÍTICO cuando una llamada de recolección de datos se combina con un envío de red saliente en el mismo archivo.
    Elementos OcultosIframes invisibles creados dinámicamente (display:none, dimensiones cero) inyectados en el DOM — pings de afiliados silenciosos o canales C2. Píxeles de seguimiento mediante new Image().src apuntando a URL externas.
    Bomba de TiemposetTimeout/setInterval con retrasos ≥ 5 minutos; compuertas aritméticas Date.now(); comprobaciones de fecha de instalación en localStorage que activan comportamiento días después de la primera ejecución; compuertas de umbral Math.random() que se activan solo en una fracción de las cargas de página.
    Anti-AnálisisComprobaciones de navigator.webdriver; comparaciones de ventanas de ancho/alto cero; sentencias debugger simples; aritmética de performance.now() utilizada para detección de sandbox basada en tiempos.