Page cover

Reconocimiento externo

El reconocimiento externo se realiza con el objetivo de obtener información general y pública sobre el Tenant de la organización/dominio objetivo.

Alguna información puede obtenerse de forma manual al realizar una petición contra determinados recursos de Microsoft. No obstante, existen varias herramientas y scripts que permiten automatizar algunas acciones.

Enumeración del Tenant

Conociendo un email de la organización, se podría obtener información asociada al Tenant donde se encuentra.

Microsoft - getuserrealm

curl "https://login.microsoftonline.com/getuserrealm.srf?login=<Email corporativo>&xml=1"
<RealmInfo Success="true">
<State>4</State>
<UserState>1</UserState>
<Login>[email protected]</Login>
<NameSpaceType>Managed</NameSpaceType>
<DomainName>xtormincorp.com</DomainName>
<IsFederatedNS>false</IsFederatedNS>
<FederationBrandName>Xtormin Corp</FederationBrandName>
<CloudInstanceName>microsoftonline.com</CloudInstanceName>
<CloudInstanceIssuerUri>urn:federation:MicrosoftOnline</CloudInstanceIssuerUri>
</RealmInfo>

Microsoft - openid-configuration

Para obtener el ID del Tenant e información de OpenID, se puede utilizar el siguiente recurso, donde se indicará el dominio objetivo:

curl "https://login.microsoftonline.com/<dominio>/.well-known/openid-configuration"
# Obtener toda la información
Invoke-AADIntReconAsOutsider -DomainName <dominio>
Invoke-AADIntReconAsOutsider -DomainName xtormincorp.onmicrosoft.com

# Nombre del Tenant, autenticación, nombre, etc.
Get-AADIntLoginInformation -UserName <Email corporativo>

# Obtener ID del tenant
Get-AADIntTenantID -Domain xtormincorp.onmicrosoft.com

# Obtener los dominios de los tenant
Get-AADIntTenantDomains -Domain xtormincorp.onmicrosoft.com

Enumeración de emails

Se puede obtener una lista inicial de emails de la organización por medio de técnicas de OSINT o una lista de posibles emails.

Posteriormente, si se quiere comprobar si un email existe o no en el Tenant, sin agotar intentos de inicio de sesión, se puede usar el recurso GetCredentialType para ello, se realiza la siguiente petición POST indicando el email:

https://login.microsoftonline.com/common/GetCredentialType
POST /common/GetCredentialType HTTP/1.1
Host: login.microsoftonline.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:123.0) Gecko/20100101 Firefox/123.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Length: 76
Content-Type: application/json

{
"username":"[email protected]",
"isOtherIdpSupported":  true
}

O365EmailValidator

https://github.com/xtormin/PowerPentest/tree/4bd914593a03128c77ed1747c14c843b3f966563/Azure

O365EmailValidator: Si se desea automatizar esto, también se puede utilizar el siguiente script indicando la lista de emails que se quiera comprobar.

wget "https://github.com/xtormin/PowerPentest/blob/4bd914593a03128c77ed1747c14c843b3f966563/Azure/O365EmailValidator.ps1"
. .\O365EmailValidator.ps1
# Ejecución del script con una lista de posibles emails
Invoke-O365EmailValidator -file emails.txt -output emails_validated.txt

Ejemplo de emails.txt:

Enumeración de subdominios

MicroBurst

MicroBust: https://github.com/NetSPI/MicroBurst

# Enumeración de subdominios de xtormincorp.com
# Para ello se usa el nombre base "xtormincorp"
Invoke-EnumerateAzureSubDomains -Base xtormincorp -Verbose

Enumeración de Blobs

MicroBurst

MicroBust: https://github.com/NetSPI/MicroBurst

# Enumeración de blobs de xtormincorp.com
# Para ello se usa el nombre base "xtormincorp"
Invoke-EnumerateAzureBlobs -Base xtormincorp -Verbose

Última actualización

¿Te fue útil?