Componenti IIS Malevoli: IIS Components (T1505.004)
La tecnica T1505.004 descrive l'abuso dei meccanismi di estensibilità di Internet Information Services per stabilire persistenza sui server web Windows. IIS espone tre superfici principali di estensione: le estensioni ISAPI, i filtri ISAPI e i moduli IIS (introdotti con IIS 7.0), tutti caricati in-process dal worker w3wp.exe.
Rientra nella tattica TA0003 (Persistence) e si colloca tipicamente nella fase post-exploitation della kill chain, dopo un accesso iniziale ottenuto via vulnerabilità applicative (deserializzazione, RCE su SharePoint/Exchange) o credenziali amministrative rubate. Un attaccante che riesce a registrare un modulo malevolo ottiene un punto d'osservazione privilegiato: ogni richiesta HTTP transita attraverso il suo codice, consentendo intercettazione di credenziali, esecuzione comandi via richieste "magiche", proxy di traffico C2 e modifica delle risposte per veicolare payload verso host già compromessi.
L'impatto è amplificato dall'esecuzione nel contesto dell'application pool identity (spesso NetworkService o account di servizio con privilegi elevati sui dati applicativi) e dalla resistenza al riavvio: i moduli sono registrati in applicationHost.config e vengono ricaricati automaticamente. I dati MITRE censiscono 3 famiglie malware dedicate (OwaAuth, RGDoor, IceApple), 2 campagne documentate e 4 mitigazioni primarie. La tecnica è particolarmente insidiosa perché il traffico C2 si confonde con richieste HTTPS legittime verso servizi pubblicamente esposti come Exchange OWA o SharePoint.
In un ingaggio red team la simulazione di T1505.004 richiede accesso amministrativo al server IIS (tipicamente ottenuto tramite webshell privilegiata o credenziali di service account). L'ambiente di laboratorio minimo prevede Windows Server 2019/2022 con IIS 10, Visual Studio con SDK C++ per costruire DLL native, oppure .NET SDK per moduli managed.
Un modulo IIS nativo deve esportare la funzione RegisterModule e implementare l'interfaccia CHttpModule. Dopo la compilazione, la registrazione avviene con lo strumento nativo appcmd.exe:
appcmd.exe install module /name:"CustomAuth" /image:"C:\Windows\System32\inetsrv\customauth.dll"
Per moduli managed (.NET) la registrazione può passare per web.config aggiungendo un elemento
Per laboratorio esistono progetti open source didattici come SharPersist (open source) di FireEye/Mandiant che include tecniche di persistence su Windows, e riferimenti tecnici in PoC-in-GitHub sui moduli IIS post-exploitation osservati in famiglie come IceApple. La libreria IIS-Raid (open source) è un framework proof-of-concept scritto in C che dimostra un modulo nativo con comandi eseguiti tramite header HTTP custom — utile per esercizi di detection engineering.
La catena tipica di un red team che simula la campagna C0058 (SharePoint ToolShell Exploitation) parte dallo sfruttamento di CVE-2025-49704 per ottenere RCE sul worker SharePoint, quindi droppa un'assembly .NET nella cartella inetsrv e la registra come modulo per HTTP request interception. Nel contesto di C0022 (Operation Dream Job), Lazarus ha usato componenti IIS come punto di landing C2 su server Windows esposti.
Durante il test è essenziale documentare le modifiche a applicationHost.config e rimuovere completamente il modulo con appcmd.exe uninstall module /name:"CustomAuth" seguito da iisreset. Per validare la copertura difensiva, il team può alternare moduli firmati e non firmati, testando l'efficacia di eventuali policy AppLocker/WDAC applicate alla directory *%windir%\System32\inetsrv*. Attenzione: eseguire sempre in ambiente isolato e con autorizzazione scritta — un modulo IIS malevolo lasciato in produzione è un backdoor persistente ad alto impatto.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo