Salta al contenuto
Starter kit Business / PMI In evidenza

Toolkit PowerShell di emergenza: tenant Microsoft 365 compromesso (10 script)

Dieci script per le prime ore di una compromissione: contenimento reversibile con blocco degli account e revoca delle sessioni, raccolta dei log di Entra ID e di Exchange prima che scadano, e un report HTML che distingue una fonte non raccolta da un risultato pari a zero.

Formato

PS1

Dimensione

35.9 KB

Tipo

Starter kit

Aggiornato

28 ago 2026

Scarica ZIP 35.9 KB ZIP (10 script + LEGGIMI)

Licenza: Uso libero, anche commerciale. Otto script di sola lettura; due eseguono operazioni di scrittura e sono in simulazione per default. Forniti "as is" senza garanzia: testare in un ambiente di prova.

Cosa contiene

Toolkit in 10 script PowerShell per le prime ore di una compromissione di un tenant Microsoft 365. Otto sono di sola lettura. Due scrivono, e sono in simulazione per default: senza `-Esegui` non toccano nulla.

Il contenimento è reversibile per costruzione. Lo script 02 fotografa lo stato di abilitazione di ogni account *prima* del blocco, e lo script 03 si rifiuta di partire senza quella fotografia. È la differenza che conta al momento del rientro: un «riabilita tutti» rimetterebbe in servizio anche gli ex dipendenti e le utenze chiuse apposta, aprendo un secondo problema di sicurezza mentre si chiude il primo.

Tre protezioni non aggirabili sullo script che blocca: l'account che sta eseguendo non viene mai toccato, i Global Administrator sono esclusi salvo richiesta esplicita, e le utenze di emergenza si passano da parametro. Il blocco revoca anche le sessioni: disabilitare l'account non invalida i token di aggiornamento già emessi, e senza la revoca l'attaccante continua a leggere la posta per ore su un account che nel portale risulta bloccato.

La raccolta delle prove tiene conto dei limiti veri delle fonti, che sono la ragione per cui una raccolta fatta a mano risulta quasi sempre incompleta:

Quello che il blocco non chiude. Disabilitare gli utenti non tocca le regole della posta in arrivo, gli inoltri impostati a livello di cassetta e i consensi applicativi: un consenso OAuth concesso a un'app malevola continua a leggere la posta dopo il blocco, dopo il cambio password e dopo la revoca delle sessioni. Due script li cercano e li elencano per gravità, perché vanno rimossi a mano prima del rientro.

Il report HTML finale non interroga il tenant: legge i CSV già raccolti, quindi gira anche su un'altra macchina o a incidente chiuso. Distingue sempre una fonte assente da una fonte vuota e scrive «n.d.» dove un dato non è stato raccolto — perché «nessun accesso sospetto» quando i sign-in log non sono mai stati scaricati è la conclusione più pericolosa che uno strumento come questo possa produrre. Il report raccoglie indizi: non stabilisce se ci sia stata una compromissione.

Gira su Microsoft 365 Business Premium. Ruoli: sola lettura (Global Reader, Security Reader, View-Only Organization Management) per otto script; User Administrator per i due che scrivono.

Guida completa: toolkit di emergenza per un tenant Microsoft 365 compromesso.

Topic

  • Sicurezza
  • Incident response
  • Microsoft 365
  • PowerShell
  • Entra ID
  • Exchange Online
  • Emergenza
  • PMI