Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/ernos/browser-xpi-malware-scanner
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceInformatica ForenseSteganografiaAnalisi MalwarePaper e RicercaApprendimento e Formazione
GitHub
ernos/browser-xpi-malware-scanner

browser-xpi-malware-scanner

Vedi Repository
8184 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

Uno scanner completo di malware per estensioni del browser (.xpi) che controlla molti trucchi comuni dei malware come:, tattiche di offuscamento dei furti di credenziali, steganografia, payload in base64, trucchi zip, esecuzione remota di codice, trucchi poliglotti, trucchi dei metadati, nel tentativo di fornire all'analista informazioni su dove è necessaria un'analisi più approfondita.

Condividi

XPI Analyzer — Scanner di Sicurezza per Estensioni Firefox

Uno strumento da riga di comando che analizza i file di estensione di Firefox (.xpi) alla ricerca di segni di malware, offuscamento, payload nascosti, steganografia e altre tecniche utilizzate per introdurre codice malevolo oltre i team di revisione delle estensioni.

Cosa Fa

extension-scanner.py apre un'estensione di Firefox ed esegue una batteria di controlli di sicurezza su ogni file al suo interno. Quindi produce un report con codice colore con i risultati classificati per gravità.

Guide/Tutorial su come usare questo scanner per trovare malware live sul negozio di estensioni Firefox/Mozilla ed esaminarli ulteriormente

  • 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"
  • Controlli Effettuati

    CategoriaCosa Cerca
    PermessiPermessi pericolosi o eccessivamente ampi (nativeMessaging, <all_urls>, debugger, desktopCapture, ecc.)
    Content Security Policyunsafe-inline, unsafe-eval, sorgenti di script remoti nel CSP
    Offuscamento JavaScripteval(), atob(), abuso del costruttore Function(), sequenze di escape hex, riassemblaggio split/join/reverse, stringhe letterali codificate, setTimeout con argomenti stringa
    URL SospettiDomini esterni hardcoded classificati come noti-cattivi (hit nella blocklist → ALTO), sconosciuti (non nella allowlist → MEDIO), o noti-buoni (in allowlist → soppressi). Esegui --update-blocklist per aggiornare la blocklist dei domini da URLhaus e dalla lista di Peter Lowe.
    Credenziali e SegretiChiavi API hardcoded, token (AWS, GitHub, Slack, Google), password, chiavi private e indirizzi IP
    Payload Base64Decodifica blob base64 incorporati e li scannerizza per eseguibili, script e codice di rete
    Steganografia PNGRileva dati aggiunti dopo il marker PNG IEND e decodifica automaticamente il trailer (base64, zlib, gzip e combinazioni); i payload decodificati vengono scansionati ricorsivamente per offuscamento JS, credenziali e URL sospetti. Rileva anche tipi di chunk sconosciuti, anomalie nei canali LSB ed entropia dei pixel insolitamente alta
    Metadati FileRilevamento dei magic byte di eseguibili (.exe, .elf, .dylib), doppie estensioni (es. photo.png.js), nomi di file sospetti (keylog, miner, wallet)
    File PoliglottiFile validi contemporaneamente in due formati (es. HTML + ZIP)
    Trucchi ZIPVoci con path traversal, byte nulli nei nomi file, voci duplicate che potrebbero ingannare i parser, commenti ZIP contenenti payload

    Livelli di Gravità

    • CRITICO — Quasi certamente malevolo; indagine immediata richiesta
    • ALTO — Fortemente sospetto; merita un'attenta revisione
    • MEDIO — Potenzialmente rischioso; rivedere nel contesto
    • BASSO — Preoccupazione minore; informativo
    • INFO — Metadati (hash, dimensione file, ecc.)

    Installazione

    Pacchetti Prerequisiti

    • Python 3.10+ è richiesto. python3.11, python3.12 o python3.13
    • python3-venv - Richiesto se si utilizzano ambienti virtuali

    Utilizzo di ambienti virtuali:

    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
    

    Pacchetti Opzionali

    • python3-numpy - Raccomandato per la steganografia, installazione a livello di sistema (altrimenti pip install -r requirements.txt)
    • pillow: Raccomandato per la steganografia
    • numpy: Raccomandato per la steganografia
      ```bash
      pip install pillow numpy
      #Installazione a livello di sistema su 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
    
    
    # Richiesto per l'analisi della steganografia LSB (opzionale ma raccomandato)
    pip install pillow numpy
    
    # OPZIONE 1. Solo per l'utente corrente:
    # Abilita i completamenti bash per un uso più semplice (TAB per completamento automatico dei comandi)
    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
    
    # OPZIONE 2. Abilita i completamenti globalmente per tutti gli utenti (dovrebbe essere auto-sourced dal tuo .bashrc)
    cp extension-scanner-completions /usr/share/bash-completion/completions
    

    Se Pillow/NumPy non sono installati, lo strumento funziona comunque: i controlli LSB e di entropia dei pixel vengono semplicemente saltati e viene stampato un avviso.


    Utilizzo

    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
    

    Opzioni

    FlagDescrizione
    --update-blocklistRecupera elenchi di domini freschi da URLhaus e dalla lista di server pubblicitari/malware di Peter Lowe, li unisce con lo snapshot incluso e li salva in blocklist.json accanto allo script. Esce dopo l'aggiornamento.
    targetsUno o più file .xpi o directory
    --min-severityFiltra l'output: CRITICAL, HIGH, MEDIUM, LOW, INFO (default: INFO)
    --jsonEmette i risultati come documento JSON invece del report leggibile
    --verbose o -vStampa il contenuto di manifest.json e include anche circa 5 righe di codice intorno allo schema sospetto trovato
    --checksEsegue la scansione solo per queste categorie di controlli specifiche (vedi sotto)

    Categorie di controlli disponibiliDescrizione dei controlli nella categoria
    permissionsPermessi del manifest pericolosi/ampi e problemi CSP
    remote-codePagine di background o service worker caricati da URL remoti
    obfuscationTrucchi eval/atob/codifica, URL sospetti, stringhe ad alta entropia
    payloadsBlob codificati in Base64 decodificati e scansionati per eseguibili/script
    steganographyDati aggiunti PNG, chunk sconosciuti, analisi canale LSB
    credentialsChiavi API hardcoded, token, password, chiavi private, indirizzi IP
    file-metaMagic byte, doppie estensioni, nomi file sospetti, entropia file
    polyglotFile validi in due formati contemporaneamente (es. HTML+ZIP)
    zip-tricksPath traversal, byte nulli, voci duplicate, commenti ZIP
    cross-fileToken di classe HTML incrociati con chiavi localStorage JS
    api-abuseChiamate API del browser che indicano furto o esfiltrazione di dati (cookies, tabs, history, tastiera, clipboard). CRITICO quando raccolta + invio di rete appaiono nello stesso file.
    hidden-elementsIniezione di iframe invisibili e pixel di tracciamento. ALTO quando iframe è nascosto + aggiunto al DOM.
    time-bombsetTimeout con lungo ritardo, gate aritmetici Date.now(), data di installazione localStorage, soglia Math.random().
    anti-analysisnavigator.webdriver, finestra di dimensione zero, dichiarazione debugger nuda, aritmetica performance.now().

    Lettura dell'Output

    root@kitploit:~
    ════════════════════════════════════════════════════════════════════════════
      XPI ANALYZER — example.xpi
    ════════════════════════════════════════════════════════════════════════════
      Verdetto complessivo: ALTO RISCHIO
    
      Risultati: 1 CRITICO  3 ALTO  2 MEDIO  1 BASSO
    
      ── CRITICO ────────────────────────────────────────────────────────────
      [CRITICO ] [JS_OBFUSCATION] content.js
               Chiamata eval() — può eseguire codice arbitrario da stringhe
               Evidenza: var x = eval(atob("dmFyIGE9MTs…"))
    
      ── ALTO ────────────────────────────────────────────────────────────────
      [ALTO    ] [PERMISSION] manifest.json
               Permesso pericoloso: 'nativeMessaging' — Può avviare OS nativo …
               Evidenza: permissions: ['nativeMessaging', 'storage', '<all_urls>']
      …
    

    Quando si analizzano più file, dopo i report individuali viene stampata una tabella di confronto che mostra tutte le estensioni affiancate.


    Codici di Uscita

    CodiceSignificato
    0Nessun risultato CRITICO o ALTO
    1Almeno un risultato ALTO
    2Almeno un risultato CRITICO

    Ciò rende semplice l'uso in pipeline CI o script shell:

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

    Limitazioni

    • Solo analisi statica. Lo strumento non esegue alcun codice. Le tecniche dinamiche (payload recuperati in esecuzione, polimorfismo lato server) non verranno rilevate.
    • Le euristiche di steganografia LSB producono falsi positivi su alcune immagini naturalmente rumorose o fortemente compresse.
    • I pattern di offuscamento si concentrano su tecniche comuni; packer personalizzati o innovativi potrebbero non attivare avvisi.
    • I domini in allowlist (API Google, Mozilla, W3C) non vengono segnalati per i controlli URL. Estensioni legittime che chiamano altri CDN fidati possono apparire come risultati ALTO.
    • Lo strumento non invia file a nessun servizio esterno. Tutta l'analisi è locale.

    Autore

    Maximilian Cornett

    Contatto

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

    Licenza

    GNU General Public License - Questo strumento è destinato esclusivamente alla ricerca sulla sicurezza e all'analisi difensiva.

    Scarica lo strumento
    Codice RemotoPagine di background o service worker caricati da URL remoti
    Alta EntropiaFile o stringhe letterali con entropia sospettosamente alta (payload probabilmente crittografati o compressi)
    Abuso APIChiamate API delle estensioni browser che indicano furto di dati o esfiltrazione: cookies.getAll({}), tabs.query({}), history.search, listener di tastiera, letture clipboard, scripting.executeScript con funzione dinamica. Viene elevato a CRITICO quando una chiamata di raccolta dati è abbinata a un invio di rete in uscita nello stesso file.
    Elementi NascostiIframe invisibili creati dinamicamente (display:none, dimensioni zero) iniettati nel DOM — ping silenziosi di affiliazione o canali C2. Pixel di tracciamento tramite new Image().src che puntano a URL esterni.
    Bomba a TemposetTimeout/setInterval con ritardi ≥ 5 minuti; gate aritmetici Date.now(); controlli di data di installazione in localStorage che attivano comportamenti giorni dopo la prima esecuzione; gate di soglia Math.random() che si attivano solo su una frazione dei caricamenti pagina.
    Anti-AnalisiControlli navigator.webdriver; confronti di finestre con larghezza/altezza zero; dichiarazioni debugger nude; aritmetica performance.now() utilizzata per rilevamento sandbox basato su temporizzazione.