> For the complete documentation index, see [llms.txt](https://www.xtormin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.xtormin.com/pentesting-en-infraestructuras/cloud/azure/metodologia-de-azure-pentest/acceso-inicial/acceso-anonimo.md).

# 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
```
