# Acceso anónimo

<mark style="color:red;">Storage Accounts / Cuentas de almacenamiento</mark>

Las cuentas de almacenamiento (*Storage Accounts*) cuentan con tres niveles de acceso:

<table><thead><tr><th width="160.33333333333331">Tipo de acceso</th><th width="177">Permisos</th><th>Descripción</th></tr></thead><tbody><tr><td>Private</td><td>Sin acceso público de lectura</td><td>Requiere autorización de acceso al contenedor y sus blobs. Es la opción predeterminada de los nuevos contenedores.</td></tr><tr><td>Blob</td><td>Acceso público de lectura sólo para blobs</td><td>Es posible acceder al contenedor de forma anónima, pero no es posible acceder a los datos sin autorización.</td></tr><tr><td>Container</td><td>Acceso público de lectura para el contenedor y sus blobs</td><td>Es posible acceder al contenedor y sus blobs de forma anónima, pero no se puede acceder a la configuración de permisos ni metadatos del contenedor.</td></tr></tbody></table>

Ejemplo de una cuenta de almacenamiento:

```
http://<storage-account>.blob.core.windows.net/<container-name>/<file-name>
```

Se pueden enumerar los Blobs disponibles con la herramienta [*MicroBurst*](/pentesting-en-infraestructuras/cloud/azure/herramientas.md#microbust):

```powershell
. C:\AzAD\Tools\MicroBurst\Misc\Invoke-EnumerateAzureBlobs.ps1
```

También se pueden enumerar los Blobs con:

* BlobHunter: <https://github.com/cyberark/BlobHunter>

Para enumerar las cuentas de almacenamiento:

```powershell
az storage account list
```

Para comprobar si un contenedor cuenta con acceso anónimo:

<https://learn.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-configure?tabs=powershell#check-the-anonymous-access-setting-for-a-set-of-containers>

{% code overflow="wrap" %}

```powershell
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName
$ctx = $storageAccount.Context
Get-AzStorageContainer -Context $ctx | Select Name, PublicAccess
```

{% endcode %}

Con la herramienta *Azure Storage* se puede realizar la conexión de forma cómoda y fiable (vía web no siempre se puede acceder correctamente):

{% embed url="<https://azure.microsoft.com/es-es/products/storage/storage-explorer>" %}

<figure><img src="/files/BLx8os2i1KuthS7zMRmG" alt=""><figcaption></figcaption></figure>

Para configurar el acceso anónimo, se pueden seguir las indicaciones que se encuentran en la página oficial de Microsoft: <https://learn.microsoft.com/en-us/azure/storage/blobs/anonymous-read-access-configure?tabs=portal#set-the-public-access-level-for-a-container>

### <mark style="color:red;">Key Vaults / Almacenes de claves</mark>

Si el los Key Vaults cuentan con acceso anónimo, podría llegar a accederse a la información confidencial que almacenan, como: secretos, credenciales, etc.

* Obtener KeyVault:

```powershell
Get-AzKeyVault
```

* Mostrar información de un KeyVault:

```powershell
Get-AzKeyVaultSecret -VaultName ResearchKeyVault
```

* Obtener credenciales en texto plano:

```powershell
Get-AzKeyVaultSecret -VaultName ResearchKeyVault -Name Reader –AsPlainText
```

Posteriormente podríamos intentar iniciar sesión en el servicio, cuenta, sistema, etc. del cuál hayamos obtenido credenciales.

Por ejemplo:

* Si se trata de una cuenta de Azure:

```powershell
$password = ConvertTo-SecureString '<contraseña>' -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential('<email>', $password)
Connect-AzAccount -Credential $creds
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.xtormin.com/pentesting-en-infraestructuras/cloud/azure/metodologia-de-azure-pentest/acceso-inicial/acceso-anonimo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
