Az - Unauthenticated Enum & Initial Entry
Inquilino de Azure
Enumeración del Inquilino
Existen algunas APIs públicas de Azure que, solo conociendo el dominio del inquilino, un atacante podría consultar para recopilar más información al respecto. Puedes consultar directamente la API o utilizar la biblioteca de PowerShell AADInternals:
API | Información | Función de AADInternals |
---|---|---|
login.microsoftonline.com/<dominio>/.well-known/openid-configuration | Información de inicio de sesión, incluido el ID del inquilino |
|
autodiscover-s.outlook.com/autodiscover/autodiscover.svc | Todos los dominios del inquilino |
|
login.microsoftonline.com/GetUserRealm.srf?login=<NombreUsuario> | Información de inicio de sesión del inquilino, incluido el Nombre del inquilino y el dominio del tipo de autenticación.
Si |
|
login.microsoftonline.com/common/GetCredentialType | Información de inicio de sesión, incluida la información de SSO de escritorio |
|
Puedes consultar toda la información de un inquilino de Azure con solo un comando de la biblioteca AADInternals:
Ejemplo de salida de la información del inquilino de Azure:
Es posible observar detalles sobre el nombre del inquilino, ID y nombre de "marca". Además, se muestra el estado del Inicio de sesión único en el escritorio (SSO), también conocido como SSO sin interrupciones. Cuando está habilitada, esta característica facilita la determinación de la presencia (enumeración) de un usuario específico dentro de la organización objetivo.
Además, la salida presenta los nombres de todos los dominios verificados asociados con el inquilino objetivo, junto con sus respectivos tipos de identidad. En el caso de los dominios federados, se revela también el Nombre de Dominio Completo (FQDN) del proveedor de identidad en uso, típicamente un servidor ADFS. La columna "MX" especifica si los correos electrónicos se envían a Exchange Online, mientras que la columna "SPF" denota la inclusión de Exchange Online como remitente de correos electrónicos. Es importante tener en cuenta que la función actual de reconocimiento no analiza las declaraciones "include" dentro de los registros SPF, lo que puede resultar en falsos negativos.
Enumeración de Usuarios
Es posible verificar si un nombre de usuario existe dentro de un inquilino. Esto incluye también a los usuarios invitados, cuyo nombre de usuario tiene el formato:
El correo electrónico es la dirección de correo electrónico del usuario donde en “@” se reemplaza con guion bajo “_“.
Con AADInternals, puedes verificar fácilmente si el usuario existe o no:
Unauthenticated Enumeration and Initial Entry
Introduction
In this section, we will cover the techniques used for unauthenticated enumeration and gaining initial access to Azure environments. The goal is to provide an overview of the methods that can be used to gather information and potentially gain access to Azure resources without the need for valid credentials.
Enumeration Techniques
1. DNS Enumeration
DNS enumeration can be a valuable technique to discover subdomains and other domain-related information that can be used in further attacks.
2. Service Enumeration
Service enumeration involves identifying services running in the Azure environment that may have known vulnerabilities or misconfigurations that can be exploited.
3. Resource Enumeration
Resource enumeration focuses on identifying Azure resources such as storage accounts, virtual machines, and databases that may contain sensitive information or misconfigurations.
Initial Entry
Once enumeration is complete and potential entry points have been identified, the next step is to attempt to gain initial access to the Azure environment. This can involve exploiting misconfigurations, weak credentials, or known vulnerabilities in Azure services.
By following these techniques, an attacker can gain a foothold in the Azure environment and begin further exploration and exploitation of the target environment.
También puedes usar un archivo de texto que contenga una dirección de correo electrónico por fila:
Hay tres métodos de enumeración diferentes para elegir:
Método | Descripción |
---|---|
Normal | Esto se refiere al API GetCredentialType mencionado anteriormente. El método predeterminado. |
Login | Este método intenta iniciar sesión como el usuario. Nota: las consultas se registrarán en el registro de inicio de sesión. |
Autologon | Este método intenta iniciar sesión como el usuario a través del punto de conexión de autologon. ¡Las consultas no se registran en el registro de inicio de sesión! Por lo tanto, también funciona bien para ataques de spray de contraseñas y de fuerza bruta. |
Después de descubrir los nombres de usuario válidos, puedes obtener información sobre un usuario con:
El script o365creeper también te permite descubrir si un correo electrónico es válido.
Enumeración de usuarios a través de Microsoft Teams
Otra buena fuente de información es Microsoft Teams.
La API de Microsoft Teams permite buscar usuarios. En particular, los puntos finales de "búsqueda de usuario" externalsearchv3 y searchUsers podrían ser utilizados para solicitar información general sobre cuentas de usuario inscritas en Teams.
Dependiendo de la respuesta de la API, es posible distinguir entre usuarios que no existen y usuarios existentes que tienen una suscripción válida a Teams.
El script TeamsEnum podría ser utilizado para validar un conjunto dado de nombres de usuario contra la API de Teams.
Unauthenticated Enumeration and Initial Entry
Introduction
In this section, we will cover the techniques used to perform unauthenticated enumeration and gain initial access to Azure environments. Unauthenticated enumeration involves gathering information from publicly available sources without the need for valid credentials. This information can then be used to identify potential entry points into the target Azure environment.
Tools and Techniques
Azure Resource Manager (ARM) APIs
Azure Resource Manager (ARM) APIs can be leveraged to gather information about Azure resources without authentication. By querying these APIs, an attacker can discover valuable information such as resource types, configurations, and dependencies.
DNS Enumeration
Performing DNS enumeration can provide insights into the Azure environment's infrastructure, including subdomains, IP addresses, and services in use. This information can be crucial for identifying potential targets for further exploitation.
Web Scraping
Web scraping techniques can be used to extract information from publicly accessible Azure portals and websites. This information may include details about services, applications, and configurations that can help in planning the attack.
Initial Entry
Once sufficient information has been gathered through unauthenticated enumeration, the next step is to leverage this information to gain initial access to the Azure environment. This can be achieved through various means, such as exploiting misconfigurations, weak credentials, or known vulnerabilities in Azure services.
By combining the information obtained during the enumeration phase with targeted exploitation techniques, an attacker can establish a foothold in the Azure environment and begin further exploration and exploitation.
Además, es posible enumerar información de disponibilidad sobre usuarios existentes como la siguiente:
Disponible
Ausente
No molestar
Ocupado
Desconectado
Si se configura un mensaje de fuera de la oficina, también es posible recuperar el mensaje usando TeamsEnum. Si se especificó un archivo de salida, los mensajes de fuera de la oficina se almacenan automáticamente dentro del archivo JSON:
El siguiente contenido es de un libro de hacking sobre técnicas de hacking. El contenido es del archivo pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md.
Enumeración y Entrada Inicial sin Autenticación
La enumeración sin autenticación es una fase crítica en una evaluación de seguridad. Permite a un atacante recopilar información valiosa sobre la infraestructura objetivo sin la necesidad de credenciales. Esta información puede ser utilizada para identificar posibles puntos de entrada y debilidades en el sistema.
Servicios de Azure
Ahora que conocemos los dominios que el inquilino de Azure está utilizando, es hora de intentar encontrar los servicios de Azure expuestos.
Puedes utilizar un método de MicroBust para este objetivo. Esta función buscará el nombre de dominio base (y algunas permutaciones) en varios dominios de servicios de Azure:
Almacenamiento Abierto
Puedes descubrir almacenamiento abierto con una herramienta como InvokeEnumerateAzureBlobs.ps1 que utilizará el archivo Microburst/Misc/permitations.txt
para generar permutaciones (muy simples) e intentar encontrar cuentas de almacenamiento abiertas.
URLs SAS
Un token de acceso compartido (SAS) es una URL que proporciona acceso a cierta parte de una cuenta de almacenamiento (puede ser un contenedor completo, un archivo...) con permisos específicos (lectura, escritura...) sobre los recursos. Si encuentras uno filtrado podrías acceder a información sensible, se ven así (esto es para acceder a un contenedor, si solo otorgara acceso a un archivo, la ruta de la URL también contendría ese archivo):
https://<nombre_cuenta_almacenamiento>.blob.core.windows.net/nuevocontenedor?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
Utiliza Storage Explorer para acceder a los datos
Compromiso de Credenciales
Phishing
Phishing Común (credenciales o Aplicación OAuth -Ataque de Concesión de Consentimiento Ilícito-)
Password Spraying / Fuerza Bruta
Az - Password SprayingReferencias
Last updated