Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
browser-xpi-malware-scanner — Ein umfassender Browser-Erweiterungs-Malware-Scanner (.xpi), der nach vielen häufigen Malware-Tricks sucht, wie: Verschleierungstaktiken von Credential-Stealern, Steganografie, Base64-Payloads, Zip-Tricks, Remote-Codeausführung, Polyglot-Tricks und Metadaten-Tricks, um dem Analysten Informationen darüber zu geben, wo eine tiefere Analyse erforderlich ist. | Kitploit
Tools/GitHubGitHub/ernos/browser-xpi-malware-scanner
Statische AnalyseSchwachstellenanalyseCode-AnalyseForensikSteganografieMalware-AnalysePapers & ForschungLernen & Bildung
GitHub
ernos/browser-xpi-malware-scanner

browser-xpi-malware-scanner

Repository anzeigen
818vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Ein umfassender Browser-Erweiterungs-Malware-Scanner (.xpi), der nach vielen häufigen Malware-Tricks sucht, wie: Verschleierungstaktiken von Credential-Stealern, Steganografie, Base64-Payloads, Zip-Tricks, Remote-Codeausführung, Polyglot-Tricks und Metadaten-Tricks, um dem Analysten Informationen darüber zu geben, wo eine tiefere Analyse erforderlich ist.

Teilen

XPI-Analyzer – Sicherheitsscanner für Firefox-Erweiterungen

Ein Kommandozeilen-Tool, das Firefox-Erweiterungsdateien (.xpi) auf Anzeichen von Malware, Verschleierung, versteckten Nutzdaten, Steganografie und andere Techniken untersucht, die verwendet werden, um bösartigen Code an Erweiterungs-Review-Teams vorbeizuschleusen.

Was es tut

extension-scanner.py öffnet eine Firefox-Erweiterung und führt eine Reihe von Sicherheitsprüfungen für jede darin enthaltene Datei durch. Anschließend wird ein farblich codierter Bericht mit nach Schweregrad geordneten Ergebnissen erstellt.

Anleitungen/Tutorials zur Verwendung dieses Scanners zur Erkennung von Malware im Firefox-/Mozilla-Erweiterungs-Store und zur weiteren Untersuchung

  • Malware-Analyse: Verwendung von browser-xpi-malware-scanner.py zur Erkennung von Malware in freier Wildbahn
  • Der Ad-Blocker, der Ihre Klicks stiehlt: Einblick in "Supreme Adblocker for Youtube"
  • Wie ich einen Browser-Erweiterungs-Malware-Scanner baute – und ihn nutzte, um einen bösartigen "YouTube Downloader" zu entlarven
  • Durchgeführte Prüfungen

    KategorieWorauf geprüft wird
    BerechtigungenGefährliche oder übermäßig weitreichende Berechtigungen (nativeMessaging, <all_urls>, debugger, desktopCapture usw.)
    Content Security Policyunsafe-inline, unsafe-eval, entfernte Skriptquellen in CSP
    JavaScript-Verschleierungeval(), atob(), Missbrauch des Function()-Konstruktors, Hex-Escape-Sequenzen, split/join/reverse-Zusammenbau, kodierte Stringliterale, setTimeout mit String-Argumenten
    Verdächtige URLsHartcodierte externe Domains, klassifiziert als bekannt-schlecht (Blocklist-Treffer → HIGH), unbekannt (nicht auf Whitelist → MEDIUM) oder bekannt-gut (whitelisted → unterdrückt). Führen Sie --update-blocklist aus, um die Domain-Blocklist von URLhaus und Peter Lowes Liste zu aktualisieren.
    Anmeldedaten & GeheimnisseHartcodierte API-Schlüssel, Tokens (AWS, GitHub, Slack, Google), Passwörter, private Schlüssel und IP-Adressen
    Base64-NutzlastenDekodiert eingebettete Base64-Blöcke und scannt sie nach ausführbaren Dateien, Skripten und Netzwerkcode
    PNG-SteganografieErkennt Daten, die nach PNG IEND angehängt wurden, und dekodiert automatisch den Anhang (base64, zlib, gzip und Kombinationen); dekodierte Nutzlasten werden rekursiv nach JS-Verschleierung, Anmeldedaten und verdächtigen URLs durchsucht. Erkennt auch unbekannte Chunk-Typen, LSB-Kanalanomalien und ungewöhnlich hohe Pixelentropie
    DateimetadatenMagic-Byte-Erkennung von ausführbaren Dateien (.exe, .elf, .dylib), doppelte Erweiterungen (z. B. photo.png.js), verdächtige Dateinamen (keylog, miner, wallet)
    Polyglot-DateienDateien, die gleichzeitig in zwei Formaten gültig sind (z. B. HTML + ZIP)
    ZIP-Tricks

    Schweregrade

    • CRITICAL — Fast sicher bösartig; sofortige Untersuchung erforderlich
    • HIGH — Stark verdächtig; sorgfältige Überprüfung erforderlich
    • MEDIUM — Potenziell riskant; im Kontext überprüfen
    • LOW — Geringes Problem; informativ
    • INFO — Metadaten (Hash, Dateigröße usw.)

    Installation

    Voraussetzungen (Pakete)

    • Python 3.10+ wird benötigt. python3.11, python3.12 oder python3.13
    • **python3-venv** - Erforderlich, wenn Sie virtuelle Umgebungen verwenden

    Verwendung virtueller Umgebungen:

    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
    

    Optionale Pakete

    • **python3-numpy** - Empfohlen für Steganografie, systemweite Installation (andernfalls pip install -r requirements.txt)
    • pillow: Empfohlen für Steganografie
    • numpy: Empfohlen für Steganografie
      ```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
    

    Wenn Pillow/NumPy nicht installiert sind, läuft das Tool trotzdem – LSB- und Pixelentropie-Prüfungen werden einfach übersprungen, und eine Warnung wird ausgegeben.


    Verwendung

    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
    

    Optionen

    FlagBeschreibung
    --update-blocklistRuft frische Domainlisten von URLhaus und Peter Lowes Werbe-/Malware-Serverliste ab, führt sie mit der mitgelieferten Momentaufnahme zusammen und speichert sie in blocklist.json neben dem Skript. Beendet nach der Aktualisierung.
    targetsEine oder mehrere .xpi-Dateien oder Verzeichnisse
    --min-severityAusgabe filtern: CRITICAL, HIGH, MEDIUM, LOW, INFO (Standard: INFO)
    --jsonErgebnisse als JSON-Dokument ausgeben anstelle des menschenlesbaren Berichts
    --verbose oder -vGibt den Inhalt von manifest.json aus und enthält auch etwa 5 Codezeilen um jedes verdächtige Muster herum
    --checksNur nach diesen spezifischen Prüfkategorien scannen (siehe unten)

    Verfügbare PrüfkategorienBeschreibung der Prüfungen in der Kategorie
    permissionsGefährliche/weitreichende Manifest-Berechtigungen und CSP-Probleme
    remote-codeHintergrundseiten oder Service Worker, die von entfernten URLs geladen werden
    obfuscationeval/atob/Kodierungstricks, verdächtige URLs, Zeichenfolgen mit hoher Entropie
    payloadsBase64-kodierte Blöcke dekodiert und auf ausführbare Dateien/Skripte gescannt
    steganographyAn PNG angehängte Daten, unbekannte Chunks, LSB-Kanalanalyse
    credentialsHartcodierte API-Schlüssel, Tokens, Passwörter, private Schlüssel, IP-Adressen
    file-metaMagic Bytes, doppelte Erweiterungen, verdächtige Dateinamen, Dateientropie
    polyglotDateien, die gleichzeitig in zwei Formaten gültig sind (z. B. HTML+ZIP)
    zip-tricksPath Traversal, Nullbytes, doppelte Einträge, ZIP-Kommentare
    cross-fileHTML-Klasse-Token, die mit JS-localStorage-Schlüsseln kreuzreferenziert werden
    api-abuseBrowser-API-Aufrufe, die auf Datendiebstahl oder -exfiltration hindeuten (Cookies, Tabs, Verlauf, Tastatur, Zwischenablage). KRITISCH, wenn Sammlung + Netzwerksenden in derselben Datei auftreten.
    hidden-elementsUnsichtbare Iframe-Injektion und Tracking-Pixel. HOCH, wenn iframe versteckt + an DOM angehängt ist.
    time-bombsetTimeout mit langer Verzögerung, Date.now()-Arithmetik-Gatter, localStorage-Installationsdatum, Math.random()-Schwellenwert.
    anti-analysisnavigator.webdriver, Fenster mit Nullgröße, nackte debugger-Anweisung, performance.now()-Arithmetik.

    Lesen der Ausgabe

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

    Bei der Analyse mehrerer Dateien wird nach den einzelnen Berichten eine Vergleichstabelle ausgegeben, die alle Erweiterungen nebeneinander zeigt.


    Exit-Codes

    CodeBedeutung
    0Keine KRITISCHEN oder HOHEN Ergebnisse
    1Mindestens ein HOCH-Ergebnis
    2Mindestens ein KRITISCHES Ergebnis

    Dies macht die Verwendung in CI-Pipelines oder Shell-Skripten einfach:

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

    Einschränkungen

    • Statische Analyse nur. Das Tool führt keinen Code aus. Dynamische Techniken (zur Laufzeit abgerufene Nutzlasten, serverseitiger Polymorphismus) werden nicht erkannt.
    • LSB-Steganografie-Heuristiken erzeugen falsch-positive Ergebnisse bei einigen natürlich verrauschten oder stark komprimierten Bildern.
    • Verschleierungsmuster konzentrieren sich auf übliche Techniken; benutzerdefinierte oder neuartige Packer lösen möglicherweise keine Warnungen aus.
    • Whitelist-Domains (Google APIs, Mozilla, W3C) werden bei URL-Prüfungen nicht markiert. Legitime Erweiterungen, die andere vertrauenswürdige CDNs aufrufen, können als HIGH-Ergebnisse erscheinen.
    • Das Tool sendet Dateien nicht an einen externen Dienst. Die gesamte Analyse erfolgt lokal.

    Autor

    Maximilian Cornett

    Kontakt

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

    Lizenz

    GNU General Public License – Dieses Tool ist nur für Sicherheitsforschung und defensive Analysen bestimmt.

    Tool herunterladen
    Path-Traversal-Einträge, Nullbytes in Dateinamen, doppelte Einträge, die Parser täuschen könnten, Nutzlast-tragende ZIP-Kommentare
    Remote-CodeHintergrundseiten oder Service Worker, die von entfernten URLs geladen werden
    Hohe EntropieDateien oder Stringliterale mit verdächtig hoher Entropie (wahrscheinlich verschlüsselte oder komprimierte Nutzlasten)
    API-MissbrauchAPI-Aufrufe von Browsererweiterungen, die auf Datendiebstahl oder -exfiltration hindeuten: cookies.getAll({}), tabs.query({}), history.search, Tastatur-Listener, Zwischenablage-Lesen, scripting.executeScript mit einer dynamischen Funktion. Wird auf KRITISCH hochgestuft, wenn ein Datensammlungsaufruf mit einem ausgehenden Netzwerksenden in derselben Datei gepaart ist.
    Versteckte ElementeDynamisch erstellte unsichtbare Iframes (display:none, Nullabmessungen), die in das DOM injiziert werden – stille Affiliate-Pings oder C2-Kanäle. Tracking-Pixel über new Image().src, die auf externe URLs verweisen.
    ZeitbombesetTimeout/setInterval mit Verzögerungen ≥ 5 Minuten; Date.now()-Arithmetik-Gatter; localStorage-Installationsdatum-Prüfungen, die Verhalten Tage nach dem ersten Start aktivieren; Math.random()-Schwellenwertgatter, die nur bei einem Bruchteil der Seitenaufrufe auslösen.
    Anti-Analysenavigator.webdriver-Prüfungen; Fenstervergleiche mit Nullbreite/-höhe; nackte debugger-Anweisungen; performance.now()-Arithmetik zur zeitbasierten Sandbox-Erkennung.