Le organizzazioni continuano a implementare servizi basati su cloud, un cambiamento che ha portato a una più ampia adozione di ambienti di identità ibridi che collegano Active Directory on-premises con Microsoft Entra ID (precedentemente Azure AD). Per gestire i dispositivi in questi ambienti di identità ibridi, Microsoft Intune (Intune) è emerso come una delle soluzioni di gestione dei dispositivi più popolari. Poiché questa piattaforma aziendale affidabile può essere facilmente integrata con dispositivi e servizi Active Directory on-premise, è un bersaglio ideale da sfruttare per gli aggressori che vogliono effettuare movimento laterale e esecuzione di codice.
Questa ricerca fornirà un contesto su Intune, su come viene utilizzato all'interno delle organizzazioni e mostrerà come utilizzare questa piattaforma basata su cloud per distribuire applicazioni Windows personalizzate al fine di eseguire codice sui dispositivi utente. Inoltre, questa ricerca include il rilascio pubblico di nuove regole Microsoft Sentinel per aiutare i difensori a rilevare l'uso di Intune per il movimento laterale e le linee guida per il rafforzamento difensivo della piattaforma Intune.
Andy Robbins ha scritto un eccellente post sul blog nel 2020 intitolato "Death from Above: Lateral Movement from Azure to On-Prem AD", che spiega come sfruttare Intune per implementare uno script PowerShell per prendere di mira gli host, insieme a indicazioni difensive per proteggersi da quello scenario di attacco. La nostra ricerca su X-Force si basa sulle ricerche di Robbins mostrando come eseguire l'esecuzione mirata del codice utilizzando applicazioni Windows e come eseguire triggering ad hoc per permettere agli host Windows di scaricare ed eseguire tali applicazioni. Questa ricerca include anche le nuove regole Microsoft Sentinel per rilevare l'uso improprio di Intune per facilitare i movimenti laterali e rafforzare le linee guida per la piattaforma Intune.
Chris Thompson ha rilasciato uno strumento chiamato Maestro presso DEF CON 32 Demo Labs che può essere utilizzato per eseguire ricognizione di utenti e dispositivi tramite Intune, oltre all'esecuzione di comandi tramite script PowerShell Intune o applicazioni Windows da un framework. Assicurati di dare un'occhiata a questo strumento e alle ricerche di Chris! La ricerca su X-Force è diversa perché mostra come condurre questa attività di movimento laterale tramite l'interfaccia web Microsoft Intune e come creare pacchetti di più file da implementare come parte di un'applicazione Windows personalizzata per l'esecuzione del codice. Inoltre, questa ricerca di X-Force include più modi per innescare l'esecuzione di script Intune PowerShell e applicazioni Windows, oltre al rilascio della logica delle regole di rilevamento di Microsoft Sentinel per rilevare l'attività di movimento laterale che abusa di Intune.
Newsletter di settore
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.
L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.
Molte aziende hanno iniziato ad adottare un ambiente di identità ibrido, ovvero la connessione di un ambiente Active Directory on-premise con Microsoft Entra ID (in precedenza Azure AD). Questo permette alle organizzazioni di essere più flessibili ed efficienti, il che include una migliore gestione dei dispositivi utente e l'accesso degli utenti alle applicazioni basate su cloud. In particolare, quando i dispositivi sono ibridi, sono visibili e possono essere gestiti sia in Active Directory on-premise che in Microsoft Entra ID. Grazie a questa configurazione, la compromissione delle soluzioni di gestione dei dispositivi basate su cloud può facilitare il movimento laterale ai dispositivi on-premise, come le workstation utente unite in modo ibrido.
Microsoft Intune è una soluzione di gestione dei dispositivi basata su cloud che può essere utilizzata per gestire la configurazione dei dispositivi collegati ad Azure, come i dispositivi ibridi. Le sezioni seguenti evidenziano come Intune può essere utilizzato e gestito dalle organizzazioni.
Microsoft offre diverse soluzioni per la gestione dei dispositivi all'interno di un'azienda. Di seguito sono elencate alcune di queste soluzioni:
I principali casi d'uso strategici per le organizzazioni che vogliono utilizzare Microsoft Intune sono:
Microsoft fornisce una documentazione dettagliata sui diversi ruoli disponibili in Intune, insieme ai privilegi di ciascun ruolo. I due ruoli privilegiati all'interno di Intune che permettono la creazione di script PowerShell o applicazioni Windows sono Global Administrator e Intune Service Administrator (noto anche come Intune Administrator).
Ci sono diverse opzioni per eseguire l'esecuzione del codice su host Windows tramite Microsoft Intune. Script PowerShell possono essere implementati per consentire l'esecuzione del codice tramite esecuzione diretta di comandi all'interno dello script. Altri tipi di esecuzione di codice sui dispositivi Windows includono l'implementazione delle applicazioni. Di seguito sono elencati alcuni dei tipi di applicazione più importanti:
I file di log sono scritti da Intune Management Extension su C:\ProgramData\Microsoft\IntuneManagementExtension\Logs. Questi registri possono essere utili per vedere quando un dispositivo ha effettuato il check-in con Intune e se sono stati eseguiti script di PowerShell o applicazioni Windows.
Quando Intune esegue uno script PowerShell, crea una copia temporanea dello script su disco a C:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Scripts e poi memorizza i risultati dello script su C:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Results. Dopo il completamento dello script, lo script temporaneo e i risultati vengono rimossi.
Quando Intune esegue un'applicazione Windows, l'applicazione viene distribuita ed eseguita da C:\Windows\IMECache\[UNIQUE_GUID]. Una volta terminata l'esecuzione dell'applicazione, la directory viene rimossa.
Esistono diverse tecniche di movimento laterale ben note ai fornitori di prodotti di sicurezza e ai professionisti della sicurezza difensiva, che dispongono di documentazione facilmente reperibile nel Framework MITRE ATT&CK. Queste tecniche di movimento laterale di Windows utilizzano i protocolli e i servizi amministrativi in grado di eseguire programmi o script. Alcune delle tecniche comuni di movimento laterale utilizzate dagli attori delle minacce e dai professionisti della sicurezza offensiva includono l'uso di Windows Management Instrumentation (WMI), compiti programmati, servizi e modello di oggetti a componente distribuito (DCOM) per eseguire programmi o script. Dal punto di vista della sicurezza operativa, trovare una tecnica unica che possa eseguire script e programmi provenendo da software affidabile è fondamentale. Queste tecniche possono confondersi con le attività tipiche dell'azienda e possono essere ignorate dai team di sicurezza difensiva.
Se hai compromesso un utente Azure con i permessi appropriati mostrati nella sezione Microsoft Intune Role-Based Access, puoi eseguire l'esecuzione del codice su qualsiasi host Windows che abbia installato l'agente Intune distribuendo script PowerShell o un'applicazione Windows. Può essere utilizzato come trigger di esecuzione del movimento laterale furtivo e unico, proveniente da un software aziendale affidabile.
Lo scenario mostrato nella sezione seguente presuppone l'ottenimento di un accesso privilegiato all'interno dell'interfaccia di amministrazione di Intune. Inoltre, come parte di questo scenario, l'obiettivo è ottenere accesso interattivo di comando e controllo (C2) tramite un beacon Cobalt Strike su un host bersaglio, utilizzando Intune come trigger per l'esecuzione di movimento laterale.
Intune utilizza gruppi Entra ID per controllare dove vengono eseguiti script o applicazioni. Pertanto, se un host o un gruppo di host a cui ti rivolgi non è già membro di un gruppo, dovrai crearne uno per loro, in modo da poter controllare dove viene eseguito il tuo script o la tua applicazione. In genere, negli ambienti di identità ibridi, è possibile visualizzare i dispositivi associati a un utente all'interno di Entra ID. Ciò ti consentirà di creare un elenco di host mirati. Queste informazioni possono essere recuperate anche tramite strumenti e script automatizzati, come ROADtools.
Se è necessario creare un nuovo gruppo ID Microsoft Entra per assegnare gli host di destinazione, selezionare "Gruppi" > "Nuovo gruppo" nell'interfaccia di amministrazione di Intune.
Puoi scegliere di selezionare sia host target che utenti, come mostrato nelle schermate qui sotto. In questo caso, stiamo creando un gruppo per indirizzare l'host WIN-8675309.
Verrà visualizzato un riepilogo del tuo gruppo e potrai crearlo.
Ci sono diversi modi per effettuare l'attivazione immediata ad hoc del tuo script PowerShell distribuito o dell'applicazione Windows da Intune. Tra questi troviamo:
In alternativa, puoi aspettare il prossimo riavvio del dispositivo o il prossimo check-in con Intune effettuato dall'agente Intune dell'host per eventuali nuovi script PowerShell o applicazioni Windows.
Distribuire un'applicazione Windows invece di uno script PowerShell è un metodo alternativo per eseguire l'esecuzione del codice. Questo metodo è più flessibile, poiché consente di impacchettare più file che vengono implementati ed eseguiti su un host target dall'agente Intune. Questo è vantaggioso dal punto di vista dell'attaccante per la distribuzione del payload, come nel distribuire un payload DLL sideloading che richiede più file. Di seguito descriveremo nel dettaglio il processo di distribuzione di un payload sideload DLL Dism.exe tramite un'applicazione Windows di Intune.
Utilizzare lo strumento Win32 Content Prep di Microsoft per preparare pacchetti di file di payload all'interno di un file .intunewin. Questo è un formato di file compresso che consente la distribuzione sicura di un'applicazione. Dettagli su come funziona questo packaging si trovano in questo post. In questo esempio, abbiamo una directory che contiene un file eseguibile e una DLL. Usiamo lo strumento di preparazione dei contenuti Win32 per impacchettare quei file in un file .intunewin.
Il file di output .intunewin verrà scritto nella directory di output che hai specificato. In questo caso abbiamo preparato pacchetti Dism.exe e DismCore.dll nel file Dism.intunewin.
Ora che hai creato il pacchetto applicazione Windows, puoi procedere con la sua implementazione. Nell'interfaccia di amministrazione di Intune, vai su "App" > "App Windows" > "Aggiungi".
Seleziona "App Windows (Win32)" dal menu a discesa:
Carica il file .intunewin precedentemente creato e compila le informazioni per la tua applicazione.
A seguire, aggiungi un comando di installazione , che in questo caso sarà l'eseguibile (Dism.exe). Per il comando di disinstallazione, puoi immettere qualsiasi cosa. Inoltre, abbiamo scelto di eseguire questa applicazione come "Sistema" e per il comportamento di riavvio del dispositivo abbiamo selezionato "Nessuna azione specifica". Se si sceglie "Sistema", significa che verrà eseguito come account NT AUTHORITY\SYSTEM .
Le regole di rilevamento vengono utilizzate per impedire l'installazione di un'applicazione quando essa esiste già. Pertanto, se il risultato di una regola di rilevamento è positivo, un'applicazione non verrà installata. Poiché vogliamo che la nostra applicazione funzioni in ogni caso, in questo caso abbiamo caricato uno script PowerShell che tenta di eseguire un binario inesistente. In questo modo, lo script di rilevamento fallirà sempre, il che significa che l'applicazione non è presente e l'installazione continuerà.
Salta le sezioni "Dipendenze" e "Sostituzione" e aggiungi il gruppo con i tuoi host di destinazione nella sezione "Assegnazioni":
Dopo aver creato l'applicazione Windows, la vedrà nell'interfaccia di amministrazione di Intune e la colonna "Assegnato" dovrebbe indicare "Sì". Questo significa che l'applicazione Windows è stata assegnata ai gruppi che hai specificato ed è in attesa di essere implementata e eseguita.
Per eseguire l'attivazione ad hoc dell'agente Intune sull'host di destinazione, riavvieremo il servizio "IntuneManagementExtension". Dopo il riavvio del servizio, l'host di destinazione può impiegare fino a cinque minuti per scaricare ed eseguire la sua applicazione Windows da Intune. Se l'host di destinazione non ha scaricato ed eseguito la tua applicazione Windows dopo cinque minuti, il servizio potrebbe dover essere riavviato di nuovo. Altri metodi per eseguire l'attivazione ad hoc sono nella sezione Attivazione ad hoc.
Dopo il riavvio del servizio, puoi monitorare AgentExecutor.log e IntuneManagementExtension.log all'interno della directory C:\ProgramData\Microsoft\IntuneManagementExtension\Logs sull'host di destinazione. Una volta che la data di ultima modifica sul file AgentExecutor.log è stata aggiornata, l'agente Intune dovrebbe aver scaricato ed eseguito l'applicazione Windows. Inoltre, puoi monitorare la directory C:\Windows\IMECache per vedere quando i file della tua applicazione sono stati scaricati. Verrà creata una sottocartella con un GUID univoco.
A questo punto, l'applicazione Windows è stata implementata ed eseguita e abbiamo ottenuto un beacon Cobalt Strike sull'host di destinazione WIN-8675309.
In questa sezione verranno illustrate diverse considerazioni difensive per aumentare le capacità di consolidamento e rilevamento della configurazione di Intune rispetto agli scenari di attacco descritti in questa ricerca.
Per creare regole di rilevamento delle minacce per le attività di movimento laterale che abusano di Intune, è necessario innanzitutto attivare la registrazione degli audit. Nell'interfaccia di amministrazione di Intune, seleziona "Amministrazione tenant" > "Impostazioni di diagnostica" > "Aggiungi impostazione di diagnostica":
Seleziona "AuditLogs" e "OperationalLogs", quindi scegli di inviare i tuoi log a uno spazio di lavoro di Log Analytics:
Inizierai a vedere gli schemi IntuneAuditLogs e IntuneOperationalLogs popolarsi all'interno del tuo spazio di lavoro Log Analytics.
Dopo aver iniziato a ricevere i log Intune nel tuo workspace Log Analytics, puoi utilizzare quell'area in un'istanza Microsoft Sentinel per iniziare a costruire regole di rilevamento delle minacce e regole analitiche, che saranno illustrate nella sezione seguente.
Al momento non sono disponibili regole analitiche pubbliche per Microsoft Sentinel per rilevare gli scenari di attacco a Intune descritti in questa ricerca. Pertanto, nelle sezioni seguenti sono riportati più pezzi di logica di regola che possono essere applicati come regole analitiche programmate all'interno di Microsoft Sentinel per i seguenti scenari di attacco all'interno di Intune:
Per ciascuna di queste regole analitiche, si consiglia di effettuare test e ottimizzazioni adeguate nell'ambiente. Le query KQL evidenziate di seguito possono essere copiate e incollate da questo repository KQL-Queries.
La logica delle regole linkata qui sotto avviserà ogni volta che un utente ha creato uno script PowerShell o un'applicazione Windows per l'implementazione.
CreatedPSScriptOrWindowsApp.kql
Un esempio di questa regola che si attiva in Microsoft Sentinel è mostrato nelle schermate qui sotto.
La logica della regola collegata di seguito restituisce tutti gli utenti che hanno creato ed eliminato uno script di PowerShell entro 24 ore. Questa potrebbe essere la prova di un aggressore che ha tentato di coprire le proprie tracce dopo aver distribuito uno script PowerShell.
Un esempio di questa regola che si attiva in Microsoft Sentinel è mostrato nelle schermate qui sotto:
La logica delle regole linkata qui sotto restituisce qualsiasi utente che abbia creato o eliminato un'applicazione Windows entro 24 ore. Questa potrebbe essere la prova del tentativo di un aggressore di coprire le proprie tracce dopo aver distribuito un'applicazione Windows.
CreatedAndDeletedWindowsApp.kql
Un esempio di questa regola che si attiva in Microsoft Sentinel è mostrato nelle schermate qui sotto:
La logica delle regole linkata qui sotto restituisce qualsiasi utente che abbia creato uno script PowerShell o un'applicazione Windows e abbia anche emesso un riavvio del dispositivo entro 24 ore.
CreatedPSScriptOrWindowsAppForcedRestart.kql
Un esempio di questa regola che si attiva in Microsoft Sentinel è mostrato nelle schermate qui sotto:
La logica della regola sottostante restituisce tutti gli utenti che hanno creato uno script PowerShell o un'applicazione Windows e che hanno anche emesso una sincronizzazione del dispositivo entro 24 ore.
CreatedPSScriptOrWindowsAppForcedSync.kql
Un esempio di questa regola che si attiva in Microsoft Sentinel è mostrato nelle schermate qui sotto:
Possono essere create politiche di approvazione in modo che un membro di un gruppo specificato debba approvare qualsiasi nuova distribuzione di script o applicazione. Applicare queste politiche insieme alle regole di rilevamento precedentemente descritte può rafforzare notevolmente il livello di sicurezza della tua istanza Intune.
Vai su "Amministrazione tenant" > "Approvazione multi-amministratore" > "Criteri di accesso" > "Crea".
Compila le informazioni richieste, come il nome della policy di accesso, la descrizione e il tipo di profilo. Per il tipo di profilo, seleziona "Script".
Aggiungi uno o più gruppi che saranno responsabili di approvare eventuali nuove distribuzioni di script.
Dopo aver creato la politica, la vedrai compilata nella scheda "Criteri di accesso".
Ora che la politica è stata applicata, quando un utente tenta di creare un nuovo script riceverà il messaggio seguente. Dopo aver inviato la richiesta con giustificazione aziendale, l'approvatore di un gruppo specificato dovrà autorizzare l'implementazione dello script.
Gli stessi passaggi descritti in precedenza possono essere eseguiti per richiedere l'approvazione di qualsiasi distribuzione di applicazioni. Quando crei la politica di accesso, assicurati di selezionare "App" dal menu a discesa Tipo di profilo.
Puoi vedere un riepilogo della nostra politica che abbiamo creato, che include il tipo di profilo "App".
Ora che la politica è applicata, quando un utente tenta di creare una nuova applicazione riceverà il messaggio seguente. Dopo aver inviato la richiesta con una giustificazione aziendale, l'approvatore di un gruppo di approvazione specificato dovrà approvarla prima che l'applicazione venga implementata.
Microsoft ha una guida alle best practice che evidenzia una guida dettagliata sulla protezione della configurazione di Microsoft Entra ID. Alcune delle raccomandazioni più importanti relative all'abuso dei ruoli privilegiati in Microsoft Intune sono:
L'adozione dell'architettura ibrida dell'identità e l'uso di servizi basati su cloud continua ad aumentare. Le organizzazioni dipendono da questi servizi basati sul cloud per gestire la loro infrastruttura aziendale, che include la gestione degli endpoint utente e dei dispositivi personali che si collegano a Office 365 e ad altri servizi basati su cloud. Per questo motivo, essere in grado di rilevare correttamente l'uso improprio di servizi basati sul cloud come Microsoft Intune è diventato più critico che mai. X-Force mira a mettere in evidenza e ispirare ulteriori indagini sulla difesa di altri servizi business-critical basati sul cloud che possono essere abusati dagli attori delle minacce per movimenti laterali ed esecuzione del codice.
Un ringraziamento speciale alle persone indicate di seguito per aver fornito il proprio feedback su questa ricerca e per aver revisionato i contenuti del post: