Unternehmen setzen weiterhin auf Cloud-basierte Dienste, was zu einer breiteren Einführung von hybriden Identitätsumgebungen geführt hat, die das lokale Active Directory mit Microsoft Entra ID (ehemals Azure AD) verbinden. Für die Verwaltung von Geräten in diesen hybriden Identitätsumgebungen hat sich Microsoft Intune (Intune) als eine der beliebtesten Lösungen für die Geräteverwaltung etabliert. Da diese vertrauenswürdige Unternehmensplattform problemlos in lokale Active Directory-Geräte und -Dienste integriert werden kann, stellt sie ein bevorzugtes Ziel für Angreifer dar, die sie für Lateralbewegungen und die Ausführung von Code missbrauchen.
Diese Studie liefert Hintergrundinformationen zu Intune, seiner Verwendung in Unternehmen und zeigt, wie diese cloudbasierte Plattform zum Bereitstellen benutzerdefinierter Windows-Anwendungen genutzt werden kann, um die Ausführung von Code auf Benutzergeräten zu ermöglichen. Darüber hinaus umfasst diese Studie die Veröffentlichung neuer Microsoft Sentinel-Regeln, die Verteidigern dabei helfen sollen, die Nutzung von Intune für Lateralbewegungen zu erkennen, sowie Richtlinien zur Verteidigungshärtung für die Intune-Plattform.
Andy Robbins veröffentlichte 2020 einen ausgezeichneten Blogbeitrag mit dem Titel „Death from Above: Lateral Movement from Azure to On-Prem AD”, in er beschreibt, wie man Intune missbrauchen kann, um ein PowerShell-Skript auf Zielhosts zu installieren, und defensive Richtlinien zum Schutz vor diesem Angriffsszenario bereitstellt. Unsere daraus resultierende Studie zu X-Force baut auf den Studienergebnissen von Robbins auf und zeigt, wie man mithilfe von Windows-Anwendungen gezielte Codeausführungen durchführt und wie man Ad-hoc-Auslöser für Windows-Hosts implementiert, um diese Anwendungen herunterzuladen und auszuführen. Diese Studie umfasst auch neu erstellte Microsoft Sentinel-Regeln zur Erkennung des Missbrauchs von Intune zur Erleichterung von Lateralbewegungen sowie Empfehlungen zur Absicherung der Intune-Plattform.
Chris Thompson veröffentlichte ein Tool namens Maestro bei DEF CON 32 Demo Labs, das verwendet werden kann, um Benutzer- und Geräteaufklärung über Intune durchzuführen, sowie Befehle über Intune PowerShell-Skripte oder Windows-Anwendungen aus einem C2-Framework auszuführen. Sehen Sie sich unbedingt dieses Tool und die Studienergebnisse von Chris an! Die folgende Studie zu X-Force unterscheidet sich davon, da sie zeigt, wie diese Lateralbewegungsaktivität über die Microsoft Intune-Webschnittstelle durchgeführt wird und wie mehrere Dateien als Teil einer benutzerdefinierten Windows-Anwendung zur Codeausführung bereitgestellt werden können. Darüber hinaus umfasst diese Studie zu X-Force weitere Möglichkeiten zum Auslösen von Intune PowerShell-Skripten und Windows-Anwendungen sowie die Veröffentlichung der Erkennungsregel-Logik von Microsoft Sentinel zur Erkennung von lateralen Bewegungsaktivitäten, die Intune missbrauchen.
Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.
Viele Unternehmen haben begonnen, eine hybride Identitätsumgebung einzuführen, was die Verbindung einer lokalen Active Directory-Umgebung mit Microsoft Entra ID (ehemals Azure AD) bedeutet. Dadurch können Unternehmen flexibler und effizienter arbeiten, was auch eine bessere Verwaltung der Benutzergeräte und des Benutzerzugriffs auf cloudbasierte Anwendungen umfasst. Insbesondere wenn Geräte hybrid verbunden sind, sind sie sowohl in Active Directory lokal als auch in Microsoft Entra ID sichtbar und können dort verwaltet werden. Aufgrund dieser Konfiguration kann die Kompromittierung von cloudbasierten Geräteverwaltungslösungen die Lateralbewegung zu lokalen Geräten erleichtern, beispielsweise zu Benutzer-Workstations, die hybrid verbunden sind.
Microsoft Intune ist eine cloudbasierte Geräteverwaltungslösung, mit der die Konfiguration von Geräten verwaltet werden kann, die mit Azure verbunden sind, beispielsweise hybride Geräte. Die folgenden Abschnitte zeigen, wie Intune von Unternehmen genutzt und verwaltet werden kann.
Microsoft bietet mehrere Lösungen für die Verwaltung von Geräten innerhalb eines Unternehmens an. Einige dieser Lösungen sind unten aufgeführt:
Die wichtigsten strategischen Anwendungsfälle für Unternehmen, die Microsoft Intune einsetzen, sind:
Microsoft bietet eine ausführliche Dokumentation zu den verschiedenen Rollen, die in Intune verfügbar sind, sowie zu den Berechtigungen der einzelnen Rollen. Die beiden privilegierten Rollen innerhalb von Intune, die die Erstellung von PowerShell-Skripten oder Windows-Anwendungen ermöglichen, sind Global Administrator und Intune Service Administrator (auch Intune Administrator genannt).
Es gibt mehrere Optionen zur Codeausführung auf Windows-Hosts über Microsoft Intune. PowerShell-Skripte können so eingesetzt werden, dass Codeausführung direkt innerhalb des Skripts ausgeführt werden kann. Weitere Arten der Codeausführung auf Windows-Geräten umfassen die Bereitstellung von Anwendungen. Einige der wichtigsten Anwendungsarten sind im Folgenden aufgeführt:
Logdateien werden von der Intune Management Extension unter C:\ProgramData\Microsoft\IntuneManagementExtension\Logs geschrieben. Diese Logs können hilfreich sein, um zu sehen, wann ein Gerät sich bei Intune angemeldet hat und ob PowerShell-Skripte oder Windows-Anwendungen ausgeführt wurden.
Wenn Intune ein PowerShell-Skript ausführt, erstellt es eine temporäre Kopie des Skripts auf der Festplatte unter C:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Scripts und speichert anschließend die Ergebnisse des Skripts unter C:\Program Files (x86)\Microsoft Intune Management Extension\Policies\Ergebnisse. Nach Abschluss des Skripts werden das temporäre Skript und die Ergebnisse entfernt.
Wenn Intune eine Windows-Anwendung ausführt, wird die Anwendung von C:\Windows\IMECache\[UNIQUE_GUID] aus bereitgestellt und ausgeführt. Sobald die Anwendung vollständig ausgeführt wurde, wird das Verzeichnis entfernt.
Es gibt mehrere Lateralbewegungstechniken, die Herstellern von Sicherheitsprodukten und Experten für defensive Sicherheit gut bekannt sind und für die im MITRE ATT&CK Framework leicht zugängliche Dokumentationen verfügbar sind. Diese Lateralbewegungstechniken von Windows nutzen vor allem administrative Protokolle und Dienste, die Programme oder Skripte ausführen können. Zu den gängigen Lateralbewegungstechniken, die von Angreifern und Offensive-Security-Experten verwendet werden, gehören die Verwendung von Windows Management Instrumentation (WMI), geplanten Aufgaben, Diensten und dem Distributed Component Object Model (DCOM) zur Ausführung von Programmen oder Skripten. Aus Sicht der operativen Sicherheit ist es entscheidend, eine einzigartige Technik zu finden, mit der Skripte und Programme ausgeführt werden können, die von einer vertrauenswürdigen Software stammen. Solche Techniken können sich nahtlos in die üblichen Geschäftsabläufe einfügen und von den Sicherheitsteams möglicherweise ignoriert werden.
Wenn Sie einen Azure-Benutzer mit den entsprechenden Berechtigungen kompromittiert haben, die im Abschnitt Microsoft Intune – rollenbasierter Zugriff aufgeführt sind, können Sie auf jedem Windows-Host, auf dem der Intune-Agent installiert ist, Code ausführen, indem Sie PowerShell-Skripte oder eine Windows-Anwendung bereitstellen. Dies kann als unauffälliger und einzigartiger Auslöser für Lateralbewegungen verwendet werden, der aus vertrauenswürdiger Unternehmenssoftware stammt.
Das im folgenden Abschnitt dargestellte Szenario geht davon aus, dass privilegierter Zugriff innerhalb des Intune-Verwaltungscenters erlangt wurde. Darüber hinaus besteht das Ziel dieses Szenarios darin, über ein Cobalt Strike Beacon auf einem Zielhost interaktiven Command-and-Control-Zugriff (C2) zu erlangen, während Intune als Auslöser für die laterale Bewegung verwendet wird.
Intune verwendet Entra-ID-Gruppen, um zu steuern, wo Skripte oder Anwendungen ausgeführt werden. Wenn ein Host oder eine Gruppe von Hosts, auf die Sie abzielen, noch nicht Mitglied einer Gruppe ist, müssen Sie eine solche Gruppe erstellen, damit Sie kontrollieren können, wo Ihr Skript oder Ihre Anwendung ausgeführt wird. In hybriden Identitätsumgebungen können Sie in der Regel die einem Benutzer zugeordneten Geräte in Entra ID anzeigen. So können Sie eine Liste der Zielhoster erstellen. Diese Informationen können auch mit automatisierten Tools und Skripten wie ROADtools abgerufen werden.
Wenn Sie für die Zuweisung Ihrer Zielhosts eine neue Microsoft Entra ID-Gruppe erstellen müssen, wählen Sie im Intune-Verwaltungscenter „Gruppen“ > „Neue Gruppe“ aus.
Sie können entweder Zielhosts oder Zielbenutzer auswählen, wie in den jeweiligen Screenshots unten dargestellt. In diesem Fall erstellen wir eine Gruppe, die auf den Host WIN-8675309 abzielt.
Eine Zusammenfassung Ihrer Gruppe wird angezeigt, und Sie können diese anschließend erstellen.
Es gibt mehrere Möglichkeiten zur sofortigen Ad-hoc-Auslösung Ihres bereitgestellten PowerShell-Skripts oder Ihrer Windows-Anwendung mit Intune. Dazu gehören:
Alternativ können Sie warten, bis das Gerät das nächste Mal von selbst neu startet oder bis der Intune-Agent des Hosts das nächste Mal bei Intune nach neuen PowerShell-Skripten oder Windows-Anwendungen sucht.
Die Bereitstellung einer Windows-Anwendung statt eines PowerShell-Skripts ist eine alternative Methode für die Codeausführung. Diese Methode ist flexibler, da sie das Paketieren mehrerer Dateien ermöglicht, die vom Intune-Agenten auf einem Zielhost bereitgestellt und ausgeführt werden. Dies ist aus Sicht eines Angreifers bei der Bereitstellung von Nutzdaten von Vorteil, z. B. bei der Bereitstellung einer DLL-Sideloading-Nutzdaten, die mehrere Dateien erfordert. Der Prozess der Bereitstellung einer Dism.exe DLL Sideload-Nutzlast über eine Intune Windows-Anwendung wird im Folgenden detailliert beschrieben.
Verwenden Sie das Win32 Content Prep Tool von Microsoft, um die Payload-Dateien in einer .intunewin- Datei zu verpacken. Dies ist ein komprimiertes Dateiformat, das die sichere Bereitstellung einer Anwendung ermöglicht. Einzelheiten zur Funktionsweise dieser Verpackung finden Sie in diesem Blogbeitrag. In diesem Beispiel haben wir ein Verzeichnis, das eine ausführbare Datei und eine DLL-Datei enthält. Wir verwenden das Win32 Content Prep Tool, um diese Dateien in einer .intunewin- Datei zu verpacken.
Die Ausgabedatei .intunewin wird in das von Ihnen angegebene Ausgabeverzeichnis geschrieben. In diesem Fall haben wir Dism.exe und DismCore.dll in der Datei Dism.intunewin verpackt.
Nachdem Sie nun das Windows-Anwendungspaket erstellt haben, können Sie mit dem Bereitstellen fortfahren. Navigieren Sie im Intune Admin Center zu „Apps“ > „Windows-Apps“ > „Hinzufügen“.
Wählen Sie im Dropdown-Menü „Windows-App (Win32)“ aus:
Laden Sie die zuvor erstellte .intunewin-Datei hoch und geben Sie die Informationen für Ihre Anwendung ein.
Als nächstes fügen Sie einen Install-Befehl hinzu, der in diesem Fall die ausführbare Datei (Dism.exe) sein wird. Für den Uninstall-Befehl können Sie alles eingeben. Darüber hinaus haben wir uns entschieden, diese Anwendung als „System“ auszuführen, und für das Neustartverhalten des Geräts haben wir „Keine spezifische Aktion“ ausgewählt. Wenn Sie „System“ auswählen, bedeutet das, dass es als NT AUTHORITY\SYSTEM-Konto ausgeführt wird.
Erkennungsregeln werden verwendet, um die Installation einer Anwendung zu verhindern, wenn diese bereits vorhanden ist. Wenn das Ergebnis einer Erkennungsregel erfolgreich ist, wird eine Anwendung nicht installiert. Da wir sicherstellen möchten, dass unsere Anwendung unter allen Umständen ausgeführt wird, haben wir in diesem Fall ein PowerShell-Skript hochgeladen, das versucht, eine nicht vorhandene Binärdatei auszuführen. Auf diese Weise wird das Erkennungsskript immer fehlschlagen, was bedeutet, dass die Anwendung nicht vorhanden ist, und die Installation wird fortgesetzt.
Überspringen Sie die Abschnitte „Abhängigkeiten“ und „Ersetzung“ und fügen Sie die Gruppe mit Ihrem/Ihren Zielhost(s) im Abschnitt „Zuweisungen“ hinzu:
Nachdem Sie die Windows-Anwendung erstellt haben, wird sie im Intune-Verwaltungscenter angezeigt, und in der Spalte „Zugewiesen“ sollte „Ja“ stehen. Das bedeutet, dass die Windows-Anwendung den von Ihnen angegebenen Gruppen zugewiesen wurde und nun auf ihre Bereitstellung und Ausführung wartet.
Um eine Ad-hoc-Auslösung des Intune-Agenten auf dem Zielhost durchzuführen, starten wir den Dienst „IntuneManagementExtension“ neu. Nach dem Neustart des Dienstes kann es bis zu fünf Minuten dauern, bis der Zielhost Ihre Windows-Anwendung von Intune herunterlädt und ausführt. Wenn der Zielhost Ihre Windows-Anwendung nach fünf Minuten nicht heruntergeladen und ausgeführt hat, muss der Dienst möglicherweise neu gestartet werden. Weitere Methoden zur Durchführung von Ad-hoc-Auslösung finden Sie im Abschnitt Ad-hoc-Auslösung.
Nachdem der Dienst neu gestartet wurde, können Sie AgentExecutor.log und IntuneManagementExtension.log im Verzeichnis C:\ProgramData\Microsoft\IntuneManagementExtension\Logs auf dem Zielhost überwachen. Sobald das Datum der letzten Änderung in der AgentExecutor.log Datei aktualisiert wurde, sollte der Intune-Agent die Windows-Anwendung heruntergeladen und ausgeführt haben. Zusätzlich können Sie das Verzeichnis C:\Windows\IMECache überwachen, um zu sehen, wann Ihre Anwendungsdateien heruntergeladen wurden. Es wird ein Unterordner mit einem einzigartigen GUID erstellt.
Zu diesem Zeitpunkt wurde die Windows-Anwendung bereitgestellt und ausgeführt, und wir haben ein Cobalt Strike-Beacon auf dem Ziel-Host von WIN-8675309 erhalten.
In diesem Abschnitt werden mehrere Überlegungen zur Verteidigung dargelegt, um die Konfigurationssicherheit und Erkennungsfähigkeiten von Intune gegenüber den in dieser Studie beschriebenen Angriffsszenarien zu verbessern.
Um Regeln zur Erkennung oder zur Bedrohungsjagd für Lateralbewegungen zu erstellen, die Intune missbräuchlich verwenden, müssen Sie zunächst die Protokollierung aktivieren. Wählen Sie im Intune-Verwaltungscenter „Mandantenverwaltung“ > „Diagnoseeinstellungen“ > „Diagnoseeinstellung hinzufügen“ aus:
Wählen Sie „AuditLogs” und „OperationalLogs” aus und entscheiden Sie sich dann dafür, Ihre Protokolle an einen Log Analytics-Arbeitsbereich zu senden:
Sie werden sehen, wie die Schemas IntuneAuditLogs und IntuneOperationalLogs in Ihrem Log Analytics-Arbeitsbereich nach und nach angezeigt werden.
Sobald Sie Intune-Logs in Ihrem Log Analytics-Arbeitsbereich empfangen, können Sie diesen Arbeitsbereich in einer Microsoft Sentinel-Instanz verwenden, um Bedrohungsjagd- und Analyseregeln zu erstellen, die im folgenden Abschnitt erläutert werden.
Derzeit gibt es keine öffentlich verfügbaren analytischen Regeln für Microsoft Sentinel, um die in dieser Studie beschriebenen Intune-Angriffsszenarien zu erkennen. Daher werden in den folgenden Abschnitten mehrere Regellogiken bereitgestellt, die als geplante Analyseregeln in Microsoft Sentinel für die unten aufgeführten Angriffsszenarien in Intune angewendet werden können:
Es wird empfohlen, für jede dieser Analyseregeln in Ihrer Umgebung entsprechende Tests und Anpassungen durchzuführen. Die unten hervorgehobenen KQL-Abfragen können aus diesem KQL-Queries-Repository kopiert und eingefügt werden.
Die unten verlinkte Regel-Logik löst jedes Mal eine Warnmeldung aus, wenn ein Benutzer ein PowerShell-Skript oder eine Windows-Anwendung für die Bereitstellung erstellt hat.
CreatedPSScriptOrWindowsApp.kql
Ein Beispiel für die Auslösung dieser Regel in Microsoft Sentinel wird in den folgenden Screenshots gezeigt.
Die unten verlinkte Regellogik gibt alle Benutzer zurück, die innerhalb von 24 Stunden ein PowerShell-Skript erstellt und gelöscht haben. Dies könnte ein Hinweis darauf sein, dass ein Angreifer versucht, seine Spuren nach dem Einsatz eines PowerShell-Skripts zu verwischen.
Ein Beispiel für die Auslösung dieser Regel in Microsoft Sentinel wird in den folgenden Screenshots gezeigt:
Die unten verlinkte Regellogik gibt alle Benutzer zurück, die innerhalb von 24 Stunden eine Windows-Anwendung erstellt und gelöscht haben. Dies könnte ein Hinweis darauf sein, dass ein Angreifer nach der Bereitstellung einer Windows-Anwendung versucht, seine Spuren zu verwischen.
CreatedAndDeletedWindowsApp.kql
Ein Beispiel für die Auslösung dieser Regel in Microsoft Sentinel wird in den folgenden Screenshots gezeigt:
Die unten verlinkte Regellogik gibt alle Benutzer zurück, die ein PowerShell-Skript oder eine Windows-Anwendung erstellt und innerhalb von 24 Stunden einen Neustart des Geräts veranlasst haben.
CreatedPSScriptOrWindowsAppForcedRestart.kql
Ein Beispiel für die Auslösung dieser Regel in Microsoft Sentinel wird in den folgenden Screenshots gezeigt:
Die folgende Regellogik gibt alle Benutzer zurück, die ein PowerShell-Skript oder eine Windows-Anwendung erstellt und innerhalb von 24 Stunden eine Gerätesynchronisierung durchgeführt haben.
CreatedPSScriptOrWindowsAppForcedSync.kql
Ein Beispiel für die Auslösung dieser Regel in Microsoft Sentinel wird in den folgenden Screenshots gezeigt:
Es können Genehmigungsrichtlinien erstellt werden, sodass ein Mitglied einer bestimmten Gruppe alle neuen Skript- oder Anwendungsbereitstellungen genehmigen muss. Die Anwendung dieser Richtlinien in Verbindung mit den zuvor beschriebenen Erkennungsregeln kann den Sicherheitsstatus Ihrer Intune-Instanz erheblich verbessern.
Navigieren Sie zu „Mandantenverwaltung“ > „Genehmigung durch mehrere Administratoren“ > „Zugriffsrichtlinien“ > „Erstellen“.
Geben Sie die erforderlichen Informationen, wie den Namen der Zugriffsrichtlinie, die Beschreibung und den Profiltyp, ein. Wählen Sie als Profiltyp „Skript“ aus.
Fügen Sie eine oder mehrere Gruppen hinzu, die für die Genehmigung neuer Skriptbereitstellungen zuständig sind.
Nach dem Erstellen Ihrer Richtlinie wird diese auf der Registerkarte „Zugriffsrichtlinien“ angezeigt.
Nachdem die Richtlinie nun angewendet wird, wird ein Benutzer, der versucht, ein neues Skript zu erstellen, die folgende Meldung erhalten. Nach Einreichung des Antrags mit einer geschäftlichen Begründung muss ein Genehmiger aus einer bestimmten Gruppe die Bereitstellung des Skripts genehmigen.
Die zuvor beschriebenen Schritte können auch durchgeführt werden, um eine Genehmigung für jede Anwendungsbereitstellung zu erfordern. Bitte stellen Sie sicher, dass Sie beim Erstellen der Zugriffsrichtlinie im Dropdown-Menü „Profiltyp“ die Option „App“ auswählen.
Sie können eine Zusammenfassung unserer Richtlinie einsehen, die wir erstellt haben und die den Profiltyp „App“ enthält.
Da die Richtlinie nun angewendet wird, wenn ein Benutzer versucht, eine neue Anwendung zu erstellen, erhält er die folgende Meldung. Nachdem Sie den Antrag mit einer geschäftlichen Begründung eingereicht haben, muss ihn ein Genehmiger aus einer bestimmten Genehmigungsgruppe genehmigen, bevor die Anwendung bereitgestellt wird.
Microsoft verfügt über einen Leitfaden für Best Practices zu Microsoft Entra ID, der detaillierte Anweisungen zur Sicherung Ihrer Microsoft Entra ID-Konfiguration enthält. Einige der wichtigsten Empfehlungen im Zusammenhang mit dem Missbrauch privilegierter Rollen in Microsoft Intune sind:
Die Einführung hybrider Identitätsarchitekturen und die Nutzung cloudbasierter Dienste fahren fort zu steigen. Unternehmen sind auf diese cloudbasierten Dienste angewiesen, um ihre Unternehmensinfrastruktur zu verwalten, was die Verwaltung von Benutzerendgeräten und persönlichen Geräten umfasst, die sich mit Office 365 und anderen cloudbasierten Diensten verbinden. Daher ist es entscheidend, den Missbrauch von cloudbasierten Diensten wie Microsoft Intune richtig erkennen zu können. Ziel von X-Force ist es, mit dieser Forschung weitere Untersuchungen zur Verteidigung anderer geschäftskritischer Cloud-basierter Dienste anzuregen, die von Bedrohungsakteuren für Lateralbewegungen und Codeausführung missbraucht werden können.
Wir möchten uns besonders bei den folgenden Personen für ihr Feedback zu dieser Studie und die Überprüfung der Blogbeiträge bedanken: