
SVG-Analyse- und Generierungswerkzeuge für häufig vorkommendes SVG-Anhang-Phishing
Dieses Toolkit enthält spezialisierte Python-Tools zur Analyse potenziell bösartiger SVG-Dateien und zur Erkennung von Sicherheitsmechanismen.
Das Toolkit besteht aus vier Haupttools:
Ein musterbasiertes statisches Analysetool, das verschleierte URLs aus bösartigen SVG-Dateien dekodiert, ohne Code auszuführen. Dies ist die sicherere Option für die erste Analyse.
String.fromCharCode-Muster mit numerischen Berechnungen# Analysiere eine einzelne SVG-Datei
python3 extract.py -i malicious.svg
# Ausführliche Ausgabe mit dekodiertem JavaScript
python3 extract.py -i malicious.svg -v
# Debug-Modus mit detaillierten Analyseschritten
python3 extract.py -i malicious.svg -d
# Von stdin lesen
python3 extract.py < malicious.svg
String.fromCharCode(115,101,99,...) („secretkey")for-Schleifen mit parseInt und XOR-Operationendata:-URIsatob("base64") + variableNameDYNAMISCHER SVG-URL-EXTRAKTOR
=========================================================
Ergebnisse von SVG #1:
----------------------------------------
Verschleierung: XOR-Dekodierung (Schlüssellänge: 9)
Extrahierte URLs:
→ https://malicious.example.com/[email protected]
Ein ausgefeiltes dynamisches Analysetool, das mit box-js in SVG-Dateien eingebettetes JavaScript extrahiert und analysiert. Dieses Tool führt JavaScript in einer Sandbox-Umgebung aus und wurde entwickelt, um endgültige, vollständige URLs zu extrahieren, selbst wenn diese durch komplexe Verschleierung erstellt wurden.
location, window.open, fetch, XHR, Image.src usw.# Erforderlich: box-js muss global installiert sein
npm install -g box-js
# Python-Anforderungen (optional)
pip install -r requirements.txt
# Grundlegende Analyse einer einzelnen SVG
python3 extract_dynamic.py -i malicious.svg
# Analyse mit benutzerdefiniertem Ausgabeverzeichnis
python3 extract_dynamic.py -i malicious.svg -o analysis_results
# Verzeichnis von SVGs mit erweitertem Timeout analysieren
python3 extract_dynamic.py -i svg_samples/ -t 60
# Temporäre Dateien zum Debuggen behalten
python3 extract_dynamic.py -i malicious.svg --keep-temp
# URL-Blockliste in Datei speichern
python3 extract_dynamic.py -i malicious.svg --blocklist-out urls.txt
# E-Mail-Adressen aus Datenschutzgründen maskieren
python3 extract_dynamic.py -i malicious.svg --mask-emails
Das Tool injiziert ein umfassendes JavaScript-Payload, das Folgendes abfängt (hookt):
location.href, location.assign(), location.replace()window.open(), Navigationsmethodenfetch(), XMLHttpRequest.open()String.prototype.concat, Zeichenfolgenmanipulationatob(), decodeURI(), unescape()eval(), Function(), setTimeout()Erkennt und behandelt automatisch:
=== Verarbeite: malicious.svg ===
Temporäres JS geschrieben -> /tmp/boxjs_svg_ABC/test.boxed.js
Führe box-js aus (Timeout 30s) mit Senken-Hooks...
[+] box-js abgeschlossen. Ergebnisse in: boxjs_out/malicious.svg.boxjs_results
*** ENDGÜLTIGE VOLLSTÄNDIGE URLs GEFUNDEN ***:
→ https://evil.example.com/[email protected]
Gefundene E-Mails:
→ [email protected]
=== ZUSAMMENFASSUNG DER ANALYSE ===
🎯 VOLLSTÄNDIGE URLs EXTRAHIERT (insgesamt 1):
======================================================
→ https://evil.example.com/[email protected]
======================================================
Ein Web-Erkundungstool zur Erkennung von Cloudflare-Sicherheitsmechanismen, einschließlich Turnstile, CAPTCHA-Systemen, Browser-Verifikation und anderen Schutzmaßnahmen entlang von Weiterleitungsketten.
pip install requests
pip install brotli # Optional für brotli-Unterstützung
# Einzelne URL auf Cloudflare-Schutz prüfen
python3 cf_probe.py https://example.com
# Scan mit JavaScript-Dateianalyse
python3 cf_probe.py https://example.com --scan-js
# Mehrere URLs aus Datei verarbeiten
python3 cf_probe.py -i urls.txt
# Benutzerdefinierter User-Agent und Timeout
python3 cf_probe.py https://example.com -A "Custom-Agent" -t 30
# TLS-Verifizierung deaktivieren (für Tests)
python3 cf_probe.py https://example.com --insecure
# HTML/JS für Analyse sichern
python3 cf_probe.py https://example.com --dump analysis_dump/
data-sitekey-Attributeturnstile.render()-JavaScript-Aufrufeturnstile.create()-JavaScript-Aufrufecf-turnstile-CSS-Klassen=== Weiterleitungs-/Navigationskette (3 Schritte) ===
[0] URL: https://example.com
Status: 301
Cloudflare-Schutz: JA (CF-Header)
CF-Header: cf-ray: 123abc456def789
[1] URL: https://protected.example.com
Status: 200
Cloudflare-Schutz: JA (Turnstile, Benutzerdefiniertes CAPTCHA)
Turnstile-Sitekey(s): 0x1AAA000000000000000
CAPTCHA-Nachweis: Klicken Sie auf den Computer, um zu verifizieren
=== Zusammenfassung ===
Erkannter Cloudflare-Schutz: Turnstile mit Schlüssel(n): 0x1AAA000000000000000 | Benutzerdefiniertes CAPTCHA
Erzeugt verschleierte SVG-Dateien mit verschiedenen Kodierungsmustern zum Testen der Analysetools.
# Einzelnes Muster erzeugen
python3 encoder.py -u "https://evil.com/c2" -p 1 -o test.svg
# Alle Muster in einem Verzeichnis erzeugen
python3 encoder.py --random-all -o test_patterns/
# Benutzerdefinierte E-Mail-Adresse
python3 encoder.py -u "https://evil.com" -e "[email protected]" -p 3 -o custom.svg
Function-KonstruktorArray.find()-Ausführung$ python3 encoder.py --random-all -o test_suite/
Generiert xor_proxy_enhanced: test_suite/pattern_01_xor_proxy_enhanced.svg
URL: https://r4nd0m.example.com/[email protected]
Generiert hex_function: test_suite/pattern_02_hex_function.svg
URL: https://evil-site.org/[email protected]
[... 4 weitere Muster ...]
# Schritt 1: Testfälle erzeugen
python3 encoder.py --random-all -o test_cases/
# Schritt 2: Zuerst statische Analyse (sicherer)
python3 extract.py -i test_cases/pattern_01_*.svg -v > static_results.txt
# Schritt 3: Dynamische Analyse (in isolierter Umgebung)
python3 extract_dynamic.py -i test_cases/ -o dynamic_results/ --blocklist-out malicious_urls.txt
# Schritt 4: Cloudflare-Schutz der extrahierten URLs prüfen (falls sicher)
python3 cf_probe.py -i malicious_urls.txt
# Toolkit klonen oder herunterladen
cd svg_tools/
# Python-Abhängigkeiten installieren
pip install -r requirements.txt
# box-js global installieren (für dynamische Analyse)
npm install -g box-js
# Installation überprüfen
python3 extract.py --help
python3 extract_dynamic.py --help
python3 cf_probe.py --help
python3 encoder.py --help