
Script PowerShell que visa ajudar a descobrir (eventuais) mecanismos de persistência implantados por um ator de ameaça após um comprometimento de domínio do Active Directory
FarsightAD é um script PowerShell que visa ajudar a descobrir (eventuais) mecanismos de persistência implantados por um ator de ameaça após um comprometimento de domínio do Active Directory.
O script produz exportações de arquivos CSV / JSON de vários objetos e seus atributos, enriquecidos com carimbos de data/hora dos metadados de replicação. Além disso, se executado com privilégios de replicação, o protocolo Directory Replication Service (DRS) é utilizado para detectar objetos total ou parcialmente ocultos.
Para mais informações, consulte os slides introdutórios do SANS DFIR Summit 2022.
FarsightAD requer
PowerShell 7
e o módulo ActiveDirectory atualizado para PowerShell 7.
No Windows 10 / 11, o módulo pode ser instalado através dos Recursos Opcionais
como
RSAT: Ferramentas de Serviços de Domínio Active Directory e Serviços de Diretório Leve. O módulo já instalado pode ser atualizado com:
Add-WindowsCapability -Online -Name Rsat.ServerManager.Tools~~~~0.0.1.0
Se o módulo estiver corretamente atualizado, Get-Command Get-ADObject deve retornar:
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-ADObject 1.0.X.X ActiveDirectory
. .\FarsightAD.ps1
Invoke-ADHunting [-Server <DC_IP | DC_HOSTNAME>] [-Credential <PS_CREDENTIAL>] [-ADDriveName <NOME_UNIDADE_AD>] [-OutputFolder <PASTA_SAIDA>] [-OutputType <CSV | JSON>]
Mais informações sobre o uso de cada cmdlet podem ser obtidas usando Get-Help -Full <CMDLET>.

Adicionando um usuário totalmente oculto

Ocultando o atributo SID History de um usuário

Descobrindo os usuários total e parcialmente ocultos com Export-ADHuntingHiddenObjectsWithDRSRepData
O código em C# para requisições DRS foi adaptado de:
MakeMeEnterpriseAdmin
por @vletoux.Mimikatz por @gentilkiwi e
@vletoux.SharpKatz por @b4rtik.As funções para analisar Credenciais de Chave são do
módulo PowerShell ADComputerKeys.
A persistência relacionada a AD CS é baseada em trabalho de:
A função para analisar Nome da Entidade de Serviço é baseada no trabalho de Adam Bertram.
Licença CC BY 4.0 - https://creativecommons.org/licenses/by/4.0/
| Cmdlet | Sinopse |
|---|
Invoke-ADHunting | Executa todos os cmdlets de caça AD do FarsightAD (mencionados abaixo). |
Export-ADHuntingACLDangerousAccessRights | Exporta ACEs perigosas, ou seja, ACEs que permitem a tomada do objeto subjacente, em todos os objetos do domínio. Pode demorar um pouco em domínios maiores. |
Export-ADHuntingACLDefaultFromSchema | Exporta a ACL configurada no atributo defaultSecurityDescriptor das classes de esquema. ACLs não padrão (conforme definido na documentação da Microsoft) são identificadas e ACEs potencialmente perigosas são destacadas. |
Export-ADHuntingACLPrivilegedObjects | Exporta a ACL configurada nos objetos privilegiados do domínio e destaca direitos de acesso potencialmente perigosos. |
Export-ADHuntingADCSCertificateTemplates | Exporta informações e direitos de acesso em modelos de certificado. Os seguintes parâmetros notáveis são recuperados: status de publicação do modelo de certificado, uso do certificado, se o assunto é construído a partir de dados fornecidos pelo usuário e controle de acesso (inscrição / modificação). |
Export-ADHuntingADCSPKSObjects | Exporta informações e direitos de acesso em objetos PKS sensíveis (NTAuthCertificates, certificationAuthority e pKIEnrollmentService). |
Export-ADHuntingGPOObjectsAndFilesACL | Exporta informações sobre direitos de acesso ACL em objetos e arquivos GPO, destacando GPOs aplicados a usuários ou computadores privilegiados. |
Export-ADHuntingGPOSettings | Exporta informações sobre várias configurações definidas por GPOs que poderiam ser aproveitadas para persistência (privilégios e direitos de logon, associação a grupos restritos, tarefas agendadas e imediatas V1 / V2, scripts de logon / logoff de máquina e usuário). |
Export-ADHuntingHiddenObjectsWithDRSRepData | Exporta os atributos dos objetos que são acessíveis através de replicação (com o protocolo Directory Replication Service (DRS)) mas não por consulta direta. As permissões de acesso não são levadas em consideração para operações de replicação, o que permite identificar controles de acesso bloqueando acesso a atributo(s) específico(s) de objetos. Apenas um conjunto limitado de atributos sensíveis é avaliado. |
Export-ADHuntingKerberosDelegations | Exporta as delegações Kerberos consideradas perigosas (desrestritas, restritas a um serviço privilegiado ou baseadas em recursos em um serviço privilegiado). |
Export-ADHuntingPrincipalsAddedViaMachineAccountQuota | Exporta os computadores que foram adicionados ao domínio por entidades não privilegiadas (usando o mecanismo ms-DS-MachineAccountQuota). |
Export-ADHuntingPrincipalsCertificates | Exporta certificados analisados de contas (para contas com um atributo userCertificate não vazio). Os certificados são analisados para recuperar vários parâmetros: carimbos de validade do certificado, finalidade do certificado, assunto do certificado e eventuais SubjectAltName(s)... |
Export-ADHuntingPrincipalsDontRequirePreAuth | Exporta as contas que não exigem pré-autenticação Kerberos. |
Export-ADHuntingPrincipalsOncePrivileged | Exporta as contas que já foram membros de grupos privilegiados. |
Export-ADHuntingPrincipalsPrimaryGroupID | Exporta as contas que possuem um atributo primaryGroupID não padrão, destacando RIDs vinculados a grupos privilegiados. |
Export-ADHuntingPrincipalsPrivilegedAccounts | Exporta informações detalhadas sobre membros de grupos privilegiados. |
Export-ADHuntingPrincipalsPrivilegedGroupsMembership | Exporta membros atuais e passados de grupos privilegiados, recuperados usando metadados de replicação. |
Export-ADHuntingPrincipalsSIDHistory | Exporta as contas que possuem um atributo SID History não vazio, com resolução do domínio associado e destaque de SIDs privilegiados. |
Export-ADHuntingPrincipalsShadowCredentials | Exporta informações analisadas de Credenciais de Chave (de contas com um atributo msDS-KeyCredentialLink não vazio). |
Export-ADHuntingPrincipalsTechnicalPrivileged | Exporta as contas técnicas privilegiadas (SERVER_TRUST_ACCOUNT e INTERDOMAIN_TRUST_ACCOUNT). |
Export-ADHuntingPrincipalsUPNandAltSecID | Exporta as contas que definem um atributo UserPrincipalName ou AltSecurityIdentities, destacando anomalias potenciais. |
Export-ADHuntingTrusts | Exporta as relações de confiança de todos os domínios na floresta. Vários parâmetros são recuperados para cada relação de confiança: transitividade, filtragem SID, delegação TGT. |