Abuso di Regsvcs e Regasm: System Binary Proxy Execution via .NET Utilities (T1218.009)

Regsvcs.exe e Regasm.exe sono due utility a riga di comando distribuite con il .NET Framework di Microsoft, pensate per registrare assembly .NET come componenti COM (Component Object Model). Essendo binari firmati digitalmente da Microsoft, godono per default della fiducia dei meccanismi di application control basati su firma, come le policy di default di AppLocker o WDAC.

Gli attaccanti sfruttano questa fiducia per ottenere proxy execution di codice arbitrario, aggirando i controlli applicativi. Il trucco risiede negli attributi [ComRegisterFunction] e [ComUnregisterFunction] che uno sviluppatore può inserire in un assembly .NET: il codice marcato con questi attributi viene eseguito automaticamente durante la registrazione (o de-registrazione) del componente, anche se il processo gira con privilegi insufficienti e l'operazione COM fallisce.

La tecnica si colloca nella tattica TA0005 (Defense Evasion) e viene tipicamente osservata nella fase di execution successiva all'initial access, quando l'attaccante ha già consegnato un payload sull'endpoint (via phishing, drive-by o supply chain) e necessita di eseguirlo aggirando EDR e whitelisting. Nei dati MITRE risulta associata al malware Agent Tesla (S0331), information stealer che ha utilizzato RegAsm.exe come vettore di esecuzione per la propria componente malevola. La copertura difensiva si articola su due mitigazioni principali (M1038 Execution Prevention e M1042 Disable or Remove Feature) e su una detection comportamentale strutturata (DET0361) che correla process creation, assembly load, scritture di registro e attività figlia.

In un contesto di red team autorizzato, l'abuso di Regasm.exe e Regsvcs.exe è una tecnica classica di AWL bypass (Application Whitelisting bypass) documentata nel progetto LOLBAS (open source). Entrambi i binari si trovano nelle sottodirectory del .NET Framework:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegSvcs.exe

La catena d'attacco tipica inizia con la creazione di un assembly .NET in C# che espone una classe COM-visible con metodi decorati dagli attributi appropriati. Un esempio di scheletro:

[ComVisible(true)][Guid("...")] public class Payload { [ComRegisterFunction] public static void Register(Type t) { / codice offensivo / } [ComUnregisterFunction] public static void Unregister(Type t) { / codice offensivo / } }

Dopo aver compilato la DLL con csc.exe (parte del .NET Framework, quindi già presente sul target), l'esecuzione avviene invocando:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe /U payload.dll

Il flag /U forza l'esecuzione del metodo marcato [ComUnregisterFunction]. In alternativa, invocare senza flag esegue il metodo di registrazione. Un punto chiave per il red teamer: il codice viene eseguito anche in caso di errore di registrazione, quindi non è necessario che l'assembly sia effettivamente valido dal punto di vista COM.

Per la simulazione operativa in laboratorio, framework come Nishang (open source), PowerSploit (open source, non più mantenuto ma funzionante) e i moduli C2 di Covenant (open source) e Sliver (open source) includono generatori di assembly .NET pronti all'uso. Cobalt Strike (a pagamento) offre il comando execute-assembly che, pur non usando direttamente regasm, si basa sullo stesso principio di loading .NET in-memory.

Per massimizzare l'evasione, il red teamer combina la tecnica con:

  • Parent process spoofing via API UpdateProcThreadAttribute, per far sembrare che regasm sia stato lanciato da explorer.exe o setup.exe
  • Payload staging in directory apparentemente legittime (evitando %TEMP% che è molto monitorato)
  • Assembly obfuscation con tool come ConfuserEx (open source) per ostacolare l'analisi statica

In engagement realistici, la fase di validazione richiede di verificare quali sensori EDR rilevano il pattern: alcune soluzioni intercettano il CLR load dentro processi non standard, altre si affidano solo al command-line dei processi figli. Documentare la telemetria generata è parte integrante del deliverable per il blue team.

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.