Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/ernos/browser-xpi-malware-scanner
Análise EstáticaAnálise de VulnerabilidadesAnálise de CódigoAnálise ForenseEsteganografiaAnálise de MalwarePapers e PesquisaAprendizado e Educação
GitHub
ernos/browser-xpi-malware-scanner

browser-xpi-malware-scanner

Ver Repositório
818há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Sobre

Um scanner abrangente de malware para extensões de navegador (.xpi) que procura por muitos truques comuns de malware, como:, táticas de ofuscação de roubadores de credenciais, esteganografia, payloads base64, truques de zip, execução remota de código, truques poliglota, truques de metadados, na tentativa de fornecer ao analista informações sobre onde é necessária uma análise mais aprofundada.

Compartilhar

Analisador XPI — Scanner de Segurança para Extensões Firefox

Uma ferramenta de linha de comando que analisa arquivos de extensão do Firefox (.xpi) em busca de sinais de malware, ofuscação, payloads ocultos, esteganografia e outras técnicas usadas para inserir código malicioso sem ser detectado pelas equipes de revisão de extensões.

O Que Faz

extension-scanner.py abre uma extensão do Firefox e realiza uma bateria de verificações de segurança em todos os arquivos dentro dela. Em seguida, produz um relatório colorido com os achados classificados por gravidade.

Guias/Tutoriais sobre como usar este scanner para encontrar malware ao vivo na loja de extensões do Firefox/Mozilla e examiná-los mais a fundo

  • Malware Analysis: Using browser-xpi-malware-scanner.py to find malware in the wild
  • The Ad-Blocker That Steals Your Clicks: Inside "Supreme Adblocker for Youtube"
  • How I Built a Browser Extension Malware Scanner — And Used It to Expose a Malicious "YouTube Downloader"
  • Verificações Realizadas

    CategoriaO Que Procura
    PermissõesPermissões perigosas ou excessivamente amplas (nativeMessaging, <all_urls>, debugger, desktopCapture, etc.)
    Política de Segurança de Conteúdounsafe-inline, unsafe-eval, fontes de script remotas na CSP
    Ofuscação de JavaScripteval(), atob(), abuso do construtor Function(), sequências de escape hex, remontagem split/join/reverse, literais de string codificados, setTimeout com argumentos de string
    URLs SuspeitasDomínios externos codificados classificados como conhecido-ruim (acerto na blocklist → ALTO), desconhecido (não na whitelist → MÉDIO) ou conhecido-bom (na whitelist → suprimido). Execute --update-blocklist para atualizar a blocklist de domínios a partir de URLhaus e da lista de Peter Lowe.
    Credenciais e SegredosChaves de API, tokens (AWS, GitHub, Slack, Google), senhas, chaves privadas e endereços IP codificados
    Payloads Base64Decodifica blobs base64 incorporados e os escaneia em busca de executáveis, scripts e código de rede
    Esteganografia PNGDetecta dados anexados após IEND do PNG e decodifica automaticamente o trailer (base64, zlib, gzip e combinações); os payloads decodificados são escaneados recursivamente em busca de ofuscação JS, credenciais e URLs suspeitas. Também detecta tipos de chunk desconhecidos, anomalias no canal LSB e entropia de pixel anormalmente alta
    Metadados de ArquivoDetecção de bytes mágicos de executáveis (.exe, .elf, .dylib), extensões duplas (ex.: photo.png.js), nomes de arquivo suspeitos (keylog, miner, wallet)
    Arquivos PoliglotasArquivos que são simultaneamente válidos em dois formatos (ex.: HTML + ZIP)
    Truques ZIP

    Níveis de Gravidade

    • CRÍTICO — Quase certamente malicioso; requer investigação imediata
    • ALTO — Fortemente suspeito; merece revisão cuidadosa
    • MÉDIO — Potencialmente arriscado; revisar no contexto
    • BAIXO — Preocupação menor; informativo
    • INFO — Metadados (hash, tamanho do arquivo, etc.)

    Instalação

    Pacotes pré-requisitos

    • Python 3.10+ é necessário. python3.11, python3.12 ou python3.13
    • **python3-venv** - Necessário se usar ambientes virtuais

    Usando ambientes virtuais:

    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
    

    Pacotes opcionais

    • **python3-numpy** - Recomendado para esteganografia, instalação em todo o sistema (caso contrário pip install -r requirements.txt)
    • pillow: Recomendado para esteganografia
    • numpy: Recomendado para esteganografia
      ```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
    
    
    # Required for LSB steganography analysis (optional but recommended)
    pip install pillow numpy
    
    # OPTION 1. Only for current user:
    # Enable bash completions for simpler use (TAB for autocompleting commands)
    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
    
    # OPTION 2. Enable completions globally for all users (Should be auto-sourced from your .bashrc)
    cp extension-scanner-completions /usr/share/bash-completion/completions
    

    Se Pillow/NumPy não estiverem instalados, a ferramenta ainda funciona — as verificações de LSB e entropia de pixel são simplesmente ignoradas e um aviso é exibido.


    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
    

    Opções

    FlagDescrição
    --update-blocklistBusca listas de domínios atualizadas de URLhaus e da lista de servidores de anúncios/malware de Peter Lowe, mescla com o snapshot incluído e salva em blocklist.json ao lado do script. Sai após a atualização.
    targetsUm ou mais arquivos .xpi ou diretórios
    --min-severityFiltra a saída: CRITICAL, HIGH, MEDIUM, LOW, INFO (padrão: INFO)
    --jsonEmite os achados como um documento JSON em vez do relatório legível
    --verbose ou -vExibe o conteúdo de manifest.json e também inclui ~5 linhas de código ao redor do padrão suspeito encontrado
    --checksEscaneia apenas estas categorias de verificação específicas (veja abaixo)

    Categorias de verificação disponíveisDescrição das verificações na categoria
    permissionsPermissões de manifesto perigosas/amplas e problemas de CSP
    remote-codePáginas de fundo ou service workers carregados de URLs remotas
    obfuscationTruques de eval/atob/codificação, URLs suspeitas, strings de alta entropia
    payloadsBlobs codificados em Base64 decodificados e escaneados em busca de executáveis/scripts
    steganographyDados anexados a PNG, chunks desconhecidos, análise de canal LSB
    credentialsChaves de API, tokens, senhas, chaves privadas, endereços IP codificados
    file-metaBytes mágicos, extensões duplas, nomes de arquivo suspeitos, entropia de arquivo
    polyglotArquivos válidos em dois formatos simultaneamente (ex.: HTML+ZIP)
    zip-tricksPath traversal, bytes nulos, entradas duplicadas, comentários ZIP
    cross-fileTokens de classe HTML referenciados cruzadamente com chaves de localStorage JS
    api-abuseChamadas de API do navegador que indicam roubo de dados ou exfiltração (cookies, tabs, history, teclado, área de transferência). CRÍTICO quando coleta + envio de rede aparecem no mesmo arquivo.
    hidden-elementsInjeção de iframe invisível e pixels de rastreamento. ALTO quando iframe está oculto + anexado ao DOM.
    time-bombsetTimeout com atraso longo, portas aritméticas Date.now(), data de instalação localStorage, limite Math.random().
    anti-analysisnavigator.webdriver, janela de tamanho zero, instrução debugger simples, aritmética performance.now().

    Lendo a Saída

    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>']
      …
    

    Ao analisar múltiplos arquivos, uma tabela de comparação é exibida após os relatórios individuais, mostrando todas as extensões lado a lado.


    Códigos de Saída

    CódigoSignificado
    0Nenhum achado CRÍTICO ou ALTO
    1Pelo menos um achado ALTO
    2Pelo menos um achado CRÍTICO

    Isso torna simples o uso em pipelines de CI ou scripts shell:

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

    Limitações

    • Apenas análise estática. A ferramenta não executa nenhum código. Técnicas dinâmicas (payloads obtidos em tempo de execução, polimorfismo no servidor) não serão detectadas.
    • Heurísticas de esteganografia LSB produzem falsos positivos em algumas imagens naturalmente ruidosas ou fortemente comprimidas.
    • Padrões de ofuscação focam em técnicas comuns; empacotadores personalizados ou novos podem não disparar alertas.
    • Domínios na whitelist (APIs do Google, Mozilla, W3C) não são sinalizados nas verificações de URL. Extensões legítimas que chamam outras CDNs confiáveis podem aparecer como achados HIGH.
    • A ferramenta não envia arquivos para nenhum serviço externo. Toda a análise é local.

    Autor

    Maximilian Cornett

    Contato

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

    Licença

    GNU General Public License - Esta ferramenta é destinada apenas a pesquisa de segurança e análise defensiva.

    Baixar ferramenta
    Entradas de path traversal, bytes nulos em nomes de arquivo, entradas duplicadas que podem enganar parsers, comentários ZIP carregando payloads
    Código RemotoPáginas de fundo ou service workers carregados de URLs remotas
    Alta EntropiaArquivos ou literais de string com entropia suspeitamente alta (provavelmente payloads criptografados ou comprimidos)
    Abuso de APIChamadas de API de extensão de navegador que indicam roubo de dados ou exfiltração: cookies.getAll({}), tabs.query({}), history.search, listeners de teclado, leituras de área de transferência, scripting.executeScript com uma função dinâmica. Escala para CRÍTICO quando uma chamada de coleta de dados é pareada com um envio de rede de saída no mesmo arquivo.
    Elementos OcultosIframes invisíveis criados dinamicamente (display:none, dimensões zero) injetados no DOM — pings de afiliados silenciosos ou canais C2. Pixels de rastreamento via new Image().src apontando para URLs externas.
    Bomba-RelógiosetTimeout/setInterval com atrasos ≥ 5 minutos; portas aritméticas Date.now(); verificações de data de instalação localStorage que ativam comportamento dias após a primeira execução; portas de limite Math.random() que disparam em apenas uma fração dos carregamentos de página.
    Anti-AnáliseVerificações de navigator.webdriver; comparações de janela com largura/altura zero; instruções debugger simples; aritmética performance.now() usada para detecção de sandbox baseada em tempo.