SVG Smuggling: Contrabbando di Payload via Scalable Vector Graphics (T1027.017)

La tecnica T1027.017 — SVG Smuggling appartiene alla tattica TA0005 (Defense Evasion) e sfrutta una caratteristica strutturale poco discussa dei file Scalable Vector Graphics: essendo documenti XML, gli SVG possono contenere legittimamente tag <script> con JavaScript arbitrario. Gli attaccanti sfruttano questa proprietà per contrabbandare payload attraverso filtri di contenuto, gateway email e proxy web che trattano il formato come una semplice immagine.

Le forme di abuso sono varie e si combinano spesso tra loro. Un SVG malevolo può assemblare in memoria un payload decodificando stringhe base64 embedded, oppure può fungere da downloader verso infrastruttura C2, o ancora ridirigere l'utente verso landing page di phishing. Molto diffuso è l'uso come contenitore di form interattivi — finte pagine di login Microsoft 365 o pulsanti di download renderizzati direttamente dal browser quando la vittima apre l'allegato.

La tecnica è frequentemente concatenata con T1027.006 (HTML Smuggling): un HTML contiene l'SVG, che a sua volta genera il payload lato client, bypassando l'ispezione perimetrale che analizza solo l'HTML esterno. Gli SVG possono anche essere embedded in PDF, ampliando la superficie di consegna. Sul piano difensivo la copertura MITRE include la mitigazione M1048 (Application Isolation and Sandboxing) e la strategia di detection DET0510, articolata su Windows, Linux e macOS con focus su correlazione tra creazione del file SVG ed esecuzione successiva di script engine o processi browser.

Per simulare SVG Smuggling in un esercizio red team occorre costruire un SVG che sia sintatticamente valido come immagine ma trasporti logica JavaScript attivabile all'apertura nel browser. La struttura base prevede l'elemento radice <svg> con namespace XML corretto e uno o più blocchi <script> che vengono eseguiti quando il file è aperto tramite navigator (non quando è renderizzato come <img>, che disabilita gli script per policy).

Un payload di assemblaggio tipico decodifica una stringa base64 embedded e la converte in un Blob con MIME application/octet-stream, poi genera un link con attributo download e ne triggera il click programmatico. In laboratorio la catena è:

  1. Preparare l'eseguibile stager (es. un beacon Sliver o una DLL sideloading) e codificarlo con base64 -w0 payload.exe > payload.b64
  2. Incorporare la stringa in un elemento <script> all'interno dell'SVG
  3. Servire il file da un web server di staging o allegarlo a un'email di phishing simulata

Per la generazione automatizzata di SVG offuscati, SVGSmuggler (open source, disponibile su GitHub) fornisce template pronti che integrano encoding e tecniche anti-analisi come split di stringhe e concatenazione runtime. In alternativa, Maldev-Academy e HTMLSmuggler (open source) supportano output SVG-in-HTML per catene combinate T1027.006 + T1027.017.

Per la parte di phishing infrastructure, GoPhish (open source) permette di distribuire l'allegato tracciandone l'apertura, mentre evilginx3 (open source) può essere concatenato quando l'SVG funge da reindirizzatore verso una landing per credential harvesting con bypass MFA.

Sul lato offuscazione, è utile testare varianti dove il JavaScript è racchiuso in CDATA per evitare parsing prematuro dell'XML, oppure dove il payload è frammentato in più elementi <desc> o <metadata> e ricomposto a runtime. obfuscator.io (freemium) applica trasformazioni tipo string array e control flow flattening al codice JavaScript prima dell'embed.

Su Linux e macOS la superficie è ridotta perché xdg-open o Preview.app tendono a rendere l'SVG come immagine statica, ma un browser esplicitamente invocato esegue gli script. In ESXi la tecnica non ha applicazione diretta lato hypervisor ma può colpire le web console amministrative se un allegato SVG viene aperto dal browser dell'operatore.

Regola di ingaggio fondamentale: eseguire i test in ambiente isolato con browser dedicato, senza credenziali reali salvate, e documentare ogni URL contattato dal payload.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.