
Uma ferramenta leve para extrair rapidamente informações valiosas do ambiente Active Directory tanto para ataque quanto para defesa.
ADCollector é uma ferramenta leve que enumera o ambiente Active Directory para identificar possíveis vetores de ataque. Ela lhe dará uma compreensão básica da configuração/implantação do ambiente como ponto de partida.
ADCollector não é uma alternativa ao poderoso PowerView, ele apenas automatiza a enumeração para identificar rapidamente informações interessantes sem pensar muito no estágio inicial de Reconhecimento. As funções implementadas no ADCollector são ideais para enumeração em um ambiente corporativo grande com muitos usuários/computadores, sem gerar muito tráfego e consumir muito tempo. Ele foca apenas em extrair atributos/propriedades/ACLs úteis dos alvos mais valiosos, em vez de enumerar todos os atributos disponíveis de todos os objetos de usuário/computador no domínio. Você definitivamente precisará do PowerView para fazer uma enumeração mais detalhada depois. Você pode usar ADSI em vez de PowerView para enumerar o domínio desde que saiba o que deseja enumerar, veja https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/.
O objetivo de desenvolver esta ferramenta é me ajudar a aprender mais sobre segurança do Active Directory sob uma perspectiva diferente, além de descobrir o que está por trás das funções do PowerView.
Ela usa o namespace S.DS para recuperar informações de domínio/floresta do controlador de domínio (servidor LDAP). Também utiliza o namespace S.DS.P para pesquisa LDAP.
Esta ferramenta ainda está em construção. As funcionalidades que serão implementadas podem ser vistas na minha página do projeto
Certifique-se de ter acesso ao SYSVOL se executá-lo a partir de um host não associado ao domínio. Talvez seja necessário executar o seguinte comando se a política UNC endurecida estiver aplicada:
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkProvider\HardenedPaths /v "\\*\SYSVOL" /d "RequireMutualAuthentication=0" /t REG_SZ
PS C:\> .\ADCollector.exe --help
_ ____ ____ _ _ _
/ \ | _ \ / ___|___ | | | ___ ___ _| |_ ___ _ __
/ _ \ | | | | | / _ \| | |/ _ \/ __|_ __/ _ \| '__|
/ ___ \| |_| | |__| (_) | | | __/ (__ | || (_) | |
/_/ \_\____/ \____\___/|_|_|\___|\___| |__/\___/|_|
v3.0.1 by dev2null
--Domain Domain to enumerate
--LDAPS (Default: false) LDAP over SSL/TLS
--DisableSigning (Default: false) Disable Kerberos Encryption (with -LDAPS flag)
--UserName Alternative UserName
--Password Alternative Credential
--DC Alternative Domain Controller (Hostname/IP) to connect to
--OU Perform the Search under a specific Organizational Unit
--LDAPONLY Only Enumearte Objects in LDAP
--ACLScan Perform ACL scan for an Identity
--ADCS (Default: false) Only Perform AD Certificate Service Check
--TEMPLATES (Default: false) Only Enumerate All Certificate Templates with their DACL
--SCHEMA (Default: false) Count Schema Attributes in the default naming context
--ADIDNS (Default: false) Only Collect ADIDNS Records
--NGAGP Only enumerate Nested Group Membership and Applied Group Policies on the target object
--DACL Enumerate DACL on the target object (with DistinguishedName)
--SessionEnum (Default: false) Enumerate session information on the target host
--UserEnum (Default: false) Enumerate user information on the target host
--LocalGMEnum (Default: false) Enumerate local group members on the target host
--Host (Default: Localhost) Hostname for Session/User/Groupmember Enumeration
--Group (Default: Administrators) Local Group Name for Local GroupMember Enumeration
--Debug (Default: false) Debug Mode
--help Display this help screen.
Example: .\ADCollector.exe
.\ADCollector.exe --LDAPs --DisableSigning
.\ADCollector.exe --OU IT
.\ADCollector.exe --OU OU=IT,DC=domain,DC=local
.\ADCollector.exe --ADCS
.\ADCollector.exe --TEMPLATES
.\ADCollector.exe --LDAPOnly
.\ADCollector.exe --SCHEMA
.\ADCollector.exe --ADIDNS
.\ADCollector.exe --NGAGP samaccountname
.\ADCollector.exe --DACL DC=domain,DC=net
.\ADCollector.exe --ACLScan user --OU OU=IT,DC=domain,DC=local
.\ADCollector.exe --SessionEnum --Host targetHost
.\ADCollector.exe --UserEnum --Host targetHost
.\ADCollector.exe --LocalGMEnum --Host targetHost --Group 'Remote Desktop Users'
.\ADCollector.exe --Domain domain.local --Username user --Password pass
.\ADCollector.exe --Domain domain.local --DC 10.10.10.1
1. Adicionada enumeração para modelos de certificado, esquema e credenciais de usuário
2. Adicionadas algumas flags
1. Refatoração de código e correção de bugs
2. Adicionada enumeração de direitos de privilégio e DACL de objetos
3. Adicionado modo Debug
4. Mesclado menu interativo na linha de comando e removidas algumas enumerações LDAP simples (use ADSI, veja [ADSI Enum](https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/))
1. Correção de bugs com algumas melhorias
2. Nova lógica de implementação para enumeração de LAPS e Grupo Restrito
3. Uso de Task para lidar com funções de enumeração pesadas (muito mais rápido para domínios grandes)
4. Removido cache GPP e enumeração de contas DCSync
1. Pesquisa em uma OU específica
2. Visualização detalhada de LAPS
3. Proprietários de Máquinas
4. Grupos Restritos
5. Configurações ADCS
6. Varredura ACL
7. Correção de bugs: acesso SYSVOL, Associação a grupos aninhados
8. Substituída dependência externa readINF por implementação personalizada
9. Usuários Protegidos
1. Reescrita completa (mais extensível)
2. Adicionado menu interativo com opções de linha de comando
3. Uso de chamada direta à API para enumerar relações de confiança
4. Atualizada enumeração de GPO aplicados com Filtro de Segurança e Filtro WMI (Filtro WMI precisa ser verificado manualmente)
5. Adicionada enumeração de registros DNS LDAP
6. RunAs: Executar ADCollector sob outro contexto de usuário
7. Varredura SPN flexível, Registros DNS, Associação a grupos aninhados, Enumeração ACL
8. Adicionados NetSessionEnum, NetLocalGroupGetMembers e NetWkstaUserEnum
1. Alguns bugs foram eliminados e alguns detalhes foram melhorados
2. Varredura SPN agora é opcional
3. GPP cpassword no SYSVOL/Cache
4. ACLs interessantes em GPOs; Descrições interessantes em objetos de usuário;
5. Contas DCSync incomuns; Contas confidenciais e não delegáveis
6. GPOs efetivos no usuário/computador
7. Grupos restritos
8. Associação a grupos aninhados
9. Acesso à visualização de senha LAPS
1. Corrigido resultado de varredura SPN, associação a grupos de contas privilegiadas
2. Contas com senha que não expira; Contas de usuário com SPN configurado;
3. Política Kerberos
4. Enumeração de ACLs interessantes para o objeto de domínio, resolvendo GUIDs
5. Informações de DC de volta
1. Separado em três classes.
2. Conexão LDAP descartada corretamente.
3. Enumerações: AdminSDHolder, atributos do domínio (MAQ, minPwdLength, maxPwdAge, lockOutThreshold, GP vinculado ao objeto de domínio), contas que não precisam de pré-autenticação.
4. Informações básicas LDAP (supportedLDAPVersion, supportedSASLMechanisms, funcionalidade de domínio/floresta/DC)
5. Varredura SPN (SPNs para MSSQL, Exchange, RDP e PS Remoting)
6. Enumerações de Delegação Restrita (S4U2Self, S4U2Proxy, bem como delegação restrita baseada em recursos)
7. RODC (grupo que administra o RODC)
1. Agora usa o namespace S.DS.P para realizar operações de pesquisa, tornando as pesquisas mais rápidas e fáceis de implementar. (Também suporta pesquisa paginada.)
2. Agora suporta pesquisa em outros domínios. (analisador de linha de comando ainda não implementado).
3. A lógica do código foi reconstruída, menos código, mais compreensível e coeso.
Para mais informações (progresso atual/lista de tarefas/etc) sobre esta ferramenta, você pode visitar minha página do projeto