Enumeración

Enumeración de Dominios

Existen algunas APIs públicas de Azure que sólo conociendo el dominio del tenant un atacante podría consultar para recabar más información sobre el mismo.

A parte de utilizar google dorks y consultas con dns se puede usar lo siguiente:

SubDominios

Estructura de nombre de dominio de Azure Web Sites

Domain
Associated Service

azurewebsites.net

App Services

scm.azurewebsites.net

App Services – Management

p.azurewebsites.net

App Services

cloudapp.net

App Services

file.core.windows.net

Storage Accounts-Files

blob.core.windows.net

Storage Accounts-Blobs

queue.core.windows.net

Storage Accounts-Queues

table.core.windows.net

Storage Accounts-Tables

redis.cache.windows.net

Databases-Redis

documents.azure.com

Databases-Cosmos DB

database.windows.net

Databases-MSSQL

vault.azure.net

Key Vaults

onmicrosoft.com

Microsoft Hosted Domain

mail.protection.outlook.com

Email

sharepoint.com

SharePoint

azureedge.net

CDN

search.windows.net

Search Appliance

azure-api.net

API Services

Con la herramienta dig se tiene que ver que resuelva a algún dominio de Azure o 365

Rangos de IP de Azure

Sabiendo el dominio es perteneciente a Azure Tenant, se puede ocupar lo siguiente:

Manual Tenant ID

https://login.microsoftonline.com/<Domain_To_Audit><.onmicrosoft>.com/.well-known/openid-configuration
https://login.microsoftonline.com/getuserrealm.srf?login=auditor@atomic-nuclear.site&xml=1
https://login.microsoftonline.com/atomic-nuclear.site/.well-known/openid-configuration
API
Information
AADInternals function

login.microsoftonline.com/<domain>/.well-known/openid-configuration

Login information, including tenant ID

Get-AADIntTenantID -Domain <domain>

autodiscover-s.outlook.com/autodiscover/autodiscover.svc

All domains of the tenant

Get-AADIntTenantDomains -Domain <domain>

login.microsoftonline.com/GetUserRealm.srf?login=<UserName>

Login information of the tenant, including tenant Name and domain authentication type

Get-AADIntLoginInformation -UserName <UserName>

login.microsoftonline.com/common/GetCredentialType

Login information, including Desktop SSO information

Get-AADIntLoginInformation -UserName <UserName>

Tool AADInternals - Tenant id

También se pueden usar la herramienta AADInternals para enumerar rápidamente los dominios:

Invoke-AADIntReconAsOutsider -DomainName some.onmicrosoft.com | Format-Table

Salida de ejemplo:

Tenant brand:       Company Ltd
Tenant name:        company
Tenant id:          05aea22e-32f3-4c35-831b-52735704feb3
DesktopSSO enabled: True

Name                           DNS   MX    SPF  Type      STS
----                           ---   --    ---  ----      ---
company.com                   True  True  True  Federated sts.company.com
company.mail.onmicrosoft.com  True  True  True  Managed
company.onmicrosoft.com       True  True  True  Managed
int.company.com              False False False  Managed

Otra función de AADinternals para obtener solo el Tenant ID es:

Get-AADIntTenantID -Domain some.onmicrosoft.com

Enumeración de Usuarios

Por medio de la herramienta AADInternals se puede

Invoke-AADIntUserEnumerationAsOutsider -UserName "user@company.com"

Listar información de los correos válidos:

Get-AADIntLoginInformation -UserName "user@company.com"

Además de uso de herramienta, existen otros 3 metodos de enumeración de usuarios:

Método
Descripción

Normal

Hace referencia a la API GetCredentialType mencionada anteriormente. El método por defecto.

Login

Este método intenta iniciar sesión como 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 de autologon endpoint.

Las consultas no se registran en el registro de inicio de sesión. Como tal, funciona bien para los ataques de password spray y de fuerza bruta.

Otra herramienta para enumeración es o365screeper:

# Poner los correos en el archivo emails.txt
python.exe .\o365creeper\o365creeper.py -f .\emails.txt -o validemails.txt

Última actualización