Az - Unauthenticated Enum & Initial Entry
Azure-Mandant
Mandanten-Enumeration
Es gibt einige öffentliche Azure-APIs, die ein Angreifer nur durch Kenntnis der Domäne des Mandanten abfragen könnte, um weitere Informationen darüber zu sammeln. Sie können die API direkt abfragen oder die PowerShell-Bibliothek AADInternals** verwenden:**
API | Informationen | AADInternals-Funktion |
---|---|---|
login.microsoftonline.com/<domain>/.well-known/openid-configuration | Anmeldeinformationen, einschließlich Mandanten-ID |
|
autodiscover-s.outlook.com/autodiscover/autodiscover.svc | Alle Domänen des Mandanten |
|
login.microsoftonline.com/GetUserRealm.srf?login=<UserName> | Anmeldeinformationen des Mandanten, einschließlich Mandantenname und Domäne Authentifizierungstyp.
Wenn |
|
login.microsoftonline.com/common/GetCredentialType | Anmeldeinformationen, einschließlich Desktop SSO-Informationen |
|
Sie können alle Informationen eines Azure-Mandanten mit nur einem Befehl der AADInternals Bibliothek abfragen:
Beispiel für die Ausgabe der Azure-Mandanteninformationen:
Es ist möglich, Details zum Namen, zur ID und zum "Markennamen" des Mandanten zu beobachten. Darüber hinaus wird der Status des Desktop Single Sign-On (SSO), auch bekannt als Seamless SSO, angezeigt. Wenn diese Funktion aktiviert ist, erleichtert sie die Bestimmung der Anwesenheit (Aufzählung) eines bestimmten Benutzers innerhalb der Zielorganisation.
Darüber hinaus zeigt die Ausgabe die Namen aller überprüften Domänen an, die mit dem Zielmandanten verbunden sind, zusammen mit ihren jeweiligen Identitätstypen. Im Fall von föderierten Domänen wird auch der vollständig qualifizierte Domänenname (FQDN) des verwendeten Identitätsanbieters, in der Regel ein ADFS-Server, offengelegt. Die Spalte "MX" gibt an, ob E-Mails an Exchange Online weitergeleitet werden, während die Spalte "SPF" die Auflistung von Exchange Online als E-Mail-Absender angibt. Es ist wichtig zu beachten, dass die aktuelle Aufklärungsfunktion die "include"-Anweisungen innerhalb von SPF-Einträgen nicht analysiert, was zu falschen Negativen führen kann.
Benutzer-Aufzählung
Es ist möglich zu überprüfen, ob ein Benutzername innerhalb eines Mandanten existiert. Dies umfasst auch Gastbenutzer, deren Benutzername im Format vorliegt:
Die E-Mail ist die E-Mail-Adresse des Benutzers, bei der das "@" durch einen Unterstrich "_" ersetzt wird.
Mit AADInternals können Sie einfach überprüfen, ob der Benutzer existiert oder nicht:
Nicht authentifizierte Enumeration und Erstzugriff
In diesem Abschnitt werden verschiedene nicht authentifizierte Angriffstechniken beschrieben, die von Angreifern verwendet werden können, um Informationen zu sammeln und den Einstiegspunkt in Azure-Ressourcen zu identifizieren. Diese Techniken können dazu beitragen, Schwachstellen in der Konfiguration aufzudecken und Sicherheitslücken zu identifizieren, die es einem Angreifer ermöglichen könnten, Zugriff auf Azure-Ressourcen zu erlangen.
Du kannst auch eine Textdatei verwenden, die eine E-Mail-Adresse pro Zeile enthält:
Es gibt drei verschiedene Aufzählungsmethoden, aus denen Sie wählen können:
Methode | Beschreibung |
---|---|
Normal | Dies bezieht sich auf die oben erwähnte GetCredentialType-API. Die Standardmethode. |
Login | Diese Methode versucht, sich als Benutzer anzumelden. Hinweis: Abfragen werden im Anmeldeprotokoll protokolliert. |
Autologon | Diese Methode versucht, sich als Benutzer über den Autologon-Endpunkt anzumelden. Abfragen werden nicht protokolliert im Anmeldeprotokoll! Funktioniert daher auch gut für Passwort-Spray- und Brute-Force-Angriffe. |
Nachdem Sie die gültigen Benutzernamen entdeckt haben, können Sie Informationen über einen Benutzer erhalten:
Das Skript o365creeper ermöglicht es auch, herauszufinden, ob eine E-Mail gültig ist.
Benutzerenumerierung über Microsoft Teams
Eine weitere gute Informationsquelle ist Microsoft Teams.
Die API von Microsoft Teams ermöglicht die Suche nach Benutzern. Insbesondere die Endpunkte "externalsearchv3" und "searchUsers" könnten verwendet werden, um allgemeine Informationen über Teams-registrierte Benutzerkonten abzurufen.
Je nach API-Antwort ist es möglich, zwischen nicht vorhandenen Benutzern und vorhandenen Benutzern mit gültigem Teams-Abonnement zu unterscheiden.
Das Skript TeamsEnum könnte verwendet werden, um einen bestimmten Satz von Benutzernamen gegen die Teams-API zu validieren.
Nicht authentifizierte Enumeration und Erstzugriff
In diesem Abschnitt werden verschiedene nicht authentifizierte Techniken zur Informationsgewinnung und zum Erstzugriff auf Azure-Ressourcen behandelt.
Nicht authentifizierte Enumeration
1. Azure-AD-Enumeration
Azure AD Connect Discovery kann verwendet werden, um Benutzer, Gruppen und Computer im Azure AD zu enumerieren.
2. Azure-AD-Gruppenmitgliedschaft
Die Mitgliedschaft in Azure AD-Gruppen kann mit dem Tool Get-AzureADGroupMember
überprüft werden.
Erstzugriff
1. Azure-VM-Initialzugriff
Bei Azure-VMs kann der Zugriff über RDP oder SSH erlangt werden, wenn die entsprechenden Ports geöffnet sind.
2. Azure-Storage-Kontoübernahme
Durch die Übernahme eines Azure-Storage-Kontos kann auf gespeicherte Daten zugegriffen werden.
Darüber hinaus ist es möglich, Verfügbarkeitsinformationen über vorhandene Benutzer wie folgt aufzulisten:
Verfügbar
Abwesend
Bitte nicht stören
Beschäftigt
Offline
Wenn eine Abwesenheitsnachricht konfiguriert ist, ist es auch möglich, die Nachricht mithilfe von TeamsEnum abzurufen. Wenn eine Ausgabedatei angegeben wurde, werden die Abwesenheitsnachrichten automatisch in der JSON-Datei gespeichert:
Nicht authentifizierte Enumeration und Erstzugriff
In diesem Abschnitt werden wir uns damit befassen, wie wir nicht authentifizierte Informationen über die Zielsysteme sammeln können, um einen ersten Zugriff zu erhalten. Wir werden verschiedene Techniken und Tools verwenden, um Schwachstellen zu identifizieren und potenzielle Angriffspunkte zu erkennen. Es ist wichtig zu beachten, dass diese Techniken nur in autorisierten Tests anzuwenden sind und die Zustimmung des Eigentümers des Zielsystems erforderlich ist.
Azure-Dienste
Nun, da wir die Domänen des Azure-Mandanten kennen, ist es an der Zeit, zu versuchen, exponierte Azure-Dienste zu finden.
Sie können eine Methode aus MicroBust für dieses Ziel verwenden. Diese Funktion wird den Basisdomänennamen (und ein paar Permutationen) in mehreren Azure-Dienst-Domänen suchen:
Offener Speicher
Sie könnten offenen Speicher mit einem Tool wie InvokeEnumerateAzureBlobs.ps1 entdecken, das die Datei Microburst/Misc/permitations.txt
verwendet, um Permutationen (sehr einfach) zu generieren, um zu versuchen, offene Speicherkonten zu finden.
SAS URLs
Ein Shared Access Signature (SAS) URL ist eine URL, die Zugriff auf einen bestimmten Teil eines Speicherkontos (könnte ein vollständiger Container, eine Datei usw. sein) mit bestimmten Berechtigungen (Lesen, Schreiben usw.) über die Ressourcen gewährt. Wenn Sie einen solchen URL finden, der öffentlich zugänglich ist, könnten Sie auf sensible Informationen zugreifen. Sie sehen so aus (um auf einen Container zuzugreifen, wenn der Zugriff nur auf eine Datei gewährt wurde, würde der Pfad der URL auch diese Datei enthalten):
https://<storage_account_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D
Verwenden Sie Storage Explorer, um auf die Daten zuzugreifen
Zugangsdaten kompromittieren
Phishing
Gängiges Phishing (Zugangsdaten oder OAuth-App -Illicit Consent Grant Attack-)
Passwort-Spraying / Brute-Force
pageAz - Password SprayingReferenzen
Last updated