Salta al contenuto principale


Con ToolShell, è possibile accedere alle Machine key di Internet information Services (IIS)


In un articolo pubblicato il 5 agosto 2025 sul blog ISC SANS da parte di Bojan Zdrnja, è possibile effettuare il furto delle “chiavi di macchina” (Machine Keys) nei server IIS. L’autore esplora il meccanismo di queste chiavi e come possano essere sfruttate, in particolare alla luce di recenti exploit ToolShell per Microsoft SharePoint. Il furto di una Machine Key rappresenta una minaccia significativa, consentendo agli attaccanti di superare le misure di protezione dei dati, come la validazione del VIEWSTATE, e potenzialmente ottenere un accesso persistente.

Una Machine Key è un’impostazione di configurazione cruciale in IIS e ASP.NET, utilizzata per proteggere dati sensibili come il VIEWSTATE, i cookie e lo stato della sessione. La sua funzione principale è convalidare e crittografare questi dati per impedire manomissioni non autorizzate. L’autore spiega come in ASP.NET Web Forms, il VIEWSTATE sia un meccanismo progettato per mantenere lo stato dei controlli e dei dati della pagina tra i postback al server.

Per impostazione predefinita, IIS abilita la validazione del VIEWSTATE MAC (Message Authentication Code), ma la crittografia è spesso impostata su “Auto”, il che significa che potrebbe non essere sempre in uso. La Machine Key è essenziale per questa validazione, che tipicamente impiega algoritmi come SHA1 o HMACSHA256. L’autore sottolinea che, se un attaccante riesce a impossessarsi della Machine Key di un server, può alterare i valori del VIEWSTATE e dei cookie a suo piacimento.

Il possesso di una Machine Key valida può portare a conseguenze molto gravi, tra cui l’esecuzione di codice in remoto. Il testo illustra due modi in cui una chiave di macchina è comunemente conservata: o viene generata automaticamente da IIS e salvata nel registro di sistema, oppure viene creata dall’amministratore e archiviata in chiaro nel file web.config. L’autore nota che gli attaccanti che sfruttano vulnerabilità come l’inclusione di file o le entità esterne XML (XXE) possono spesso recuperare il file web.config per rubare la chiave.

Anche nel caso in cui la chiave sia generata automaticamente e si trovi nel registro, un attaccante che ha già ottenuto l’esecuzione di codice sul server può comunque leggerla. L’articolo fornisce un esempio pratico, un “proof-of-concept”, che dimostra come una Machine Key rubata possa essere sfruttata per l’esecuzione di codice remoto. Utilizzando uno strumento come ysoserial.net, un aggressore può creare un oggetto VIEWSTATE dannoso.

Poiché l’attaccante possiede la Machine Key valida, il server convaliderà con successo il MAC dell’oggetto e cercherà di deserializzarlo, attivando il codice malevolo. L’autore enfatizza che, una volta che un attaccante ha in mano una Machine Key valida, ha di fatto creato una “backdoor persistente” al server, che funzionerà su qualsiasi pagina ASPX all’interno dell’applicazione.

Infine, l’articolo offre un suggerimento per gli amministratori, spiegando che possono rilevare tali attacchi monitorando l’evento con codice 4009 nel log delle applicazioni di Windows. Questo evento viene generato quando la deserializzazione del VIEWSTATE fallisce, e l’intero oggetto VIEWSTATE viene registrato, permettendo un’ispezione più approfondita.

L'articolo Con ToolShell, è possibile accedere alle Machine key di Internet information Services (IIS) proviene da il blog della sicurezza informatica.