Az - Unauthenticated Enum & Initial Entry
Az - Enumération non authentifiée et Entrée initiale
Azure Tenant
Énumération du locataire
Il existe quelques API Azure publiques pour lesquelles, en connaissant simplement le domaine du locataire, un attaquant pourrait interroger pour recueillir plus d'informations à ce sujet. Vous pouvez interroger directement l'API ou utiliser la bibliothèque PowerShell AADInternals:
API | Information | Fonction AADInternals |
---|---|---|
login.microsoftonline.com/<domain>/.well-known/openid-configuration | Informations de connexion, y compris l'ID du locataire |
|
autodiscover-s.outlook.com/autodiscover/autodiscover.svc | Tous les domaines du locataire |
|
login.microsoftonline.com/GetUserRealm.srf?login=<UserName> | Informations de connexion du locataire, y compris le nom du locataire et le domaine du type d'authentification.
Si |
|
login.microsoftonline.com/common/GetCredentialType | Informations de connexion, y compris les informations de SSO de bureau |
|
Vous pouvez interroger toutes les informations d'un locataire Azure avec juste une commande de la bibliothèque AADInternals :
Exemple de sortie des informations du locataire Azure :
Il est possible d'observer des détails sur le nom du locataire, son ID et son nom "commercial". De plus, le statut de la connexion unique au bureau (SSO), également connu sous le nom de Seamless SSO, est affiché. Lorsqu'il est activé, cette fonctionnalité facilite la détermination de la présence (énumération) d'un utilisateur spécifique au sein de l'organisation cible.
De plus, la sortie présente les noms de tous les domaines vérifiés associés au locataire cible, ainsi que leurs types d'identité respectifs. Dans le cas des domaines fédérés, le nom de domaine complet (FQDN) du fournisseur d'identité utilisé, généralement un serveur ADFS, est également divulgué. La colonne "MX" spécifie si les e-mails sont routés vers Exchange Online, tandis que la colonne "SPF" indique l'inscription de Exchange Online en tant qu'expéditeur d'e-mails. Il est important de noter que la fonction actuelle de reconnaissance ne parse pas les déclarations "include" dans les enregistrements SPF, ce qui peut entraîner des faux négatifs.
Énumération des utilisateurs
Il est possible de vérifier si un nom d'utilisateur existe au sein d'un locataire. Cela inclut également les utilisateurs invités, dont le nom d'utilisateur est au format :
L'email est l'adresse e-mail de l'utilisateur où le "@" est remplacé par un tiret bas "_".
Avec AADInternals, vous pouvez facilement vérifier si l'utilisateur existe ou non :
Enumération non authentifiée et entrée initiale
Introduction
In this scenario, we will cover the techniques used to perform unauthenticated enumeration and gain initial access to an Azure environment.
Enumeration
Public Information Gathering
Identify Azure Resources: Use tools like
azurite
to identify Azure storage accounts, containers, and blobs.DNS Enumeration: Enumerate subdomains using tools like
Sublist3r
orAmass
.SSL Certificate Enumeration: Use
SSLyze
to discover SSL certificates associated with Azure services.
Service Enumeration
HTTP Enumeration: Use tools like
Dirb
orGobuster
to discover web applications and directories.FTP Enumeration: Enumerate FTP services using tools like
Nmap
orFTP-User-Enum
.
Initial Access
Exploiting Weaknesses
Default Credentials: Check for default credentials on services like Azure Storage Accounts or Virtual Machines.
Vulnerabilities: Exploit known vulnerabilities in Azure services to gain initial access.
Brute Force Attacks: Conduct brute force attacks against services like SSH or web applications.
Social Engineering
Phishing: Use phishing techniques to trick users into revealing their credentials.
Impersonation: Impersonate Azure administrators to gain access to sensitive information.
By following these techniques, an attacker can perform unauthenticated enumeration and gain initial access to an Azure environment.
Vous pouvez également utiliser un fichier texte contenant une adresse e-mail par ligne :
Il existe trois méthodes d'énumération différentes parmi lesquelles choisir :
Méthode | Description |
---|---|
Normale | Il s'agit de l'API GetCredentialType mentionnée ci-dessus. La méthode par défaut. |
Connexion | Cette méthode tente de se connecter en tant qu'utilisateur. Remarque : les requêtes seront enregistrées dans le journal des connexions. |
Autologon | Cette méthode tente de se connecter en tant qu'utilisateur via le point de terminaison autologon. Les requêtes ne sont pas enregistrées dans le journal des connexions ! Par conséquent, fonctionne également bien pour les attaques de pulvérisation de mots de passe et de force brute. |
Après avoir découvert les noms d'utilisateur valides, vous pouvez obtenir des informations sur un utilisateur avec :
Le script o365creeper vous permet également de découvrir si un e-mail est valide.
Énumération des utilisateurs via Microsoft Teams
Une autre bonne source d'informations est Microsoft Teams.
L'API de Microsoft Teams permet de rechercher des utilisateurs. En particulier, les points de terminaison "recherche externe" externalsearchv3 et searchUsers peuvent être utilisés pour demander des informations générales sur les comptes d'utilisateurs inscrits dans Teams.
En fonction de la réponse de l'API, il est possible de distinguer entre les utilisateurs inexistants et les utilisateurs existants ayant un abonnement Teams valide.
Le script TeamsEnum pourrait être utilisé pour valider un ensemble donné de noms d'utilisateur par rapport à l'API Teams.
Enumération non authentifiée et entrée initiale
Introduction
In this section, we will cover techniques for enumerating information from Azure without the need for authentication. This information can be useful for initial reconnaissance and identifying potential entry points into the Azure environment.
Azure Blob Storage
Azure Blob Storage is a service for storing large amounts of unstructured data, such as text or binary data. By enumerating publicly accessible Blob Storage containers, we can discover sensitive information that has been inadvertently exposed.
Tools
Azure Storage Explorer: A graphical tool for browsing Blob Storage containers and managing their contents.
AzCopy: A command-line tool for copying data to and from Blob Storage.
Enumeration
Enumerate Blob Storage containers using tools like Azure Storage Explorer or AzCopy.
Look for sensitive data such as configuration files, credentials, or backups that may have been stored insecurely.
Azure Cosmos DB
Azure Cosmos DB is a globally distributed, multi-model database service. Enumerating Cosmos DB instances can reveal valuable information about the data stored within.
Tools
Cosmos DB Explorer: An interactive web-based tool for querying and managing Cosmos DB databases.
Enumeration
Enumerate Cosmos DB instances to identify databases and collections.
Query the databases to extract information about the data schema and stored documents.
By leveraging these techniques, pentesters can gather valuable information about an Azure environment without the need for authentication, helping to identify potential security risks and entry points for further exploitation.
De plus, il est possible d'énumérer des informations sur la disponibilité des utilisateurs existants comme suit :
Disponible
Absent
Ne pas déranger
Occupé
Hors ligne
Si un message d'absence est configuré, il est également possible de récupérer le message en utilisant TeamsEnum. Si un fichier de sortie a été spécifié, les messages d'absence sont automatiquement stockés dans le fichier JSON :
Enumération non authentifiée et entrée initiale
Découverte d'instances Azure
Pour découvrir les instances Azure non authentifiées, vous pouvez utiliser des outils tels que azurite
ou CloudEnum
. Ces outils vous permettent de rechercher des instances Azure en spécifiant un domaine cible ou une plage d'adresses IP.
Utilisation de azurite
:
azurite
:Utilisation de CloudEnum
:
CloudEnum
:Attaques d'entrée initiale
Une fois que vous avez identifié des instances Azure non authentifiées, vous pouvez procéder à des attaques d'entrée initiale telles que l'injection de commandes, la falsification de jetons ou l'exploitation de vulnérabilités connues pour obtenir un accès initial au système cible.
Injection de commandes :
Falsification de jetons :
Exploitation de vulnérabilités :
Services Azure
Maintenant que nous connaissons les domaines utilisés par le locataire Azure, il est temps d'essayer de trouver les services Azure exposés.
Vous pouvez utiliser une méthode de MicroBust pour atteindre cet objectif. Cette fonction recherchera le nom de domaine de base (et quelques permutations) dans plusieurs domaines de services Azure :
Stockage ouvert
Vous pourriez découvrir un stockage ouvert avec un outil tel que InvokeEnumerateAzureBlobs.ps1 qui utilisera le fichier Microburst/Misc/permitations.txt
pour générer des permutations (très simples) afin de trouver des comptes de stockage ouverts.
URL SAS
Un jeton d'accès partagé (SAS) est une URL qui fournit l'accès à une certaine partie d'un compte de stockage (peut être un conteneur complet, un fichier...) avec des autorisations spécifiques (lecture, écriture...) sur les ressources. Si vous en trouvez un qui a fuité, vous pourriez accéder à des informations sensibles, ils ressemblent à ceci (c'est pour accéder à un conteneur, s'il ne faisait que accorder l'accès à un fichier, le chemin de l'URL contiendrait également ce fichier) :
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
Utilisez Storage Explorer pour accéder aux données
Compromission des identifiants
Hameçonnage
Hameçonnage Courant (identifiants ou application OAuth -Attaque de Consentement Illicite-)
Essai de Mots de Passe / Brute-Force
pageAz - Password SprayingRéférences
Dernière mise à jour