
Un outil léger pour extraire rapidement des informations précieuses de l'environnement Active Directory, tant pour l'attaque que pour la défense.
ADCollector est un outil léger qui énumère l'environnement Active Directory pour identifier les vecteurs d'attaque possibles. Il vous donnera une compréhension de base de la configuration/déploiement de l'environnement comme point de départ.
ADCollector n'est pas une alternative au puissant PowerView, il automatise simplement l'énumération pour identifier rapidement des informations intéressantes sans trop réfléchir lors de la phase précoce de reconnaissance. Les fonctions implémentées dans ADCollector sont idéales pour l'énumération dans un grand environnement d'entreprise avec beaucoup d'utilisateurs/ordinateurs, sans générer beaucoup de trafic et en prenant beaucoup de temps. Il se concentre uniquement sur l'extraction d'attributs/propriétés/ACL utiles des cibles les plus précieuses plutôt que d'énumérer tous les attributs disponibles de tous les objets utilisateur/ordinateur du domaine. Vous aurez définitivement besoin de PowerView pour une énumération plus détaillée plus tard. Vous pouvez utiliser ADSI au lieu de PowerView pour énumérer le domaine tant que vous savez ce que vous voulez énumérer, voir https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/.
Le but de développer cet outil est de m'aider à en apprendre davantage sur la sécurité d'Active Directory sous un angle différent, ainsi que de comprendre ce qui se cache derrière les fonctions de PowerView.
Il utilise l'espace de noms S.DS pour récupérer les informations du domaine/forêt à partir du contrôleur de domaine (serveur LDAP). Il utilise également l'espace de noms S.DS.P pour la recherche LDAP.
Cet outil est encore en construction. Les fonctionnalités qui seront implémentées peuvent être consultées sur ma page de projet
Assurez-vous d'avoir accès au SYSVOL si vous l'exécutez depuis un hôte non joint au domaine. Vous devrez peut-être exécuter la commande suivante si une politique UNC renforcée est appliquée :
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. Ajout de l'énumération des modèles de certificats, du schéma et des identifiants utilisateur
2. Ajout de quelques drapeaux
1. Refactorisation du code et correction de bogues
2. Ajout des droits de privilège et de l'énumération des DACL d'objets
3. Ajout du mode débogage
4. Fusion du menu interactif dans la ligne de commande et suppression de certaines énumérations LDAP simples (utilisez ADSI, voir [ADSI Enum](https://dev-2null.github.io/Easy-Domain-Enumeration-with-ADSI/))
1. Correction de bogues avec quelques améliorations
2. Nouvelle logique d'implémentation pour l'énumération LAPS et des groupes restreints
3. Utilisation de Task pour gérer certaines fonctions d'énumération lourdes (beaucoup plus rapide pour les grands domaines)
4. Suppression du cache GPP et de l'énumération des comptes DCSync
1. Recherche sous une OU spécifique
2. Vue détaillée LAPS
3. Propriétaires de machine
4. Groupes restreints
5. Configurations ADCS
6. Scan ACL
7. Correction de bogues : accès SYSVOL, appartenance à un groupe imbriqué
8. Remplacement de la dépendance externe readINF par une implémentation personnalisée
9. Utilisateurs protégés
1. Réécriture complète (plus extensible)
2. Ajout d'un menu interactif avec choix en ligne de commande
3. Utilisation d'appels API directs pour énumérer les relations d'approbation
4. Mise à jour de l'énumération des GPO appliquées avec le filtrage de sécurité et le filtrage WMI (le filtre WMI doit être vérifié manuellement)
5. Ajout de l'énumération des enregistrements DNS LDAP
6. RunAs : Exécuter ADCollector sous un autre contexte utilisateur
7. Scan SPN flexible, enregistrements DNS, appartenance à un groupe imbriqué, énumération ACL
8. Ajout de NetSessionEnum, NetLocalGroupGetMembers et NetWkstaUserEnum
1. Quelques bogues ont été éliminés et certains détails améliorés
2. Le scan SPN est désormais optionnel
3. cpassword GPP dans SYSVOL/Cache
4. ACL intéressantes sur les GPO ; descriptions intéressantes sur les objets utilisateur ;
5. Comptes DCSync inhabituels ; comptes sensibles et non délégués
6. GPO effectives sur l'utilisateur/ordinateur
7. Groupes restreints
8. Appartenance à un groupe imbriqué
9. Accès à la vue des mots de passe LAPS
1. Correction des résultats du scan SPN, appartenance au groupe des comptes privilégiés
2. Comptes dont le mot de passe n'expire pas ; comptes utilisateur avec SPN défini ;
3. Politique Kerberos
4. Énumération des ACL intéressantes pour l'objet domaine, résolution des GUID
5. Les informations sur le DC sont de retour
1. Séparé en trois classes.
2. Fermeture correcte de la connexion LDAP.
3. Énumérations : AdminSDHolder, attributs de domaine (MAQ, minPwdLength, maxPwdAge, lockOutThreshold, GP lié à l'objet domaine), comptes n'ayant pas besoin de pré-authentification.
4. Informations de base LDAP (supportedLDAPVersion, supportedSASLMechanisms, fonctionnalité du domaine/forêt/DC)
5. Scan SPN (SPN pour MSSQL, Exchange, RDP et PS Remoting)
6. Énumérations de la délégation contrainte (S4U2Self, S4U2Proxy ainsi que la délégation contrainte basée sur les ressources)
7. RODC (groupe qui administre le RODC)
1. Il utilise désormais l'espace de noms S.DS.P pour effectuer les opérations de recherche, rendant les recherches plus rapides et plus faciles à implémenter. (Il prend également en charge la recherche paginée.)
2. Il prend désormais en charge la recherche dans d'autres domaines. (l'analyseur de ligne de commande n'est pas encore implémenté.)
3. La logique du code est reconstruite, moins de code, plus compréhensible et cohérente.
Pour plus d'informations (progrès actuels/Liste des tâches/etc) sur cet outil, vous pouvez visiter ma page de projet