
Kit de ferramentas PowerShell para auditoria de AD CS baseado no toolkit PSPKI.
Ferramenta PowerShell para auditoria dos Serviços de Certificados do Active Directory (AD CS).
Ela é construída sobre o toolkit PSPKI (licença Microsoft Public License) do PKISolution. Este repositório contém uma versão mais recente do PSPKI do que a disponível na PSGallery (veja o diretório PSPKI). Vadims Podans (o criador do PSPKI) gentilmente forneceu esta versão, pois ela contém correções para vários bugs.
Este README é apenas um ponto de partida — para detalhes completos e orientações defensivas, consulte o whitepaper "Certified Pre-Owned".
O módulo contém as seguintes funções principais:
AVISO: Este código está em beta! Estamos confiantes de que Invoke-PKIAudit não impactará o ambiente, pois a quantidade de dados que ele consulta é bastante limitada. Não realizamos testes rigorosos com Get-CertRequest contra cargas de trabalho típicas de servidores CA. Get-CertRequest consulta diretamente o banco de dados da CA e pode precisar processar milhares de resultados, o que pode impactar o desempenho.
SE NÃO HOUVER RESULTADOS, ISSO NÃO É GARANTIA DE QUE SEU AMBIENTE ESTÁ SEGURO!!
TAMBÉM NÃO PODEMOS GARANTIR QUE NOSSAS RECOMENDAÇÕES DE MITIGAÇÃO TORNARÃO SEU AMBIENTE SEGURO OU NÃO CAUSARÃO INTERRUPÇÕES NAS OPERAÇÕES!
É sua responsabilidade conversar com sua(s) equipe(s) de Active Directory/PKI/Arquitetura para determinar as melhores mitigações para seu ambiente.
Se o código quebrar ou perdermos algo, por favor abra uma issue ou pull request para correção!
Instale o seguinte em uma máquina Windows usando um prompt do PowerShell elevado (PowerShell versão 5.1 ou superior):
* O [módulo PowerShell PSPKI](https://github.com/PKISolutions/PSPKI). Instale com o seguinte comando:```
Install-Module -Name PSPKI
Baixe o módulo e extraia-o para uma pasta. Em seguida, importe o módulo usando os seguintes comandos:``` cd PSPKIAudit Get-ChildItem -Recurse | Unblock-File
Import-Module .\PSPKIAudit.psd1
# Auditoria de Configurações Incorretas do AD CS
Executar `Invoke-PKIAudit` executará todas as verificações de auditoria contra o AD CS no domínio atual, incluindo a enumeração de várias configurações de Autoridade de Certificação e Modelo de Certificado. Para auditar uma CA específica, você pode executar `Invoke-PKIAudit -CAComputerName CA.DOMAIN.COM` ou `Invoke-PKIAudit -CAName X-Y-Z`.
Quaisquer configurações incorretas (ESC1-8) aparecerão como propriedades nos resultados da CA/modelo exibidos para identificar a configuração incorreta específica encontrada.
Se você quiser alterar os grupos/usuários usados para testar a inscrição/controle de acesso, modifique a regex `$CommonLowprivPrincipals` no topo do arquivo `Invoke-PKIAudit.ps1`
Se você quiser exportar todas as informações da CA para um csv, execute: `Get-AuditCertificateAuthority [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation CAs.csv`
Se você quiser exportar TODAS as informações de modelos publicados para um csv (não apenas modelos vulneráveis), execute: `Get-AuditCertificateTemplate [-CAComputerName CA.DOMAIN.COM | -CAName X-Y-Z] | Export-Csv -NoTypeInformation templates.csv`
## Explicação da Saída
Existem duas seções principais de saída, detalhes sobre CAs descobertas e detalhes sobre modelos potencialmente vulneráveis.
Para resultados de autoridade de certificação:
| Propriedade da Autoridade de Certificação | Descrição |
| ----------------------------------------- | ---------------------------------------------------------------- |
| ComputerName | O sistema no qual a CA está sendo executada. |
| CAName | O nome da CA. |
| ConfigString | A string de configuração completa COMPUTER\CA_NAME. |
| IsRoot | Se a CA é uma CA raiz. |
| AllowsUserSuppliedSans | Se a CA tem o flag `EDITF_ATTRIBUTESUBJECTALTNAME2` definido. |
| VulnerableACL | Se a CA tem uma configuração de ACL vulnerável. |
| EnrollmentPrincipals | Principais que têm o privilégio `Enroll` no nível da CA. |
| EnrollmentEndpoints | Os endpoints de inscrição dos serviços web da CA. |
| NTLMEnrollmentEndpoints | Os endpoints de inscrição dos serviços web da CA que têm NTLM habilitado. |
| DACL | As informações completas de controle de acesso. |
| Misconfigurations | ESCX indicando a configuração incorreta específica presente (se houver). |
Para resultados de modelo de certificado: