Teams Guest Enumeration

Azure Active Directory Enumeration durch Gäste in Microsoft Teams

Was bedeutet das Finding Teams Guest Enumeration?

Microsoft Teams bietet standardmäßig die Möglichkeit externe Nutzer mit einem Microsoft Account, der nicht dem eigenen Microsoft Azure Tenant angehört, als Gäste in ein Team zu integrieren. Diese Gäste haben zwar eingeschränkte Rechte, können aber dennoch in den Standardeinstellungen vom Azure Tenant auf Informationen zugreifen, die normalerweise nicht für sie bestimmt sein sollten. Im hier beschriebenen Finding haben Gäste die Möglichkeit über die Azure-PowerShell sämtliche Accounts und Gruppen innerhalb des Azure Tenant zu enumerieren. Dies kann auch durch ein Skript automatisiert werden.

Du willst Dir die Folgen eines erfolgreichen Hackerangriffs auf
Dein IT-System ersparen?
Teste jetzt deine IT durch einen professionellen Penetrationstest!
Zum Penetrationstest

Vorbereitungen zur Teams Guest Enumeration

PowerShell

Für die Enumerierung wird eine PowerShell mit dem Modul AzureAD  (Azure Active Directory PowerShell for Graph) benötigt. Der PowerShell Befehl für die Modulinstallation hierfür ist „Install-Module AzureAD“. Beachte dabei das die PowerShell mit administrativen Rechten ausgeführt werden muss.

 

Microsoft Docs: https://docs.microsoft.com/en-us/powershell/azure/active-directory/overview?view=azureadps-2.0

 

Hinweis: Das Vorgängermodul von AzureAD ist „MSOnline PowerShell“ und das Nachfolgemodul ist/wird „Microsoft Graph PowerShell“. In unseren Test verwenden wir noch das Modul AzureAD, da wir mit diesem keine Einschränkungen feststellen konnten.

 

Soll die Enumerierung nun auch automatisiert durchgeführt werden, kann unteranderem das Modul DCToolbox von Daniel Chronlund dazu verwendet werden. Die Installation führen wir mit dem PowerShell Befehl „Install-Module DCToolbox“ aus.

 

GitHub: https://github.com/DanielChronlund/DCToolbox

 

Da es sich bei DCToolbox um kein offizielles Paket für PowerShell handelt muss, je nach Ausführungsrichtliniebereich, die Nutzung in der Folge durch den Befehl „Set-ExecutionPolicy Bypass -Force“ erlaubt werden. Nach Ausführung des Skriptes kann die Ausführungsrichtliniebereich mit „Set-ExecutionPolicy Default“ wieder zurückgesetzt werden.

Azure Active Directory Enumeration durch Gäste in Microsoft Teams

Azure Tenant

Damit eine Enumeration über einen Gastzugang möglich ist, wird die Tenant-ID des zu enumerierenden Azure benötigt. Diese kann wie folgt herausgefunden werden;

 

1. In der Browserversion von Microsoft Teams in welchem der Gastzugang besteht, ist die Tenant-ID Teil der aufgerufenen URL.

Azure Active Directory Enumeration durch Gäste in Microsoft Teams
2.     Über den Browseraufruf: https://login.microsoftonline.com//v2.0/.well-known/openid-configuration
Teams Guest Enumeration

3. Oder über die Website: https://www.whatismytenantid.com

Teams Guest Enumeration

Teams Guest Enumeration

Ein Freund, der kennt einen Freund, der kennt einen Freund, …

Die Theorie dahinter ist recht simpel, wenn auch anfangs etwas verwirrend. Über PowerShell enumeriert der Gast Benutzer zuerst einen Azure Benutzer des Teams in welchem er sich befindet. Danach fragt er die Gruppenzugehörigkeiten des Azure Benutzers an. In diesen Gruppen wiederum kann er ebenfalls die Benutzer enumerieren und mit diesen Benutzern neue Gruppen und damit auch wieder neue Benutzer. Durch dieses vorgehen können große Teile, im schlimmsten Fall sogar das gesamte Azure Active Directory enumeriert werden.

Die manuelle Enumeration mit PowerShell Befehlen

In der Praxis sieht das wie folgt aus:

 

1. Zuerst muss sich über PowerShell mit den installierten AzureAD Modul in der Gast Azure Tenant eingeloggt werden. Dafür wird der Befehl …

				
					Connect-AzureAD -TenantId TENANT-ID
				
			

… verwendet 

Powershell Enumeration

2. Nach erfolgreichem Login kann die Enumerierung schon beginnen. Dafür wird zuerst ein Benutzer des Azure Tenant mit …

				
					Get-AzureADUser -ObjectId AZURE-BENUTZER-EMAIL
				
			

… angefragt.

Powershell Enumeration

Proof of Concept: Eine direkte Enumerierung der Azure Benutzer ist standartmäßig für Gäste verboten.

Powershell Enumeration

3. Mit dem Befehl …

				
					Get-AzureADUserMembership -ObjectId (Get-AzureADUser -ObjectId OBJECT-ID-BENUTZER).UserPrincipalNAame
				
			

… können die Gruppenzugehörigkeiten des Benutzer aufgezählt werden.

4. Daraufhin werden die Benutzer der einzelnen Gruppen mit …

				
					Get-AzureADGroupMember -All:$true -ObjectId OBJECT-ID-GRUPPE
				
			

… enumeriert.

Powershell Enumeration

5. und dann beginnt das Ganze von vorne.

Automatisiert mit DCToolbox

Mit dem Befehl …

				
					Get-DCAzureADUsersAndGroupsAsGuest -TenantId TENANT-ID -AccountId GAST-BENUTZER-EMAIL -InterestingUsers AZURE-BENUTZER-EMAIL
				
			

kann das Azure Active Directory, so weit wie möglich, automatisiert enumeriert werden.

Solution

Einschränkung des Gastzugriffs auf restriktive Einstellungen

Im Administrationsbereich des Azure Tenant unter: https://portal.azure.com/#blade/Microsoft_AAD_IAM/AllowlistPolicyBlade muss die Einstellung „Der Gastbenutzerzugriff ist auf Eigenschaften und Mitgliedschaften eigener Verzeichnisobjekte beschränkt (restriktivste Einstellung)“ ausgewählt werden. Hierdurch erhalten Gäste keinen Zugriff mehr auf Informationen zu weiteren Nutzern und Gruppen im Tenant.

Teams Guest Enumeration

Erweiterte Lösung

In den meisten Fällen ist es empfehlenswert den Zugriff von Gastkonten auf den Tenant über die Azure-PowerShell komplett zu unterbinden. Dies kann über eine Konfiguration des „Conditional Access“ erreicht werden. Hierzu wird eine Azure AD Premium P1-Lizenz oder höher benötigt. Wie im Screenshot dargestellt können über „Conditional Access“ Policies erstellt werden, die bestimmten Nutzergruppen den Zugriff auf Apps erlauben oder verweigern (über White- oder Blacklist-Verfahren).

Teams Guest Enumeration

Hinweis

Bei der Behebung des Findings kann auch darüber gesprochen werden, ob der Zugriff auf die Azure-PowerShell auch für Azure AD Benutzer eingeschränkt werden sollte, da jeder Benutzer auch standardmäßig die Berechtigung für die Enumeration besitzt. Ist dies der Fall, sollte auch der Zugriff auf das Azure AD Administrationsportal für Nicht-Administratoren gesperrt werden. Die Umsetzung erfolgt über die Auswahl „Ja“ in der Einstellung „Zugreifen auf das Azure AD-Verwaltungsportal“.

Steigere jetzt die Sicherheit Deines IT-Systems!
Von uns erhältst Du eine ausführliche Beratung!
Jetzt kontaktieren
ANDERE BEITRÄGE

Inhaltsverzeichnis

Willst Du Teil unseres Teams werden?

Wir verwenden Cookies, um Ihnen die bestmögliche Erfahrung zu bieten. Wenn Sie unsere Website weiterhin besuchen, stimmen Sie der Verwendung von Cookies zu, wie in unserer Datenschutzerklärung beschrieben.