
Strumenti di analisi e generazione SVG per il phishing tramite allegati SVG comunemente diffusi
Questo toolkit contiene strumenti Python specializzati per analizzare file SVG potenzialmente dannosi e rilevare meccanismi di sicurezza.
Il toolkit è composto da quattro strumenti principali:
Uno strumento di analisi statica basato su pattern che decodifica URL offuscati da file SVG dannosi senza eseguire alcun codice. È l'opzione più sicura per l'analisi iniziale.
String.fromCharCode con calcoli numerici# Analyze a single SVG file
python3 extract.py -i malicious.svg
# Verbose output showing decoded JavaScript
python3 extract.py -i malicious.svg -v
# Debug mode with detailed analysis steps
python3 extract.py -i malicious.svg -d
# Read from stdin
python3 extract.py < malicious.svg
String.fromCharCode(115,101,99,...) ("secretkey")for con parseInt e operazioni XORdata:atob("base64") + variableNameDYNAMIC SVG URL EXTRACTOR
=========================================================
SVG #1 Results:
----------------------------------------
Obfuscation: XOR decoding (key length: 9)
Extracted URLs:
→ https://malicious.example.com/[email protected]
Uno strumento di analisi dinamica sofisticato che estrae e analizza il JavaScript incorporato nei file SVG tramite box-js. Questo strumento esegue JavaScript in un ambiente sandbox ed è progettato per estrarre URL finali e completi anche quando costruiti tramite offuscamento complesso.
location, window.open, fetch, XHR, Image.src, ecc.# Required: box-js must be installed globally
npm install -g box-js
# Python requirements (optional)
pip install -r requirements.txt
# Basic analysis of a single SVG
python3 extract_dynamic.py -i malicious.svg
# Analyze with custom output directory
python3 extract_dynamic.py -i malicious.svg -o analysis_results
# Analyze directory of SVGs with extended timeout
python3 extract_dynamic.py -i svg_samples/ -t 60
# Keep temporary files for debugging
python3 extract_dynamic.py -i malicious.svg --keep-temp
# Save URL blocklist to file
python3 extract_dynamic.py -i malicious.svg --blocklist-out urls.txt
# Mask email addresses for privacy
python3 extract_dynamic.py -i malicious.svg --mask-emails
Lo strumento inietta un payload JavaScript completo che aggancia:
location.href, location.assign(), location.replace()window.open(), metodi di navigazionefetch(), XMLHttpRequest.open()String.prototype.concat, manipolazione di stringheatob(), decodeURI(), unescape()eval(), Function(), setTimeout()Rileva e gestisce automaticamente:
=== Processing: malicious.svg ===
Wrote temp JS -> /tmp/boxjs_svg_ABC/test.boxed.js
Running box-js (timeout 30s) with sink hooks...
[+] box-js finished. Results in: boxjs_out/malicious.svg.boxjs_results
*** FINAL COMPLETE URLs FOUND ***:
→ https://evil.example.com/[email protected]
Emails found:
→ [email protected]
=== FINAL ANALYSIS SUMMARY ===
🎯 COMPLETE URLs EXTRACTED (1 total):
======================================================
→ https://evil.example.com/[email protected]
======================================================
Uno strumento di ricognizione web per rilevare i meccanismi di sicurezza Cloudflare, inclusi Turnstile, sistemi CAPTCHA, verifica del browser e altre misure di protezione lungo le catene di reindirizzamento.
pip install requests
pip install brotli # Optional for brotli support
# Check single URL for Cloudflare protections
python3 cf_probe.py https://example.com
# Scan with JavaScript file analysis
python3 cf_probe.py https://example.com --scan-js
# Process multiple URLs from file
python3 cf_probe.py -i urls.txt
# Custom User-Agent and timeout
python3 cf_probe.py https://example.com -A "Custom-Agent" -t 30
# Disable TLS verification (for testing)
python3 cf_probe.py https://example.com --insecure
# Dump HTML/JS for analysis
python3 cf_probe.py https://example.com --dump analysis_dump/
data-sitekeyturnstile.render()turnstile.create()cf-turnstile=== Redirect/Navigation Chain (3 steps) ===
[0] URL: https://example.com
Status: 301
Cloudflare Protection: YES (CF Headers)
CF Header: cf-ray: 123abc456def789
[1] URL: https://protected.example.com
Status: 200
Cloudflare Protection: YES (Turnstile, Custom CAPTCHA)
Turnstile Site key(s): 0x1AAA000000000000000
CAPTCHA Evidence: Click the computer to verify
=== Summary ===
Cloudflare Protection Detected: Turnstile with key(s): 0x1AAA000000000000000 | Custom CAPTCHA
Genera file SVG offuscati con vari pattern di codifica per testare gli strumenti di analisi.
# Generate single pattern
python3 encoder.py -u "https://evil.com/c2" -p 1 -o test.svg
# Generate all patterns in directory
python3 encoder.py --random-all -o test_patterns/
# Custom email address
python3 encoder.py -u "https://evil.com" -e "[email protected]" -p 3 -o custom.svg
FunctionArray.find()$ python3 encoder.py --random-all -o test_suite/
Generated xor_proxy_enhanced: test_suite/pattern_01_xor_proxy_enhanced.svg
URL: https://r4nd0m.example.com/[email protected]
Generated hex_function: test_suite/pattern_02_hex_function.svg
URL: https://evil-site.org/[email protected]
[... 4 more patterns ...]
# Step 1: Generate test cases
python3 encoder.py --random-all -o test_cases/
# Step 2: Static analysis first (safer)
python3 extract.py -i test_cases/pattern_01_*.svg -v > static_results.txt
# Step 3: Dynamic analysis (in isolated environment)
python3 extract_dynamic.py -i test_cases/ -o dynamic_results/ --blocklist-out malicious_urls.txt
# Step 4: Verify Cloudflare protection on extracted URLs (if safe to do so)
python3 cf_probe.py -i malicious_urls.txt
# Clone or download the toolkit
cd svg_tools/
# Install Python dependencies
pip install -r requirements.txt
# Install box-js globally (for dynamic analysis)
npm install -g box-js
# Verify installation
python3 extract.py --help
python3 extract_dynamic.py --help
python3 cf_probe.py --help
python3 encoder.py --help