Az - Unauthenticated Enum & Initial Entry
Az - Enumeração e Entrada Inicial Não Autenticada
Azure Tenant
Enumeração do Tenant
Existem algumas APIs públicas do Azure que, apenas conhecendo o domínio do tenant, um atacante poderia consultar para obter mais informações sobre ele. Você pode consultar diretamente a API ou usar a biblioteca PowerShell AADInternals:
API | Informação | Função AADInternals |
---|---|---|
login.microsoftonline.com/<domain>/.well-known/openid-configuration | Informações de login, incluindo o ID do tenant |
|
autodiscover-s.outlook.com/autodiscover/autodiscover.svc | Todos os domínios do tenant |
|
login.microsoftonline.com/GetUserRealm.srf?login=<UserName> | Informações de login do tenant, incluindo o Nome do tenant e o domínio do tipo de autenticação.
Se |
|
login.microsoftonline.com/common/GetCredentialType | Informações de login, incluindo informações de SSO de Desktop |
|
Você pode consultar todas as informações de um tenant do Azure com apenas um comando da biblioteca AADInternals:
Exemplo de saída das informações do locatário do Azure:
É possível observar detalhes sobre o nome, ID e nome da "marca" do locatário. Além disso, o status do Logon Único na Área de Trabalho (SSO), também conhecido como SSO sem interrupções, é exibido. Quando ativado, esse recurso facilita a determinação da presença (enumeração) de um usuário específico dentro da organização alvo.
Além disso, a saída apresenta os nomes de todos os domínios verificados associados ao locatário alvo, juntamente com seus respectivos tipos de identidade. No caso de domínios federados, o Nome de Domínio Totalmente Qualificado (FQDN) do provedor de identidade em uso, normalmente um servidor ADFS, também é divulgado. A coluna "MX" especifica se os e-mails são roteados para o Exchange Online, enquanto a coluna "SPF" denota a listagem do Exchange Online como remetente de e-mails. É importante observar que a função de reconhecimento atual não analisa as declarações "include" dentro dos registros SPF, o que pode resultar em falsos negativos.
Enumeração de Usuários
É possível verificar se um nome de usuário existe dentro de um locatário. Isso inclui também usuários convidados, cujo nome de usuário segue o formato:
O email é o endereço de email do usuário onde em “@” é substituído por sublinhado “_“.
Com AADInternals, você pode facilmente verificar se o usuário existe ou não:
Enumeração Não Autenticada e Entrada Inicial
Descrição
Neste cenário, exploraremos como realizar enumeração não autenticada e obter acesso inicial em ambientes do Azure. A enumeração não autenticada é uma técnica comum usada por invasores para coletar informações sobre recursos disponíveis em um ambiente sem a necessidade de credenciais de autenticação.
Passos
Descoberta de Instâncias do Azure AD Connect: Identifique instâncias do Azure AD Connect acessíveis publicamente.
Enumeração de Grupos do Azure AD: Enumere grupos do Azure AD para identificar possíveis alvos.
Enumeração de Usuários do Azure AD: Enumere usuários do Azure AD para identificar possíveis alvos.
Identificação de Endpoints do Azure: Identifique endpoints do Azure para possíveis ataques de entrada.
Exploração de Vulnerabilidades: Explore possíveis vulnerabilidades nos serviços do Azure para obter acesso inicial.
Impacto Potencial
A enumeração não autenticada e a obtenção de acesso inicial podem levar a um acesso não autorizado a recursos sensíveis, comprometendo a segurança e a privacidade dos dados armazenados no ambiente do Azure.
Você também pode usar um arquivo de texto contendo um endereço de e-mail por linha:
Existem três métodos de enumeração diferentes para escolher:
Método | Descrição |
---|---|
Normal | Isso se refere ao API GetCredentialType mencionado acima. O método padrão. |
Login | Este método tenta fazer login como o usuário. Nota: as consultas serão registradas no log de logins. |
Autologon | Este método tenta fazer login como o usuário via endpoint de autologon. As consultas não são registradas no log de logins! Como tal, funciona bem também para ataques de pulverização de senha e força bruta. |
Após descobrir os nomes de usuário válidos, você pode obter informações sobre um usuário com:
O script o365creeper também permite descobrir se um email é válido.
Enumeração de Usuários via Microsoft Teams
Outra boa fonte de informação é o Microsoft Teams.
A API do Microsoft Teams permite pesquisar usuários. Em particular, os endpoints de "pesquisa de usuário" externalsearchv3 e searchUsers podem ser usados para solicitar informações gerais sobre contas de usuários inscritos no Teams.
Dependendo da resposta da API, é possível distinguir entre usuários que não existem e usuários existentes que têm uma assinatura válida do Teams.
O script TeamsEnum pode ser usado para validar um determinado conjunto de nomes de usuário contra a API do Teams.
Enumeração e Entrada Inicial Não Autenticada
Neste cenário, vamos explorar como realizar a enumeração de informações e obter acesso inicial a recursos no Azure sem a necessidade de autenticação. Isso pode ser útil para identificar possíveis vulnerabilidades e pontos de entrada em um ambiente Azure. Vamos explorar diferentes técnicas e ferramentas que podem ser utilizadas para realizar essa enumeração e obter acesso inicial.
Além disso, é possível enumerar informações de disponibilidade sobre usuários existentes, como:
Disponível
Ausente
Não perturbe
Ocupado
Offline
Se uma mensagem de ausência do escritório estiver configurada, também é possível recuperar a mensagem usando o TeamsEnum. Se um arquivo de saída foi especificado, as mensagens de ausência do escritório são automaticamente armazenadas no arquivo JSON:
Enumeração e Entrada Inicial Não Autenticada
Neste cenário, vamos explorar como realizar a enumeração não autenticada e obter acesso inicial em um ambiente do Azure. A enumeração não autenticada refere-se à capacidade de coletar informações sem a necessidade de credenciais de autenticação válidas. Isso pode ser útil para identificar possíveis alvos e pontos de entrada no ambiente do Azure.
Serviços do Azure
Agora que sabemos os domínios usados pelo inquilino do Azure, é hora de tentar encontrar serviços do Azure expostos.
Você pode usar um método do MicroBust para esse objetivo. Essa função irá procurar o nome do domínio base (e algumas permutações) em vários domínios de serviços do Azure:
Armazenamento Aberto
Você pode descobrir armazenamento aberto com uma ferramenta como InvokeEnumerateAzureBlobs.ps1 que usará o arquivo Microburst/Misc/permitations.txt
para gerar permutações (muito simples) para tentar encontrar contas de armazenamento abertas.
URLs SAS
Um token de acesso compartilhado (SAS) é um URL que fornece acesso a uma determinada parte de uma conta de armazenamento (pode ser um contêiner completo, um arquivo...) com algumas permissões específicas (leitura, escrita...) sobre os recursos. Se você encontrar um vazado, poderá acessar informações sensíveis, eles se parecem com isso (isso é para acessar um contêiner, se estivesse apenas concedendo acesso a um arquivo, o caminho do URL também conteria esse arquivo):
https://<storage_account_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D
Use Storage Explorer para acessar os dados
Comprometer Credenciais
Phishing
Phishing Comum (credenciais ou Aplicativo OAuth -Ataque de Concessão de Consentimento Ilícito-)
Spraying de Senha / Força Bruta
Az - Password SprayingReferências
Last updated