Data/Locales/checks/pt/ADTradecraftChecks.json

{
  "_family": "ADTradecraftChecks.json",
  "ADTRADE-001": {
    "name": { "value": "Resíduos de cpassword das Preferências de Política de Grupo no SYSVOL", "status": "machine-draft" },
    "description": { "value": "De 2008 a maio de 2014, as Preferências de Política de Grupo permitiam aos administradores distribuir tarefas agendadas, palavras-passe de utilizadores locais, unidades mapeadas e serviços utilizando um campo 'cpassword': cifrado com uma chave AES-256 que a Microsoft documentou publicamente. A correção do MS14-025 desativou o campo cpassword nas NOVAS preferências, mas deixou intactas as existentes no SYSVOL. Todos os exercícios de red-team continuam a encontrá-las. Qualquer utilizador de domínio autenticado pode ler o SYSVOL, obter o cpassword e decifrá-lo offline. Se encontrar algo aqui, trate todas as credenciais expostas como comprometidas e rode-as.", "status": "machine-draft" },
    "recommendedValue": { "value": "Zero atributos cpassword em qualquer local sob \\\\domain\\SYSVOL\\domain\\Policies\\**\\*.xml.", "status": "machine-draft" },
    "remediationSteps": { "value": "Analise o SYSVOL: Get-ChildItem -Path \\\\<domain>\\SYSVOL\\<domain>\\Policies -Recurse -Include *.xml | Select-String 'cpassword'. Para cada correspondência: (1) rode a palavra-passe da conta cuja credencial está exposta (o nome de utilizador está no mesmo XML), (2) audite os registos quanto à utilização dessa credencial desde a criação da preferência, (3) elimine a preferência de GPP assim que a nova credencial estiver implementada. O KB2962486 da Microsoft contém as orientações de limpeza.", "status": "machine-draft" }
  },
  "ADTRADE-002": {
    "name": { "value": "Indicador de DCShadow (servidores não autorizados na partição de configuração)", "status": "machine-draft" },
    "description": { "value": "O DCShadow (Vincent LE TOUX / Benjamin Delpy, BlueHat IL 2018) regista um anfitrião controlado pelo atacante como controlador de domínio ao escrever objetos nTDSDSA + server sob CN=Sites,CN=Configuration. O DC falso é depois utilizado para injetar dados de replicação maliciosos (SID history, hashes de palavras-passe) sem nunca ser um DC real. NOTA: em domínios de longa duração, um objeto server sem correspondência é muito mais frequentemente METADADOS DE DC RESIDUAIS (um DC removido sem 'ntdsutil metadata cleanup') do que um verdadeiro ataque DCShadow, pelo que é classificado como Elevado e não Crítico: investigue o carimbo de data/hora whenCreated para distinguir um objeto criado recentemente (suspeito) de metadados obsoletos antigos.", "status": "machine-draft" },
    "recommendedValue": { "value": "Todos os objetos server sob CN=Sites,CN=Configuration correspondem a controladores de domínio reais e inventariados. Nenhum objeto server criado recentemente que não corresponda a um DC conhecido.", "status": "machine-draft" },
    "remediationSteps": { "value": "Enumere: Get-ADObject -Filter {objectClass -eq 'server'} -SearchBase \"CN=Sites,$((Get-ADRootDSE).configurationNamingContext)\" -Properties whenCreated, dNSHostName | Sort whenCreated. Faça a correlação com o seu inventário de DC (Get-ADDomainController -Filter *). Qualquer objeto server que não corresponda a um DC real, sobretudo se criado recentemente, exige resposta a incidentes imediata: o DCShadow é uma primitiva de nível de tomada de controlo do domínio. Monitorize os eventos 5137 / 5141 no contentor de schema como sinal em tempo de deteção.", "status": "machine-draft" }
  },
  "ADTRADE-003": {
    "name": { "value": "Chaves de recuperação do BitLocker obsoletas", "status": "machine-draft" },
    "description": { "value": "As chaves de recuperação do BitLocker são armazenadas no AD como objetos subordinados msFVE-RecoveryInformation do computador que as fez a cópia de segurança. Quando um computador é desativado mas o objeto de AD é deixado pendente, as chaves de recuperação permanecem consultáveis por qualquer pessoa com direitos de recuperação do BitLocker: normalmente um grupo mais alargado do que o 'Tier-0'. Chaves obsoletas significam que as unidades descartadas são desencriptáveis se recuperadas de um recondicionador ou do lixo.", "status": "machine-draft" },
    "recommendedValue": { "value": "Todos os objetos msFVE-RecoveryInformation pertencem a computadores ativos nos últimos 90 dias. Nenhuma chave órfã associada a contas de computador desativadas ou recentemente modificadas e depois obsoletas.", "status": "machine-draft" },
    "remediationSteps": { "value": "Enumere a informação de recuperação: Get-ADObject -Filter {objectClass -eq 'msFVE-RecoveryInformation'} -Properties whenCreated. Para cada uma, suba até ao objeto de computador principal e verifique o respetivo lastLogonTimestamp / Enabled. Para os computadores inativos há mais de 90 dias: confirme que a unidade foi apagada ou destruída e, em seguida, elimine o objeto de computador do AD (o que remove em cascata a informação de recuperação). Para os computadores em utilização ativa mas com chaves de recuperação muito antigas: rode-as através de Backup-BitLockerKeyProtector. Verifique se o grupo de recuperação do BitLocker tem uma pertença restrita.", "status": "machine-draft" }
  },
  "ADTRADE-004": {
    "name": { "value": "Higiene da Política de Replicação de Palavras-passe de RODC", "status": "machine-draft" },
    "description": { "value": "Os Read-Only Domain Controllers colocam em cache as palavras-passe dos principais listados na respetiva Password Replication Policy (PRP). Se uma conta Tier-0 (Domain Admin, Enterprise Admin, krbtgt) for alcançável pela PRP de um RODC, diretamente ou através de aninhamento de grupos, comprometer o RODC compromete essas contas. O 'Denied RODC Password Replication Group' predefinido deve conter explicitamente DA / EA / SA / Schema Admins / krbtgt; alguns ambientes personalizam a política e removem acidentalmente essas negações.", "status": "machine-draft" },
    "recommendedValue": { "value": "Todos os RODC do domínio têm uma Password Replication Policy em que Domain Admins, Enterprise Admins, Schema Admins, krbtgt e Account Operators são membros do lado Deny. Nenhuma conta de privilégio elevado é membro do lado Allow.", "status": "machine-draft" },
    "remediationSteps": { "value": "Para cada RODC: Get-ADDomainController -Filter {IsReadOnly -eq $true} | ForEach-Object { Get-ADDomainControllerPasswordReplicationPolicy -Identity $_ -Allowed; Get-ADDomainControllerPasswordReplicationPolicy -Identity $_ -Denied }. Verifique se a lista Denied contém o grupo incorporado 'Denied RODC Password Replication Group'. Se o seu ambiente não tiver RODC, esta verificação é N/A: PASS. O guia de planeamento de RODC da Microsoft tem o modelo canónico de PRP.", "status": "machine-draft" }
  },
  "ADTRADE-005": {
    "name": { "value": "Rotação da chave da conta de computador do Entra Seamless SSO (AZUREADSSOACC$)", "status": "machine-draft" },
    "description": { "value": "Quando o Entra (Azure AD) Seamless Single Sign-On está ativado para identidade híbrida, o AD cria uma conta de computador com o nome AZUREADSSOACC$. A sua palavra-passe é a chave Kerberos partilhada que o Entra utiliza para validar os tickets de SSO. A Microsoft documenta que esta chave NÃO é rodada automaticamente: os administradores têm de a rodar. Se um atacante extrair a chave AZUREADSSOACC$ (é um hash NT normal, legível através de DCSync ou a partir de um DC), pode forjar Kerberos Silver Tickets para o serviço do Azure AD e autenticar-se como QUALQUER utilizador híbrido sincronizado, sem qualquer interação adicional, enquanto a chave permanecer válida. Uma chave que não é rodada há mais de 90 dias alarga drasticamente essa janela.", "status": "machine-draft" },
    "recommendedValue": { "value": "Chave Kerberos AZUREADSSOACC$ rodada pelo menos a cada 90 dias (rode-a duas vezes por rotação para invalidar a chave anterior).", "status": "machine-draft" },
    "remediationSteps": { "value": "Rode a chave do Seamless SSO numa máquina com o módulo do Entra Connect / Azure AD: Import-Module 'C:\\Program Files\\Microsoft Azure Active Directory Connect\\AzureADSSO.psd1'; New-AzureADSSOAuthenticationContext; Update-AzureADSSOForest. Efetue a rotação duas vezes (a conta armazena a chave atual + a anterior) e agende-a de forma recorrente. Se o Seamless SSO já não for utilizado, desative-o e elimine o objeto AZUREADSSOACC$.", "status": "machine-draft" }
  },
  "ADTRADE-006": {
    "name": { "value": "Shadow Credentials (msDS-KeyCredentialLink) em principais privilegiados", "status": "machine-draft" },
    "description": { "value": "O atributo msDS-KeyCredentialLink contém as chaves públicas utilizadas para o início de sessão Windows Hello for Business / PKINIT sem palavra-passe. Um atacante com acesso de escrita a este atributo num alvo pode adicionar o SEU PRÓPRIO par de chaves (Whisker / pyWhisker) e depois solicitar um TGT Kerberos como essa conta utilizando a chave privada correspondente: uma técnica furtiva de persistência e representação conhecida como 'shadow credentials'. Qualquer credencial de chave inesperada num objeto Tier-0 (um administrador de domínio, um controlador de domínio ou qualquer conta com adminCount=1) deve ser tratada como uma potencial backdoor até se provar que é uma inscrição WHfB legítima.", "status": "machine-draft" },
    "recommendedValue": { "value": "Nenhum valor msDS-KeyCredentialLink não reconhecido em principais privilegiados/Tier-0; cada chave corresponde a uma inscrição WHfB/sem palavra-passe conhecida.", "status": "machine-draft" },
    "remediationSteps": { "value": "Para cada principal assinalado, inspecione as credenciais de chave (Get-ADObject -Properties msDS-KeyCredentialLink, ou o cmdlet Get-ADKeyCredential do DSInternals) e correlacione cada chave de dispositivo com uma inscrição Windows Hello for Business legítima. Remova qualquer entrada que não consiga atribuir a uma inscrição autorizada. Restrinja quem pode escrever em msDS-KeyCredentialLink (audite Key Admins / Enterprise Key Admins e as DACL de OU/objeto que concedem essa escrita). Redefina as contas afetadas se houver suspeita de comprometimento.", "status": "machine-draft" }
  },
  "ADTRADE-007": {
    "name": { "value": "Superfície de elevação de migração dMSA BadSuccessor", "status": "machine-draft" },
    "description": { "value": "O Windows Server 2025 introduziu as contas de serviço geridas delegadas (dMSA, classe de objeto msDS-DelegatedManagedServiceAccount) com uma funcionalidade de migração: uma dMSA pode ser marcada como substituindo uma conta existente, passando depois a herdar os privilégios e as chaves Kerberos dessa conta. A técnica 'BadSuccessor', divulgada em 2024, abusa disto: um principal que possa apenas CRIAR uma dMSA numa OU (CreateChild na classe dMSA, ou escrita ampla/GenericAll sobre a OU) pode criar uma, apontá-la para uma conta privilegiada e herdar as suas chaves, elevando-se a essa conta sem nunca deter direitos diretos sobre ela. Esta verificação faz o inventário das OU onde um principal não Tier-0 detém essa capacidade.", "status": "machine-draft" },
    "recommendedValue": { "value": "Nenhum principal não Tier-0 pode criar ou escrever uma MSA delegada (msDS-DelegatedManagedServiceAccount) em qualquer OU.", "status": "machine-draft" },
    "remediationSteps": { "value": "Em cada OU assinalada, remova CreateChild (para a classe msDS-DelegatedManagedServiceAccount), GenericAll, WriteDacl e WriteOwner dos principais não administrativos. Audite amplamente as permissões delegadas das OU: as mesmas ACE que permitem o BadSuccessor também permitem outros abusos de criação de objetos. Até estar corrigido/mitigado, monitorize a criação de objetos msDS-DelegatedManagedServiceAccount (eventos 4662/5137). Esta verificação é ignorada (SKIP) em florestas cujo schema é anterior ao Server 2025.", "status": "machine-draft" }
  },
  "ADTRADE-008": {
    "name": { "value": "Pertença aos grupos Key Admins / Enterprise Key Admins", "status": "machine-draft" },
    "description": { "value": "Aos grupos Key Admins (RID de domínio 526) e Enterprise Key Admins (RID 527) é concedido o direito de escrever o atributo msDS-KeyCredentialLink em todo o domínio/floresta. Isto torna qualquer membro uma primitiva de shadow credential de todo o domínio: um membro pode plantar credenciais de chave em qualquer conta e autenticar-se como ela através de PKINIT. Estes grupos são fornecidos VAZIOS e devem permanecer vazios, salvo se um fluxo de trabalho específico de aprovisionamento de chaves do Windows Hello for Business os exigir comprovadamente. Qualquer membro é um caminho de elevação que tem de ser justificado.", "status": "machine-draft" },
    "recommendedValue": { "value": "Os grupos Key Admins e Enterprise Key Admins estão vazios (sem membros permanentes).", "status": "machine-draft" },
    "remediationSteps": { "value": "Reveja todos os membros de Key Admins e Enterprise Key Admins. Remova qualquer conta que não tenha uma necessidade documentada e contínua de aprovisionar chaves do Windows Hello for Business. Se o aprovisionamento de chaves WHfB exigir direitos delegados, limite-os a uma conta de serviço dedicada com as permissões mais restritas possíveis, em vez da pertença a estes grupos de todo o domínio. Trate os membros inesperados como um potencial mecanismo de persistência.", "status": "machine-draft" }
  },
  "ADTRADE-009": {
    "name": { "value": "Pertença ao grupo Cert Publishers", "status": "machine-draft" },
    "description": { "value": "Os membros do grupo Cert Publishers (RID de domínio 517) têm permissão para publicar certificados no arquivo NTAuth e em objetos de utilizador/computador. Por predefinição, o grupo contém apenas a(s) conta(s) de computador da Enterprise CA. Uma conta de utilizador ou de serviço colocada neste grupo ganha a capacidade de influenciar quais os certificados considerados fidedignos para autenticação, o que é um trampolim em vários caminhos de elevação do AD CS (ataques da classe ESC) e pode possibilitar a representação baseada em certificados. A pertença de contas de computador (os próprios anfitriões da CA) é esperada; qualquer membro que não seja um computador é uma constatação.", "status": "machine-draft" },
    "recommendedValue": { "value": "O Cert Publishers contém apenas a(s) conta(s) de computador da Enterprise CA: sem contas de utilizador ou de serviço.", "status": "machine-draft" },
    "remediationSteps": { "value": "Remova qualquer conta de utilizador ou de serviço do grupo Cert Publishers; apenas as contas de computador da Enterprise CA lá pertencem. Reveja o conteúdo do arquivo NTAuth (certutil -viewstore -enterprise NTAuth) quanto a certificados de CA inesperados. Reforce amplamente o AD CS: audite as permissões de inscrição dos modelos de certificado e a superfície de configuração incorreta ESC1-ESC8.", "status": "machine-draft" }
  },
  "ADTRADE-010": {
    "name": { "value": "Postura das group Managed Service Account (gMSA) e exposição de palavras-passe", "status": "machine-draft" },
    "description": { "value": "As group Managed Service Accounts (gMSA) têm palavras-passe de 240 bits que o AD gera e roda automaticamente, eliminando o Kerberoasting de palavras-passe fracas de contas de serviço e o trabalho de rotação manual. Duas preocupações de postura: (1) se as gMSA são de todo utilizadas para as identidades de serviço, e (2) quem está autorizado a obter a palavra-passe gerida, controlado pelo descritor de segurança msDS-GroupMSAMembership (PrincipalsAllowedToRetrieveManagedPassword). Se esse descritor conceder a um principal abrangente (Everyone, Authenticated Users, Domain Users) ou a um principal não privilegiado, esse principal pode recuperar a palavra-passe gMSA em texto simples (por exemplo, GMSAPasswordReader) e representar totalmente o serviço.", "status": "machine-draft" },
    "recommendedValue": { "value": "As identidades de serviço são executadas como gMSA; msDS-GroupMSAMembership está limitado apenas aos anfitriões específicos que têm de executar o serviço (sem principais abrangentes ou não privilegiados).", "status": "machine-draft" },
    "remediationSteps": { "value": "Para cada gMSA, defina PrincipalsAllowedToRetrieveManagedPassword para as contas de computador exatas (ou um grupo rigorosamente limitado) que executam o serviço: Set-ADServiceAccount -Identity <gmsa> -PrincipalsAllowedToRetrieveManagedPassword <hosts>. Remova Everyone / Authenticated Users / Domain Users dessa lista. Onde as contas de serviço ainda utilizam palavras-passe estáticas de contas de utilizador, migre-as para gMSA para obter rotação automática e resistência ao Kerberoasting.", "status": "machine-draft" }
  }
}