Análise & exploração de Blob Storage ☁️

Michelle Mesquita
3 min readMar 31, 2024

--

Olá, pessoal. Tudo bem? 😊

Cada vez mais, tenho me aventurado em Cloud, pois é uma competência bastante comum na área de AppSec. Pensando nisso, criei um laboratório com uma vulnerabilidade muito comum que encontrei desde a época onde eu somente realizava Pentest nas aplicações.

Essa vulnerabilidade consiste na má configuração do ambiente em Nuvem, uma das top 10 vulnerabilidades. Em especial, no Blob Storage — Azure.

https://www.aquasec.com/cloud-native-academy/cloud-attacks/cloud-attacks/

Essa má configuração se dá em dois formatos:

  • Blob storage público -> permite listar o conteúdo armazenado
  • Blob storage mal configurado na aplicação -> permite injetar arquivos html e possivelmente, utilizar como phisinhig, por exemplo, pelo Blob Storage ser público

O código se encontra nesse repositório:

Para utilizar esse laboratório, lembre-se de criar uma conta na Azure https://portal.azure.com/ e se autenticar no seu terminal. Será necessário por utilizarmos uma app em python, local, que se conectará com o blob storage.

az login

Após isso, utilizaremos o seguinte comando abaixo. Ele irá configurar o ambiente utilizando o Terraform.

cmod +x ./setup.sh
./setup.sh

Após o ambiente criado, podemos utilizar o script para analisar os objetos encontrados:

python3 blob_list.py

Para a mitigação desse primeiro problema, no arquivo main.tf devemos trocar container para private

resource "azurerm_storage_container" "example" {
name = "content"
storage_account_name = azurerm_storage_account.example.name
container_access_type = "private"
}

Na segunda etapa, com o app na porta 8000, podemos realizar o upload de arquivo. Nesse caso, temos uma configuração muito comum entre os desenvolvedores que é apenas analisar a extensão do arquivo. No entanto, deixam o content-type default.

Assim, podemos mudar a extensão do arquivo na requisição via BurpSuite e passar um arquivo indesejado, como por exemplo, criar uma página vulnerável.

Para evitar esse problema, setar o content-type esperado pela app.

content_type="image/jpeg"

Por fim, resolvi testar uma ferramenta open source muito utilizada para analisar os controles de segurança, em especial, na nuvem, utilizan o CIS Control.

Ele cria diversos dashboards bem interessantes e que permitem ver diversos problemas de configuração nas principais nuvens.

Nesse caso, utilizei a da Azure. Aqui abaixo possui todo o passo a passo para configurar

Aqui, podemos ver que ele demonstra a configuração indevida no Blob Storage:

Espero que tenham gostado

--

--