Active Directory LDAP
Active Directory LDAP
Active Directory (AD ) est un service d'annuaire pour les environnements réseau Windows. C'est un
structure hiérarchique distribuée qui permet une gestion centralisée d'une organisation
ressources, y compris les utilisateurs, les ordinateurs, les groupes, les dispositifs réseau et les partages de fichiers, groupe
mal configuré.
Cela peut être utilisé pour se déplacer latéralement et verticalement au sein d'un réseau et gagner
accès non autorisé. AD est essentiellement une grande base de données accessible à tous les utilisateurs au sein de
domaine, indépendamment de leur niveau de privilège. Un compte utilisateur AD de base sans privilèges ajoutés
peut être utilisé pour énumérer la majorité des objets contenus dans AD, y compris mais pas
limité à :
Ordinateurs de domaine
Utilisateurs de domaine
Délégation Kerberos
Confiances de domaine
Ces données fourniront une image claire de la posture de sécurité globale d'un Active Directory.
environnement. Il peut être utilisé pour identifier rapidement les mauvaises configurations, les politiques trop permissives,
et d'autres moyens d'élever les privilèges dans un environnement AD. De nombreuses attaques existent qui
se contenter d'exploiter les mauvaises configurations de l'AD, les mauvaises pratiques ou la mauvaise administration, telles que :
Kerberoasting / ASREPRoasting
Relais NTLM
Poisonnement du trafic réseau
Épissage de mots de passe
Abus de délégation Kerberos
Abus de confiance de domaine
Vol d'identifiants
Contrôle des objets
Renforcer Active Directory, ainsi qu'une gestion des correctifs et des configurations robuste
la politique et une segmentation appropriée du réseau doivent être prioritaires. Si un environnement est strictement
géré et un adversaire peut obtenir un pied-à-terre et contourner EDR ou d'autres protections, approprié
la gestion de l'AD peut les empêcher d'escalader les privilèges, de se déplacer latéralement et d'obtenir
aux joyaux de la couronne. Des contrôles appropriés aideront à ralentir un attaquant et pourraient potentiellement forcer
aide à maintenir une structure claire et cohérente au sein d'Active Directory, ce qui est particulièrement
important alors que nous ajoutons des Objets de Stratégie de Groupe (GPO) pour appliquer des paramètres dans l'ensemble
domaine.
Comprendre la structure d'Active Directory est primordial pour effectuer une énumération correcte.
et découvrir les défauts et les erreurs de configuration qui ont parfois été négligés dans un
environnement pendant de nombreuses années.
Exercices de module
Tout au long de ce module, vous vous connecterez à divers hôtes cibles via le Bureau à distance.
Protocole (RDP) pour compléter les exercices. Les identifiants nécessaires seront fournis avec
chaque exercice, et la connexion RDP peut être effectuée via xfreerdp du Pwnbox en tant que
suit
Tous les outils nécessaires peuvent être trouvés dans le c:\outilsrépertoire après s'être connecté à la cible
hôte.
Pourquoi énumérer AD ?
En tant que testeurs de pénétration,
énumération est l'une des compétences les plus importantes, sinon la plus importante, que nous devons
maître. Lors du démarrage d'une évaluation dans un nouveau réseau, il est important d'obtenir un inventaire complet.
de l'environnement est extrêmement important. Les informations recueillies pendant cette phase vont
informer nos attaques ultérieures et même la post-exploitation. Étant donné la prévalence de l'AD dans le corporate
réseaux, nous nous retrouverons probablement régulièrement dans des environnements AD, et donc, il est
il est important de perfectionner notre processus d'énumération. Il existe de nombreux outils et techniques pour aider
avec l'énumération AD, que nous couvrirons en profondeur dans ce module et les modules suivants;
Cependant, avant d'utiliser ces outils, il est important de comprendre la raison de les utiliser.
énumération AD détaillée.
Que nous effectuions un test de pénétration ou une évaluation ciblée de l'AD, nous pouvons toujours aller au-delà
et au-delà et fournir à nos clients une valeur ajoutée en leur donnant une image détaillée de leur
Forces et faiblesses de l'AD. Les environnements d'entreprise traversent de nombreux changements au cours de
années, ajoutant et supprimant des employés et des hôtes, installant des logiciels et des applications qui
exigent des modifications dans l'AD, ou des politiques d'entreprise qui nécessitent des modifications de GPO. Ces changements peuvent
introduire des failles de sécurité par une mauvaise configuration, et c'est notre travail en tant qu'évaluateurs de les trouver
Commencer
Une fois que nous avons un pied dans un environnement AD, nous devrions commencer par rassembler plusieurs éléments clés.
ACLs d'objet
Informations sur les objets de stratégie de groupe (GPO)
Avec ces informations en main, nous pouvons chercher des 'gains rapides' tels que notre utilisateur actuel ou
l'ensembleUtilisateurs groupe ayant un accès RDP et/ou administrateur local à un ou
de domaine
plus d'hôtes. C'est courant dans les grands environnements pour de nombreuses raisons, l'une étant le
utilisation incorrecte des hôtes de saut et un autre étant le serveur Citrix Services de Bureau à Distance (RDS)
mésconfigurations. Nous devrions également vérifier quels droits notre utilisateur actuel a dans le domaine. Sont-ils
sont-ils membres de groupes privilégiés ? Ont-ils des droits spéciaux délégués ? Ont-ils
ont-ils un contrôle sur un autre objet de domaine tel qu'un utilisateur, un ordinateur ou un GPO ?
Le processus d'énumération est itératif. À mesure que nous avançons dans l'environnement AD,
compromettant des hôtes et des utilisateurs, nous devrons effectuer une énumération supplémentaire pour voir si nous
avoir obtenu un accès supplémentaire pour nous aider à atteindre notre objectif.
AD contient de nombreux groupes qui accordent à leurs membres des droits et privilèges puissants. Beaucoup de
cela peut être abusé pour escalader les privilèges au sein d'un domaine et finalement obtenir le domaine
Privilèges d'administrateur ou de SYSTÈME sur un contrôleur de domaine (DC). Certains de ces groupes sont énumérés
ci-dessous.
Groupe Description
Par défaut Groupes "super" Domain Admins et Enterprise Admins.
Administrateurs
Serveur Les membres peuvent modifier les services, accéder aux partages SMB et sauvegarder des fichiers.
Opérateurs
Sauvegarde Les membres sont autorisés à se connecter aux DCs localement et doivent être
Opérateurs considéré comme Administrateurs de Domaine. Ils peuvent créer des copies instantanées de
Opérateurs d'impression Les membres sont autorisés à se connecter localement aux DC et à "tromper" Windows pour
charger un pilote malveillant.
Hyper-V S'il y a des DCs virtuels, tout administrateur de virtualisation, comme les membres
Administrateurs Les administrateurs Hyper-V doivent être considérés comme des administrateurs de domaine.
Compte Les membres peuvent modifier des comptes et des groupes non protégés dans le
Opérateurs domaine.
À distance Les membres ne reçoivent par défaut aucune autorisation utile mais sont
Utilisateurs de bureau souvent accordé des droits supplémentaires tels que Autoriser la connexion à distance
Les services de bureau peuvent se déplacer latéralement en utilisant le protocole RDP.
Télécommande Les membres sont autorisés à se connecter aux contrôleurs de domaine avec PSRemoting (Ce groupe est
compteAdministrateur 1
NomCanonical INLANEFREIGHT.LOCAL/Utilisateurs/Administrateurs de Schéma
CN Administrateurs de schéma
Créé 26/07/2020 16:14:37
créerHorodatage 26/07/2020 16:14:37
Supprimé :
Description Administrateurs désignés du schéma
Nom d'affichage :
Nom Distingué CN=Schéma
Admins,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL
dSCorePropagationData 29/07/2020 23:52:30
11:09:16 PM, 7/27/2020 9:45:00 PM, 7/27/2020
21:34:13
GroupeCatégorie Sécurité
PortéeDuGroupe Universel
typeDeGroupe :-2147483640
Page d'accueil :
typeD'instance 4
estObjetSystèmeCritique Vrai
estSupprimé :
DernierParentConnu :
Géré par :
membre Jenna Smith
Équipe,OU=IT,OU=Employés,DC=INLANEFREIGHT,DC=LOCAL
CN=Administrateur,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL
MembreDe CN=Mot de passe de réplication RODC refusé
Groupe,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL}
Membres {CN=Jenna Smith,OU=Serveur
Équipe,OU=TI,OU=Employés,DC=INLANEFREIGHT,DC=LOCAL
CN=Administrateur,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL
Modifié 30/07/2020 14:04:05
modifierHorodatage 30/07/2020 14:04:05
Nom Administrateurs de schéma
nTSecurityDescriptor :
Système.DossiersActifsSécurité
CatégorieObjet :
CN=Groupe,CN=Schéma,CN=Configuration,DC=INLANEFREIGHT,DC=LOCAL
Classe d'objet :groupe
ObjectGUID 36eef5cb-92b1-47d2-a25d-b9d73783ed1e
objectSid S-1-5-21-2974783224-3764228556-
2640795941-518
Faux
NomDeCompteSam Administrateurs de schéma
sAMAccountType 268435456
droitEffectif 15
SID S-1-5-21-2974783224-3764228556-
2640795941-518
HistoriqueSID : {}
uSNChanged 66825
uSNCréé 12336
lorsqu'il a changé 30/07/2020 14:04:05
lors de la création 26/07/2020 16:14:37
En fonction de l'appartenance au groupe et d'autres facteurs tels que les privilèges attribués via le Groupe
Selon la politique, les utilisateurs peuvent avoir divers droits assignés à leur compte. Cet article de Microsoft surUtilisateur
Cession de droitsfournit une explication détaillée de chacun des droits des utilisateurs qui peuvent être définis
dans Windows.
Taper la commande whoami /priv vous donnera une liste de tous les droits d'utilisateur qui vous sont attribués
utilisateur actuel. Certains droits ne sont disponibles que pour les utilisateurs administratifs et ne peuvent être que
énuméré/levé lors de l'exécution d'un cmd ou d'une session PowerShell élevée. Ces concepts de
droits élevés etContrôle de compte d'utilisateur (UAC)des fonctionnalités de sécurité introduites avec
Windows Vista par défaut restreindra les applications de s'exécuter avec des autorisations complètes, sauf si
absolument nécessaire. Si nous comparons et contrastons les droits disponibles pour nous en tant qu'administrateur dans un
console non élevée vs. console élevée, nous verrons qu'elles diffèrent drastiquement. Essayons
cela comme le étudiant htbutilisateur sur la machine de laboratoire.
Nous pouvons voir ce qui suit dans une console non élevée :
PSC:\htb> whoami/priv
Désactivé
SeIncreaseWorkingSetPrivilege Augmenter l'ensemble de travail d'un processus
Désactivé
SeTimeZonePrivilege Changer le fuseau horaire
Désactivé
Si nous exécutons une commande élevée (notre utilisateur htb-student a des droits d'administrateur local via imbriqué
adhésion au groupe ; le groupe des utilisateurs du domaine est dans le groupe des administrateurs locaux), nous pouvons
----------------------
processus Désactivé
SeMachineAccountPrivilege Ajouter des stations de travail au domaine
Désactivé
SeSecurityPrivilege Gérer l'audit et le journal de sécurité
Désactivé
SeTakeOwnershipPrivilege Prenez possession de fichiers ou d'autres
objets Désactivé
SeLoadDriverPrivilege Charger et décharger les pilotes de périphériques
Désactivé
SeSystemProfilePrivilege Profilage des performances du système
Désactivé
Droit de modifier l'heure système Changer l'heure du système
Désactivé
SeProfileSingleProcessPrivilege Profil monoprocessus
Désactivé
SeAugmenterPrioritéBasePrivilège Augmenter la priorité de planification
Désactivé
SeCreatePagefilePrivilege Créer un fichier d'échange
Désactivé
SeBackupPrivilege Sauvegarder des fichiers et des répertoires
Désactivé
SeRestorePrivilege Restaurer des fichiers et des répertoires
Désactivé
SeShutdownPrivilege Éteignez le système
Désactivé
SeDebugPrivilege Déboguer des programmes
Activé
SeSystemEnvironmentPrivilege Modifier l'environnement du firmware
valeurs Désactivé
SeChangeNotifyPrivilege Contourner la vérification de traversée
Activé
SeRemoteShutdownPrivilege Arrêt forcé à distance
système Désactivé
SeUndockPrivilege Retirer l'ordinateur du dock
station Désactivé
SeActiverDroitsDelegation Activer l'ordinateur et l'utilisateur
Désactivé
SeImpersonatePrivilege Imiter un client après
authentification Activé
SeCreateGlobalPrivilege Créer des objets globaux
Activé
SeIncreaseWorkingSetPrivilege Augmenter l'ensemble de travail du processus
Désactivé
PrivilègeSeTempsZone Changer le fuseau horaire
Désactivé
SeCreateSymbolicLinkPrivilege Créer des liens symboliques
Désactivé
SeDelegateSessionUserImpersonatePrivilege Obtenir un jeton d'imitation
pour un autre utilisateur dans la même session Désactivé
----------------------
Les droits des utilisateurs augmentent en fonction des groupes dans lesquels ils sont placés et/ou de leurs privilèges assignés.
----------------------
En tant qu'attaquants et défenseurs, nous devons examiner l'adhésion à ces groupes. Ce n'est pas
il est rare de trouver des utilisateurs apparemment peu privilégiés ajoutés à un ou plusieurs de ces groupes,
qui peut être utilisé pour accéder davantage ou compromettre le domaine.
Remarque : Lorsque vous faites apparaître votre cible, nous vous demandons d'attendre 3 minutes jusqu'à ce que tout le laboratoire avec
toutes les configurations sont mises en place afin que la connexion à votre cible fonctionne parfaitement.
Contexte RSAT
Le ( RSAT)
Outils d'administration à distance des serveurs font partie de Windows depuis le
les jours de Windows 2000. RSAT permet aux administrateurs systèmes de gérer à distance Windows
Rôles et fonctionnalités du serveur d'un poste de travail fonctionnant sous Windows 10, Windows 8.1, Windows 7
ou Windows Vista. RSAT ne peut être installé que sur les éditions Professionnelle ou Entreprise de
Windows. Dans un environnement d'entreprise, les RSAT peuvent gérer à distance Active Directory, DNS,
et DHCP.RSAT nous permet également de gérer les rôles et fonctionnalités de serveur installés, Fichier
Services et Hyper-V. La liste complète des outils inclus avec RSAT est :
Ceciscénariopeut être utilisé pour installer RSAT dans Windows 10 1809, 1903 et 1909. Installation
instructions pour d'autres versions de Windows, ainsi que des informations supplémentaires sur RSAT, peuvent
être trouvéici. RSAT peut également être installé facilement avec PowerShell.
Nous pouvons vérifier quels outils RSAT, le cas échéant, sont installés en utilisant PowerShell.
Nom État
---- -----
Rsat.ActiveDirectory.DS-LDS.Outils~~~~0.0.1.0 NonPrésent
Rsat.BitLocker.Récupération.Outils~~~~0.0.1.0 NonPrésent
Rsat.CertificateServices.Tools~~~~0.0.1.0 NonPrésent
Rsat.DHCP.Tools~~~~0.0.1.0 NonPrésent
Rsat.Dns.Tools~~~~0.0.1.0 NonPrésent
Rsat.FailoverCluster.Management.Tools~~~~0.0.1.0 NonPrésent
Rsat.FileServices.Tools~~~~0.0.1.0 Non présent
Rsat.GroupeStratégie.Gestion.Outils~~~~0.0.1.0 NonPrésent
Rsat.IPAM.Client.Tools~~~~0.0.1.0 NonPrésent
Rsat.LLDP.Tools~~~~0.0.1.0 Non présent
Rsat.NetworkController.Tools~~~~0.0.1.0 NonPrésent
Rsat.NetworkLoadBalancing.Tools~~~~0.0.1.0 NonPrésent
Rsat.RemoteAccess.Management.Tools~~~~0.0.1.0 NonPrésent
Rsat.RemoteDesktop.Services.Tools~~~~0.0.1.0 Non présent
Rsat.ServerManager.Tools~~~~0.0.1.0 NonPrésent
Rsat.Shielded.VM.Tools~~~~0.0.1.0 NonPrésent
Rsat.StorageMigrationService.Management.Tools~~~~0.0.1.0 Non Présent
Rsat.StorageReplica.Tools~~~~0.0.1.0 NonPrésent
Rsat.SystemInsights.Management.Tools~~~~0.0.1.0 NonPrésent
Rsat.VolumeActivation.Outils~~~~0.0.1.0 NonPrésent
Rsat.WSUS.Tools~~~~0.0.1.0 Non Présent
À partir d'ici, nous pouvons choisir d'installer tous les outils disponibles en utilisant la commande suivante :
Nous pouvons également installer les outils un à un au fur et à mesure des besoins.
PSC:\htb>Add-WindowsCapability-Name Rsat.ActiveDirectory.DS-
LDS.Tools~~~~0.0.1.0 –En ligne
Une fois installé, tous les outils seront disponibles sous dans le
Outils d'administration
.
Panneau de configuration
Contexte de domaine pour l'énumération
De nombreux outils manquent de paramètres d'identification et de contexte et obtiennent à la place ces valeurs.
directement à partir du contexte actuel. Il existe quelques façons de modifier le contexte d'un utilisateur dans Windows si
vous avez accès à un mot de passe ou à un hachage, tel que :
D'autres outils que nous aborderons dans les modules ultérieurs, tels queRubeusetmimikatzpeut être
des identifiants en texte clair ou un hachage de mot de passe NTLM.
Alternativement, nous pouvons énumérer le domaine depuis un hôte non joint au domaine (à condition que cela soit
est dans un sous-réseau qui communique avec un contrôleur de domaine) en lançant n'importe quel complément RSAT
utiliser " runas depuis la ligne de commande. C'est particulièrement utile si nous nous retrouvons
réaliser une évaluation interne, obtenir des identifiants AD valides, et souhaiterait effectuer
énumération depuis une VM Windows.
Nous pouvons aussi ouvrir le Console MMC d'un ordinateur qui n'est pas joint à un domaine en utilisant le suivant
syntaxe de commande :
Bien que ces outils graphiques soient utiles et faciles à utiliser, ils sont très inefficaces lorsqu'il s'agit de tenter
pour énumérer un grand domaine. Dans les prochaines sections, nous allons introduire
LDAP et divers
types de filtres de recherche que nous pouvons utiliser pour énumérer AD en utilisant PowerShell. Les sujets que
les sections que nous couvrons nous aideront à mieux comprendre comment fonctionne AD et
comment rechercher des informations de manière efficace, ce qui nous informera finalement mieux sur l'utilisation de
plus d'outils et de scripts "automatisés" que nous aborderons dans les deux prochaines
Énumération AD
modules.
Le pouvoir de NT AUTHORITY\SYSTEM
(et peut être rendu encore plus puissant avec les privilèges de Trusted Installer). Ce compte a
plus de privilèges qu'un compte administrateur local et est utilisé pour exécuter la plupart des Windows
services. Il est également très courant que des services tiers fonctionnent dans le contexte de ce compte
par défaut. Le compte SYSTEM a les éléments suivantsprivileges:
Le compte SYSTEM sur un hôte joint à un domaine peut énumérer Active Directory par
usurpation du compte de l'ordinateur, qui est essentiellement un compte utilisateur spécial. Si vous tombez
sur un hôte joint au domaine avec des privilèges SYSTEM lors d'une évaluation et ne peut en trouver aucun
des identifiants utiles en mémoire ou d'autres données sur la machine, il y a encore beaucoup de choses que vous
pouvoir faire. Avoir un accès au niveau du SYSTÈME dans un environnement de domaine est presque équivalent à
avoir un compte utilisateur de domaine. La seule véritable limitation est de ne pas pouvoir effectuer des opérations inter-
faites confiance aux attaques Kerberos telles que Kerberoasting.
Il existe plusieurs façons d'obtenir un accès au niveau SYSTEM sur un hôte, y compris, mais sans s'y limiter :
En obtenant un accès au niveau SYSTÈME sur un hôte joint au domaine, nous serons en mesure de :
Énumérez le domaine et récoltez des données telles que des informations sur les utilisateurs du domaine et
groupes, accès administrateur local, relations de domaine, ACL, propriétés des utilisateurs et des ordinateurs
etc., en utilisant Chien , et
de sang PowerView / SharpView .
Réaliser des attaques Kerberoasting / ASREPRoasting.
Exécuter des outils tels queInvectiverpour collecter des hachages Net-NTLM-v2 ou effectuer des attaques par relais.
Effectuer une usurpation de jeton pour détourner un compte utilisateur de domaine privilégié.
Aperçu de LDAP
Protocole d'accès léger aux annuaires (LDAP ) est une partie intégrante d'Active Directory
(AD). La dernière spécification LDAP est la version 3, qui est publiée sousRFC 4511Une entreprise
la compréhension du fonctionnement de LDAP dans un environnement AD est cruciale tant pour les attaquants que pour
défenseurs.
LDAP est un protocole open-source et multiplateforme utilisé pour l'authentification contre divers
services d'annuaire (tels que AD). Comme discuté dans la section précédente, AD stocke les utilisateurs
informations de compte et informations de sécurité telles que des mots de passe et facilite le partage de cela
informations avec d'autres appareils sur le réseau.LDAP est le langage que les applications utilisent pour
communiquer avec d'autres serveurs qui fournissent également des services d'annuaire. En d'autres termes,
LDAP est
une manière dont les systèmes dans l'environnement réseau peuvent "parler" à AD.
Bien que peu courant, vous pourriez rencontrer des organisations lors de la réalisation d'une évaluation qui
n'a pas d'AD mais a un LDAP, ce qui signifie qu'ils utilisent très probablement un autre type de
LDAP serveur tel queOpenLDAP.
Authentification AD LDAP
LDAP est configuré pour authentifier les identifiants contre AD en utilisant une opération "BIND" pour définir le
état d'authentification pour unLDAP session. Il y a deux types de LDAP authentification.
qu'un nom d'utilisateur et un mot de passe créent une demande BIND pour s'authentifier au LDAP
serveur.
2.Authentication SASL : LeCouche d'authentification et de sécurité simple (SASL)
le cadre utilise d'autres services d'authentification, tels que Kerberos, pour se lier au LDAP
serveur et utilise ensuite ce service d'authentification (Kerberos dans cet exemple) pour
s'authentifier à LDAP . Le LDAP le serveur utilise le LDAP protocole pour envoyer un
LDAP
message au service d'autorisation qui initie une série de défi/réponse
messages résultant d'une authentification réussie ou échouée. SASL peut
fournir une sécurité supplémentaire en raison de la séparation des méthodes d'authentification de
protocoles d'application.
Les messages d'authentification LDAP sont envoyés en clair par défaut, donc n'importe qui peut les intercepter.
messages sur le réseau interne. Il est recommandé d'utiliser le chiffrement TLS ou similaire pour
sauvegarder ces informations en transit.
Requêtes LDAP
Nous pouvons communiquer avec le service d'annuaire en utilisantLDAP questions à poser au service pour
information. Par exemple, la requête suivante peut être utilisée pour trouver tous les postes de travail dans un
réseau (objectCategory=ordinateur) bien que cette requête puisse être utilisée pour trouver tous les domaines
contrôleurs (&(objectCategory=Ordinateur)
(userAccountControl:1.2.840.113556.1.4.803:=8192)) .
Les requêtes LDAP peuvent être utilisées pour effectuer des recherches liées aux utilisateurs, telles que
(&"
qui recherche tous les utilisateurs, ainsi que
(catégorieObjet=personne)(classeObjet=utilisateur))
grouper les recherches connexes telles que qui
(classedObjet=groupe) renvoie tous les groupes. Voici
un exemple d'une requête simple pour trouver tous les groupes AD utilisant le Obtenir-ObjetAD
" cmdlet et
le paramètre LDAPFilter ".
PSC:\htb>Obtenir-ObjetAD-FiltreLDAP'(objectClass=groupe)'|sélectionner nom
nom
--
Administrateurs
Utilisateurs
Invités
Opérateurs d'impression
Opérateurs de sauvegarde
Réplicateur
Utilisateurs de Bureau à Distance
PSC:\htb>Get-ADObject-LDAPFilter'(&(objectCategory=person)
(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))'-
Propriétés*|sélectionner samaccountname, useraccountcontrol
samaccountname
controlesurlecompteutilisateur
-------------- ---
---------------
Invité COMPTE_DÉSACTIVÉ
NEPAS_EXPIRER_MOT_DE_PASSE
CompteParDéfaut COMPTE_DÉSACTIVÉ
NEPAS_EXPIRER_MOT_DE_PASSE
krbtgt COMPTE_DSABLE
NE PAS EXPIRER LE MOT DE PASSE
caroline.ali COMPTE_DESACTIVE, MOT_DE_PASSE_NON_REQUIS
COMPTE_NORMAL
$SH2000-FPNHUU487JP0 COMPTE_DÉSACTIVÉ, MOT_DE_PASSE_NON_REQUISE
COMPTE_NORMAL
SM_00390f38b41e488ab COMPTEDÉSACTIVÉ
COMPTE_NORMAL
SM_e081bc60d79c4597b COMPTEDÉSACTIVÉ
COMPTE_NORMAL
SM_a9a4eed7ad2d4369a COMPTEDÉSACTIVÉ
COMPTE_NORMAL
SM_d836f82078bf4cf89 COMPTEDÉSACTIVÉ
COMPTE_NORMAL
SM_6a24f488535649558 COMPTEDÉSACTIVE
COMPTE_NORMAL
SM_08a2324990674a87b COMPTEDÉSACTIVÉ
COMPTE_NORMAL
SM_d1fea2710dc146b1b COMPTEDISABLE
COMPTE_NORMAL
SM_b56189681baa441db COMPTEDISABLE
COMPTE_NORMAL
SM_b72a918d27554863b COMPTEDÉSACTIVÉ
COMPTE_NORMAL
Plus d'exemples de base et plus avancés LDAP les requêtes pour AD peuvent être trouvées à
liens suivants :
LDAP Les requêtes sont des outils extrêmement puissants pour interroger Active Directory. Nous pouvons les exploiter.
leur capacité à rassembler une grande variété d'informations, à cartographier l'environnement AD et à chasser pour
des erreurs de configuration. Les requêtes LDAP peuvent être combinées avec des filtres pour effectuer des opérations encore plus granulaires.
recherches. Les deux sections suivantes couvriront en profondeur les filtres de recherche AD et LDAP pour
préparez-nous à introduire une variété d'outils d'énumération AD dans les modules suivants.
Remarque : Lorsque vous créez votre cible, nous vous demandons d'attendre 3 minutes jusqu'à ce que tout le laboratoire soit
toutes les configurations sont mises en place pour que la connexion à votre cible fonctionne parfaitement.
Filtres PowerShell
Les filtres dans PowerShell vous permettent de traiter les sorties de pipeline plus efficacement et de récupérer exactement
les informations dont vous avez besoin d'une commande. Des filtres peuvent être utilisés pour affiner des données spécifiques
dans un grand résultat ou récupérer des données qui peuvent ensuite être envoyées à une autre commande.
Nous pouvons utiliser des filtres avec leFiltre paramètre. Un exemple de base consiste à interroger un ordinateur pour
logiciel installé
PSC:\htb>get-ciminstancewin32_product |fl
{7FED75A1-600C-394B-8376-712E2A8861F2}
Nom Microsoft Visual C++2017 x86 Runtime supplémentaire
14.12.25810
Vendeur Microsoft Corporation
Version 14.12.25810
Légende Microsoft Visual C++2017 x86 Runtime supplémentaire
14.12.25810
{748D3A12-9B82-4B08-A0FF-CFDE83612E87}
Nom VMware Tools
Fournisseur VMware, Inc.
Version 10.3.2.9925305
Légende VMware Tools
{EA8CB806-C109-4700-96B4-F1F268E5036C}
Nom Solution de mot de passe de l'administrateur local
Vendeur Microsoft Corporation
Version 6.2.0.0
Légende Solution de mot de passe de l'administrateur local
{2CD849A7-86A1-34A6-B8F9-D72F5B21A9AE}
Nom Microsoft Visual C++2017 x64 Runtime supplémentaire -
14.12.25810
Vendeur Microsoft Corporation
Version 14.12.25810
Légende Microsoft Visual C++ 2017 x64 Runtime supplémentaire
14.12.25810
<SNIP>
La commande ci-dessus peut fournir une sortie considérable. Nous pouvons utiliser le Filtrerparamètre
opérateur pour filtrer tous les logiciels Microsoft (ce qui peut être utile lorsque
avec le pas comme
énumérer un système pour les vecteurs d'escalade de privilèges locaux.
{748D3A12-9B82-4B08-A0FF-CFDE83612E87}
Nom VMware Tools
Fournisseur VMware, Inc.
Version 10.3.2.9925305
Légende VMware Tools
Opérateurs
Le FiltrerL'opérateur nécessite au moins un opérateur, ce qui peut aider à affiner la recherche
résultats ou réduire une grande quantité de sortie de commande à quelque chose de plus digestible. Filtrage
Il est important de le faire correctement, surtout lorsqu'il s'agit d'énumérer de grands environnements et de chercher très
informations spécifiques dans la sortie de la commande. Les opérateurs suivants peuvent être utilisés avec le
Filtrerparamètre
Filtrer Signification
-eq Égal à
-le Inférieur ou égal à
-ge Supérieur ou égal à
-ne Pas égal à
-lt Moins que
-gt Supérieur à
approximatif Environ égal à
-bor OU binaire
-bande ET binaire
-correspondanceRécursive Correspondance récursive
-comme Comme
-pas comme Pas comme
-et ET booléen
-ou OU booléen
-pas NON booléen
Comme vu ci-dessus, la valeur de la propriété (ici, sally jones ) peut être enveloppé dans une simple ou une double-
être utilisé comme uncaractère génériquelors de l'exécution de requêtes. Le
citations. L'astérisque (*) peut *
commandeGet-ADUser -filtre {nom -comme "joe*"} l'utilisation d'un caractère générique renverrait tout
utilisateurs de domaine dont le nom commence parjoe (joe, joel, etc.). Lorsque vous utilisez des filtres, certains
‘ \’ Nécessaire uniquement si les données sont enfermées dans des guillemets simples.
Essayons certains de ces filtres pour énumérer le INLANEFREIGHT.LOCAL domaine. Nous pouvons
recherchez tous les ordinateurs du domaine pour des noms d'hôtes intéressants. Les serveurs SQL sont particulièrement intéressants.
cible sur les évaluations internes. La commande ci-dessous cherche tous les hôtes dans le domaine en utilisant
, filtrage sur le
Obtenir-ADOrdinateur NomDNSHôte propriété qui contient le mot SQL .
CN=SQL01,OU=SQL
Serveurs,OU=Serveurs,DC=INLANEFREIGHT,DC=LOCAL
Nom d'hôte DNS SQL01.DÉMÉNAGEMENTLOCAL
Activé Vrai
Nom : SQL01
Classe d'objet ordinateur
ObjectGUID 42cc9264-1655-4bfa-b5f9-21101afb33d0
SQL01$
SID S-1-5-21-2974783224-3764228556-2640795941-1104
UserPrincipalName
Ensuite, recherchons des groupes administratifs. Nous pouvons le faire en filtrant suradminCount
le
attribut. Le groupe avec cet attribut réglé sur 1 sont protégés parAdminSDHolderet connu
comme des groupes protégés.
AdminSDHolder est détenu par le groupe des Administrateurs de domaine. Il a le
privilèges pour modifier les autorisations des objets dans Active Directory. Comme discuté ci-dessus, nous
Vous pouvez filtrer la sortie de la commande et sélectionner uniquement les noms des groupes.
Nom
----
Administrateurs
Opérateurs d'impression
Opérateurs de sauvegarde
Réplicateur
Contrôleurs de domaine
Admins de schéma
Administrateurs d'entreprise
Administrateurs de domaine
Opérateurs de serveur
Opérateurs de compte
Contrôleurs de domaine en lecture seule
Opérations de sécurité
Nous pouvons également combiner des filtres. Recherchons tous les utilisateurs administratifs avec le
ensemble d'attributs, ce qui signifie qu'ils peuvent être ASREPRoastés (ceci
NécessitePasPréAutorisation
l'attaque sera couverte en profondeur dans les modules suivants). Ici, nous sélectionnons tous les utilisateurs de domaine et
PSC:\htb>Get-ADUser-Filtre{adminCount-eq'1'-et
Ne nécessite pas de préauthentification - eq 'Vrai'
CN=Jenna Smith,OU=Serveur
Équipe,OU=TI,OU=Employés,DC=INLANEFREIGHT,DC=LOCAL
Prénom jenna
Nom Jenna Smith
Classe d'objet utilisateur
ObjectGUID : ea3c930f-aa8e-4fdc-987c-4a9ee1a75409
jenna.smith
SID S-1-5-21-2974783224-3764228556-2640795941-1999
Nom de famille smith
jenna.smith@inlanefreight
Enfin, voyons un exemple de combinaison de filtres et de transfert de sortie plusieurs fois pour trouver notre
informations souhaitées. La commande suivante peut être utilisée pour trouver tous les utilisateurs administratifs avec
NomDeCompteSam sqlqa
MembreDe {CN=Domaine
Admins,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL}
{MSSQL_svc_qa/inlanefreight.local:1443}
Il faudrait un temps extrêmement long pour énumérer un environnement Active Directory en utilisant
de nombreuses combinaisons des commandes ci-dessus. Ce dernier exemple pourrait être effectué rapidement
et facilement avec des outils tels quePowerView ou Rubeus Néanmoins, il est important d'appliquer
filtres de manière compétente lors de l'énumération d'AD comme la sortie d'outils tels quePowerView peut même
Remarque : Lorsque vous générez votre cible, nous vous demandons d'attendre 3 minutes jusqu'à ce que tout le laboratoire avec
toutes les configurations sont mises en place afin que la connexion à votre cible fonctionne sans faille.
Les filtres LDAP doivent avoir un ou plusieurs critères. S'il existe plus d'un critère, ils peuvent être
concaténé ensemble à l'aide de logique
ET ouOU opérateurs. Ces opérateurs sont toujours
placé devant les critères (opérandes), qui est également appeléNotation polonaise.
Les règles de filtrage sont entourées de parenthèses et peuvent être regroupées en entourant le groupe de
parenthèses et en utilisant l'un des opérateurs de comparaison suivants :
Fonction opérateur
& et
` `
! pas
ET Opération :
OU Opération :
Critères de recherche
Lors de l'écriture d'un filtre de recherche LDAP, nous devons spécifier une exigence de règle pour le LDAP.
attribut en question (c'est-à-dire
william ). Les règles suivantes peuvent être utilisées pour
spécifiez nos critères de recherche :
Ceciliencontient une grande liste d'attributs utilisateur, et ci-dessous se trouve une liste de toutes les bases
Attributs.
Table
tableau d'affichage d'entrée d'adresse d'affichage d'entrée d'adresse
MSDOS 1.2.840.
MSDOS
syntaxeAdresse Syntaxe d'adresse 1.2.840.
type d'adresse Type d'adresse 1.2.840.
menu_contextuel_admin Menu Contextuel Administrateur 1.2.840.
adminCount Compte Admin 1.2.840.
Nom d'affichage LDAP CN Attribut
descriptionAdmin Description de l'administrateur 1.2.840.
nom d'affichage de l'administrateur Nom d'affichage de l'administrateur 1.2.840.
pagesDePropriétésAdministratives Pages de Propriété Admin 1.2.840.
attributs autorisés Attributs autorisés 1.2.840.
attributsAutorisésEffectifs Attributs Autorisés Efficaces 1.2.840.
classesEnfantAutorisées Classes d'enfants autorisées 1.2.840.
classesEnfantAutoriséesEfficaces Classes-Enfants-Autorisées-Efficaces 1.2.840.
identités de sécurité alternatives Identités de sécurité alternatives 1.2.840.
aNR ANR 1.2.840
nomDeL'application Nom de l'application 1.2.840.
s'applique à S'applique à 1.2.840.
versionDuSchémaDeL'application Version du schéma de l'application 1.2.840.
numéro d'actif Numéro d'actif 1.2.840.
assistant Assistant 1.2.840.
assocNTAccount Assoc-NT-Compte 1.2.840.
nomsD'affichageDesAttributs Noms d'affichage des attributs 1.2.840.
ID d'attribut ID d'attribut 1.2.840.
attributSécuritéGUID Attribut-Sécurité-GUID 1.2.840.
syntaxe d'attribut Syntaxe des attributs 1.2.840.
typesD'attribut Types d'attributs 2.5.21.5
politique d'audit Politique d'audit 1.2.840.
optionsD'authentification Options d'authentification 1.2.840.
liste de révocation d'autorité Liste de révocation des autorités 2.5.4.38
classe auxiliaire Classe auxiliaire 1.2.840.
mauvaisTempsDeMotDePasse Temps de mauvais mot de passe 1.2.840.
compteMauvaisMotDePasse Nombre de mots de passe incorrects 1.2.840.
lieu de naissance Lieu de naissance 1.2.840.
listeServeursPontBL Liste-Serveurs-Tête-de-Pont-BL 1.2.840.
listeDesTransportsDuPont Liste de transport de tête de pont 1.2.840.
tempsDeCréationIntégré Heure de création intégrée 1.2.840.
compteModifiéIntégré Compte-Modifié-Intégré 1.2.840.
catégorie d'affaires Catégorie d'affaires 2.5.4.15
octets par minute Octets par minute 1.2.840.
c Nom du pays 2.5.4.6
Nom d'affichage LDAP CN Attribut
cACertificat Certificat CA 2.5.4.37
DNDeCertificatAC CA-Certificat-DN 1.2.840.
cAConnect CA-Connect 1.2.840.
nomCanonical Nom-canonique 1.2.840.
peutMiseÀNiveauScript Peut-Mise-À-Niveau-Script 1.2.840.
catalogues Catalogues 1.2.840.
catégories Catégories 1.2.840.
identifiantCatégorie ID de catégorie 1.2.840.
cAUsages CA-Usages 1.2.840.
cAWEBURL CA-WEB-URL 1.2.840.
objetAutoritéCertificat Objet d'Autorité de Certification 1.2.840.
listeDeRévocationDesCertificats Liste de révocation de certificat 2.5.4.39
modèles de certificat Modèles de certificats 1.2.840.
Nom d'affichage de classe Nom d'affichage de la classe 1.2.840.
cn Nom Commun 2.5.4.3
co Texte-Pays 1.2.840.
codePage Page de code 1.2.840.
cOMClassID ID de classe COM 1.2.840.
cOMCLSID COM-CLSID 1.2.840.
cOMInterfaceID ID d'interface COM 1.2.840.
comment Commentaire de l'utilisateur 1.2.840.
cOMOtherProgId COM-Autre-Prog-Id 1.2.840.
entreprise Entreprise 1.2.840.
cOMProgID COM-ProgID 1.2.840.
cOMTraiterCommeIdDeClasse COM-Traiter-Comme-ID-Classe 1.2.840.
cOMTypelibId COM-Typelib-Id 1.2.840.
cOMUniqueLIBID COM-Unique-LIBID 1.2.840.
indexationDuContenuAutorisée Indexation-Contenu-Autorisée 1.2.840.
menu contextuel Menu contextuel 1.2.840.
contrôleDesDroitsDAccès Droits d'accès au contrôle 1.2.840.
coût Coût 1.2.840.
codePays Code de pays 1.2.840.
créerDialogue Créer-Dialogue 1.2.840.
créerHorodatage Créer un horodatage 2.5.18.1
Nom d'affichage LDAP CN Attribut
créerSorcièreExt Créer-Wizard-Ext 1.2.840.
tempsDeCréation Temps de création 1.2.840.
assistantDeCréation Assistant de création 1.2.840.
créateur Créateur 1.2.840.
cRLObject Objet CRL 1.2.840.
cRLPartitionedRevocationList Liste de révocation partitionnée CRL 1.2.840.
paires de certificats croisés Paire de certificats croisés 2.5.4.40
emplacementActuel Emplacement actuel 1.2.840.
parentCAactuel Parent-actuel-CA 1.2.840.
valeurActuelle Valeur Actuelle 1.2.840.
currMachineId Curr-Id-Machine 1.2.840.
dBCSPwd DBCS-Mdp 1.2.840.
dc Composant de Domaine 0.9.2342
magasinDeClasseParDéfaut Magasin de classe par défaut 1.2.840.
groupeParDéfaut Groupe par défaut 1.2.840.
valeurDeMasquageParDéfaut Valeur par défaut masquée 1.2.840.
objetPolitiqueLocaleParDéfaut Objet de politique locale par défaut 1.2.840.
catégorie d'objet par défaut Catégorie d'objet par défaut 1.2.840.
prioritéParDéfaut Priorité par défaut 1.2.840.
descripteurDeSécuritéParDéfaut Descripteur de sécurité par défaut 1.2.840.
listeDeRévocationDelta Liste de révocation Delta 2.5.4.53
département Département 1.2.840.
description Description 2.5.4.13
profil de bureau Profil de bureau 1.2.840.
indicateurDeDestination Indicateur de destination 2.5.4.27
classesDHCP Classes DHCP 1.2.840.
drapeauxDHCP drapeaux DHCP 1.2.840.
Identification DHCP Identification DHCP 1.2.840.
masqueDHCP masque-DHCP 1.2.840.
dhcpMaxKey dhcp-CléMax 1.2.840.
descriptionObjetDHCP Description d'objet DHCP 1.2.840.
nomObjetDHCP Nom-Objet-DHCP 1.2.840.
optionsDHCP options-dhcp 1.2.840.
propriétésDHCP Propriétés DHCP 1.2.840.
Nom d'affichage LDAP CN Attribut
plagesDHCP Plages DHCP 1.2.840.
réservations DHCP Réservations DHCP 1.2.840.
serveurs DHCP serveurs DHCP 1.2.840.
sites DHCP sites DHCP 1.2.840.
État DHCP État DHCP 1.2.840.
sous-réseaux DHCP sous-réseaux dhcp 1.2.840.
typeDHCP Type-DHCP 1.2.840.
cléUniqueDHCP clé-unique-dhcp 1.2.840.
tempsDeMiseÀJourDHCP Temps de mise à jour DHCP 1.2.840.
rapports directs Rapports 1.2.840.
nom d'affichage Nom d'affichage 1.2.840.
Nom affichable Nom d'affichage imprimable 1.2.840.
nomDistingué Nom-Dist-Obj 2.5.4.49
règles de contenu DIT Règles de contenu DIT 2.5.21.2
division Division 1.2.840.
dMDEmplacement DMD-Emplacement 1.2.840.
nomDMD Nom DMD 1.2.840.
dNReferenceUpdate Mise à jour de la référence DN 1.2.840.
dnsAutoriserDynamique Dns-Autoriser-Dynamique 1.2.840.
dnsAutoriserXFR Dns-Autoriser-XFR 1.2.840.
dNSHostName Nom d'hôte DNS 1.2.840.
dnsNotifySecondaires Dns-Notifier-Secondaires 1.2.840.
dNSProperty Propriété DNS 1.2.840.
Enregistrement DNS Enregistrement DNS 1.2.840.
dnsRoot Dns-Racine 1.2.840.
dnsSecondairesSécurisés Secondaires-Sécurisés-DNS 1.2.840.
dNSTombstoned DNS-Tombstoné 1.2.840.
domainCAs Autorités de certification de domaine 1.2.840.
crossRefDeDomaine Référence-Croisée de Domaine 1.2.840.
identifiantDeDomaine Identifiant de domaine 1.2.840.
identifiantDeDomaine Identifiant de domaine 1.2.840.
objetPolitiqueDomaine Objet-Politique-Domaine 1.2.840.
référence de la politique de domaine Référence de politique de domaine 1.2.840.
réplica de domaine Réplique de domaine 1.2.840.
Nom d'affichage LDAP CN Attribut
politiqueÀDomaineÉlargi Politique à l'échelle du domaine 1.2.840
nomDuConducteur Nom du conducteur 1.2.840.
version du pilote Version du pilote 1.2.840.
dSASignature Signature DSA 1.2.840.
dSCorePropagationData DS-Core-Propagation-Données 1.2.840.
dSHeuristiques DS-Heuristiques 1.2.840.
dSUIAdminMaximum DS-UI-Admin-Maximum 1.2.840.
dSUIAdminNotification DS-UI-Admin-Notification 1.2.840.
dSUIShellMaximum DS-UI-Shell-Maximum 1.2.840.
serveurLDAPdynamique Serveur-LDAP-Dynamique 1.2.840.
eFSPolicy PolitiqueEFS 1.2.840.
ID employé ID d'employé 1.2.840.
numéroEmployé Numéro d'employé 1.2.840.
type d'employé Type d'employé 1.2.840.
Activé Activé 1.2.840.
connexion activée Connexion activée 1.2.840.
fournisseurs d'inscription Inscription - Fournisseurs 1.2.840.
Informations sur les attributs étendus
informations sur les attributs étendus 1.2.840.
caractères étendus autorisés Caractères étendus autorisés 1.2.840.
informationsClasséesÉtendues Informations sur la classe étendue 1.2.840.
nomDeL'extension Nom de l'extension 1.2.840.
numéro de téléphone de télécopie Numéro de téléphone de fax 2.5.4.23
prioritéExtFichier Priorité des extensions de fichier 1.2.840.
drapeaux Drapeaux 1.2.840.
nom de l'appartement Nom de l'appartement 1.2.840.
déconnexionForcée Déconnexion forcée 1.2.840.
identifiantÉtranger Identifiant étranger 1.2.840.
noms amicaux Noms Amicaux 1.2.840.
de l'entrée De l'entrée 1.2.840.
duServeur Depuis le serveur 1.2.840.
référenceOrdinateurFrs Référence-Ordinateur-Frs 1.2.840.
frsRéférenceOrdinateurBL Frs-Ordinateur-Édition-BL 1.2.840.
Création de données de contrôle fRS Création de données de contrôle FRS 1.2.840
marche la chaîne de
ascendance dans tous les objets
le chemin vers la racine
jusqu'à ce qu'il trouve une correspondance.
Nous pouvons clarifier les OIDs ci-dessus avec quelques exemples. Prenons la requête LDAP suivante:
(&(objectCategory=person)(objectClass=user))
(userAccountControl:1.2.840.113556.1.4.803:=2))
Cette requête renverra tous les comptes d'utilisateur désactivés administrativement, ou(2).
Nous pouvons combiner cette requête en tant que filtre de recherche LDAP avec leObtenir-ADUtilisateur
" cmdlet contre
notre domaine cible. La requête LDAP peut être abrégée comme suit :
PSC:\htb>Get-ADUser-FiltreLDAP
(userAccountControl:1.2.840.113556.1.4.803:=2)|sélectionner_nom
nom
----
Invité
CompteParDéfaut
krbtgt
CompteApplication Exchange Online
SystemMailbox{1f05a927-35b9-4cc9-bbe1-11e28cddb180}
SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}
Migration.8f3e7716-2011-43e4-96b1-aba62d229136
CourrierÉlectroniqueFédéré.4c1f4d8b-8179-4148-93bf-00a95fa1e042
SystemMailbox{D0E409A0-AF9B-4720-92FE-AAC869B0D201}
SystemMailbox{2CE34405-31BE-455D-89D7-A7C7DA7A0DAA}
BoîteAuxLettresSystème{8cc370d3-822a-4ab8-a926-bb94bd0641a9}
PSC:\htb>Get-ADGroup-LDAPFilter
(membre:1.2.840.113556.1.4.1941:=CN=Harry Jones,OU=Réseau
Ops,OU=IT,OU=Employees,DC=INLANEFREIGHT,DC=LOCAL)'|selectNom
Nom
----
Administrateurs
Opérateurs de sauvegarde
Administrateurs de domaine
Administrateurs LAPS
Opérations de sécurité
Service d'assistance
Équipe Réseau
Signification de l'opérateur
= Égal à
~= Environ égal à
>= Supérieur ou égal à
<= Moins que ou égal à
Enfin, les caractères suivants doivent être échappés s'ils sont utilisés dans un filtre LDAP :
* a
( 28
) 29
\ \5c
NUL
Nous pouvons utiliser le filtre (&(objectCategory=user)(description=*)) pour trouver tous les utilisateurs
des comptes qui n'ont pas de blancdescription champ. C'est une recherche utile qui devrait être
réalisé sur chaque évaluation de réseau interne car il n'est pas rare de trouver des mots de passe pour
utilisateurs stockés dans l'attribut de description de l'utilisateur dans AD (qui peut être lu par tous les utilisateurs d'AD).
cmdlet, nous pouvons rechercher tous les utilisateurs de domaine qui font
Combiner cela avec le " Obtenir-ADUtilisateur
n'avoir pas de champ de description vide et, dans ce cas, trouver un mot de passe de compte de service !
PSC:\htb>Obtenir-ADUtilisateur-Propriétés* -FiltreLDAP'(&(catégorieObjet=utilisateur)
(description=*))'|selectsamaccountname,description
PSC:\htb>Get-ADUser-Properties* -FiltreLDAP
(userAccountControl:1.2.840.113556.1.4.803:=524288)|sélectionner
Nom
Nom sqldev
membre de CN=Protégé
Utilisateurs,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL
{MSSQL_svc_dev/inlanefreight.local:1443}
Vérifié pour délégation : Vrai
PSC:\htb>Obtenir-ADOrdinateur-Propriétés* -FiltreLDAP
(userAccountControl:1.2.840.113556.1.4.803:=524288)'|sélectionner
NomDistingué
CN=DC01,OU=Domaine
Contrôleurs,DC=INLANEFREIGHT,DC=LOCAL
{exchangeAB/DC01,
exchangeAB/DC01.INLANEFREIGHT.LOCAL, TERMSRV/DC01,
TERMSRV/DC01.INLANEFREIGHT.LOCAL...
VérifiéPourDélégation : Vrai
CN=SQL01,OU=SQL
Serveurs,OU=Serveurs,DC=INLANEFREIGHT,DC=LOCAL
MSSQLsvc/SQL01.INLANEFREIGHT.LOCAL:1433
TERMSRV/SQL01, TERMSRV/SQL01.INLANEFREIGHT.LOCAL
HôteKrbRestreint/SQL01...}
TrustedForDelegation : True
Enfin, recherchons tous les utilisateurs avec lecompteAdministrateur
" attribut défini sur 1 à qui
contrôle de compte l'attribut est réglé avec le drapeau
d'utilisateur , ce qui signifie que le
PASSPHRASE_NON_REQUISE
un compte peut avoir un mot de passe vide. Pour ce faire, nous devons combiner deux recherches LDAP.
(&(objectCategory=person)(objectClass=user))
(userAccountControl:1.2.840.113556.1.4.803:=32))(adminCount=1)
PSC:\htb>Obtenir-AdUtilisateur-LDAPFiltre '(&(objectCategory=person)
(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=32))
(adminCount=1)'-Propriétés*| sélectionner nom, membre de |fl
Bien que cela soit peu courant, nous trouvons de temps à autre des comptes sans mot de passe défini, il est donc toujours important de...
gagne-temps) ou accidentellement si un utilisateur avec ce drapeau activé change son mot de passe via commande
ligne et appuie accidentellement sur entrer avant de taper un mot de passe. Toutes les organisations devraient
effectuer des audits de compte périodiques et retirer ce signalement de tous les comptes qui n'ont aucune validité
raison commerciale de l'avoir défini.
Essayez de créer vos propres filtres. Ce guideActive Directory : Filtres de syntaxe LDAPest
un excellent point de départ.
Correspondance récursive
Nous pouvons utiliser le " paramètre de la même manière que nous utilisons la correspondance
CorrespondanceRecursive
règle OID "1.2.840.113556.1.4.1941 . Un bon exemple de cela est de trouver tous les groupes
qu'un utilisateur AD fait partie, à la fois directement et indirectement. Cela est également connu sous le nom de "groupe imbriqué"
Nous pouvons énumérer cela avec PowerShell de plusieurs manières, l'une d'elles étant le " Obtenir
cmdlet.
Membre de groupe AD
PSC:\htb>Obtenir-ADUtilisateur-Identité harry.jones-Propriétés*|sélectionner
membre de |ft-Envelopper
membre de
--------
{CN=Équipe Réseau,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL, CN=Aide
Bureau, OU=Sécurité de Microsoft Exchange
Groupes,DC=INLANEFREIGHT,DC=LOCAL, CN=Sécurité
Opérations,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL, CN=LAPS
Admins,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL...
Nous pouvons trouver l'appartenance à un groupe imbriqué avec la règle de correspondance OID et le CorrespondanceRécursive
paramètre, comme le montrent les exemples suivants. Le premier exemple montre un filtre AD et le
interroger de manière récursive tous les groupes auxquels l'utilisateur
CorrespondanceRécursive appartient
harry.jones est un membre
de.
nom
----
Administrateurs
Opérateurs de sauvegarde
Administrateurs de domaine
Opérations de sécurité
Service d'assistance
Équipe Réseau
PSC:\htb>Obtenir-GroupeAD-FiltreLDAP
(membre:1.2.840.113556.1.4.1941:=CN=Harry Jones,OU=Réseau
Ops,OU=IT,OU=Employees,DC=INLANEFREIGHT,DC=LOCAL)'|selectNom
Nom
----
Administrateurs
Opérateurs de sauvegarde
Administrateurs de domaine
Opérations de sécurité
Service d'assistance
Équipe Réseau
Comme le montrent les exemples ci-dessus, la recherche récursive dans l'AD peut nous aider à énumérer
des informations que les requêtes de recherche standard ne montrent pas. Énumérer les groupes imbriqués
L'adhésion est très importante. Nous pouvons découvrir de graves erreurs de configuration au sein de la cible.
un environnement AD qui passerait autrement inaperçu, en particulier dans les grandes organisations avec
des milliers d'objets dans AD. Nous verrons d'autres façons d'énumérer ces informations et même
façons de le présenter sous un format graphique, mais est une recherche puissante
CorrespondanceRécursive
paramètre à ne pas négliger.
Paramètres de SearchBase
Même de petits environnements Active Directory peuvent contenir des centaines, voire des milliers d'objets.
Active Directory peut se développer très rapidement à mesure que des utilisateurs, des groupes, des ordinateurs, des UOs, etc. sont ajoutés.
et les ACL sont mises en place, ce qui crée un réseau de relations de plus en plus complexe. Nous pouvons
nous nous trouvons également dans un vaste environnement, âgé de 10 à 20 ans, avec des dizaines de milliers d'objets.
Énumérer ces environnements peut devenir une tâche ingérable, nous devons donc affiner notre
recherches.
Nous pouvons améliorer les performances de nos commandes et scripts d'énumération et réduire
volume d'objets retournés en limitant nos recherches avec le " BaseDeRecherche
paramètre.
Ce paramètre spécifie un chemin Active Directory sous lequel rechercher et nous permet de commencer
recherche d'un compte utilisateur dans une OU spécifique.BaseDeRecherche
Le Le paramètre accepte un
Le nom distinctif (DN) de votre OU tel que OU=Employés,DC=INLANEFREIGHT,DC=LOCAL .
permet de définir jusqu'à quelle profondeur dans la hiérarchie des OU nous souhaitons effectuer la recherche.
" Champ de recherche
Ce paramètre a trois niveaux :
Lors de la requête AD en utilisant " nous pouvons spécifier le nom ou le numéro (c'est-à-dire,
Champ de recherche
est interprété de la même manière que
Champ de recherche Unilevel Portée ".)
de recherche 1
Dans l'exemple ci-dessus, avec la SearchBase définie sur
OU=Employés,DC=INLANEFREIGHT,DC=LOCAL, a Portée de recherche réglé surBase serait
tentative d'interroger l'objet OU ( Employés ) lui-même. A
Portée définir UnNiveau
de recherche sur serait
chercher dans le Employés OU seulement. Enfin, unChamp de découvrir
recherche serait interroger
Sous-arbre
PSC:\htb> (Obtenir-ADUser-BaseDeRecherche
"OU=Employés,DC=INLANEFREIGHT,DC=LOCAL"-Filtre*).compte
970
PSC:\htb>Get-ADUser-SearchBase "OU=Employés,DC=INLANEFREIGHT,DC=LOCAL"
-PortéeDeRecherche Base-Filtre*
PSC:\htb>
PSC:\htb>Get-ADObject-SearchBase
"OU=Employees,DC=INLANEFREIGHT,DC=LOCAL"-PortéeDeRecherche Base-Filtre*
UnNiveau En tant que SearchScope, nous obtenons un utilisateur qui nous est retourné, comme prévu.
Si nous spécifions
selon l'image ci-dessus.
PSC:\htb>Get-ADUser-SearchBase"OU=Employés,DC=INLANEFREIGHT,DC=LOCAL"
-RecherchePortée UnNiveau-Filtre*
CN=Amelia
Matthews,OU=Employés,DC=INLANEFREIGHT,DC=LOCAL
Activé Vrai
Prénom Amélia
Nom Amelia Matthews
ClasseObjet utilisateur
ObjectGUID 3f04328f-eb2e-487c-85fe-58dd598159c0
amelia.matthews
SID S-1-5-21-2974783224-3764228556-2640795941-1412
Nom de famille Matthews
amelia.matthews@inlanefreight
PSC:\htb>Get-ADUser-SearchBase"OU=Employés,DC=INLANEFREIGHT,DC=LOCAL"
-PortéeDeRecherche 1-Filtre*
CN=Amelia
Matthews,OU=Employés,DC=INLANEFREIGHT,DC=LOCAL
Activé Vrai
Prénom amélia
Nom Amelia Matthews
ClasseObjet utilisateur
ObjectGUID : 3f04328f-eb2e-487c-85fe-58dd598159c0
amelia.matthews
SID S-1-5-21-2974783224-3764228556-2640795941-1412
Nom de famille Matthews
amelia.matthews@inlanefreight
Enfin, si nous spécifions en tant que SearchBase, nous allons obtenir tous les objets dans tous les enfants
Sous-arbre
conteneurs, ce qui correspond au nombre d'utilisateurs que nous avons établi ci-dessus.
PSC:\htb> (Obtenir-ADUser-BaseDeRecherche
"OU=Employees,DC=INLANEFREIGHT,DC=LOCAL"-PortéeDeRecherche Sous-arbre-Filtre
*.compte
970
Conclusion
Cette section, ainsi que la section sur les filtres PowerShell, couvre les nombreuses façons dont nous pouvons utiliser
filtres de recherche combinés avec les cmdlets AD intégrés pour améliorer notre énumération en "vivant de"
terre." Dans les sections suivantes, nous aborderons des outils qui rendent l'énumération beaucoup plus rapide et facile.
et être combiné avec des filtres pour être encore plus puissant. Peu importe si nous utilisons des outils intégrés
outils, scripts personnalisés ou outils tiers, il est important de comprendre ce qu'ils font
et pour pouvoir comprendre et utiliser le résultat de notre énumération pour nous aider à atteindre notre
objectif.
Remarque : Lorsque vous générez votre cible, nous vous demandons d'attendre 3 minutes jusqu'à ce que tout le laboratoire avec
toutes les configurations sont mises en place afin que la connexion à votre cible fonctionne parfaitement.
Une énumération adéquate est essentielle pour tous les tests de pénétration et les évaluations de red teaming.
Énumérer AD, en particulier dans les grands environnements d'entreprise avec de nombreux hôtes, utilisateurs, et
les services peuvent être une tâche assez décourageante et fournir une quantité écrasante de données. Plusieurs
Les outils intégrés de Windows peuvent être utilisés par les administrateurs système et les testeurs de pénétration pour énumérer AD. Ouvrir
Des outils source ont été créés sur la base des mêmes techniques d'énumération. Beaucoup de ceux-ci
des outils (tels que SharpView, BloodHound et PingCastle) peuvent être utilisés pour accélérer le
processus d'énumération et présentation précise des données de manière consommable et actionable
Format. La connaissance de plusieurs outils et "offense en profondeur" est importante si vous devez vivre de
Des évaluations ou détections sont en place pour certains outils.
PSC:\htb>Get-ADUser-Filtrer{adminCount-gt0}-Propriétés
compte admin
PSC:\htb> .\Convert-UserAccountControlValues.ps1
Nom Valeur
---- -----
PASSED_NONEXIGÉ 32
COMPTE_NORMAL 512
NE PAS EXPIRER LE MOT DE PASSE 65536
NE_REQ_PREAUT 4194304
Nous pouvons également utiliserPowerView(qui sera traité en profondeur dans les modules suivants) à
énumérez ces valeurs. Nous pouvons voir que certains des utilisateurs correspondent à la valeur par défaut de 512
ou Compte_Normal tandis que d'autres devraient être convertis. La valeur pour jenna.smith
correspond à ce que notre script de conversion a fourni.
nomd'utilisateur
nomdutilisateursam
contrôle du compte utilisateur
-------------- -------
-----------
Administrateur COMPTE_NORMAL
NE PAS EXPIRER LE MOT DE PASSE
krbtgt COMPTE_DÉSActivé
NE_EXPIRE_PAS_LE_MOT_DE_PASSE
daniel.carter
COMPTE_NORMAL
sqlqa
COMPTE_NORMAL
svc-sauvegarde COMPTE_NORMAL
NEPAS_EXPIRER_MOT_DE_PASSE
svc-secops COMPTE_NORMAL
NE_CHANGER_PAS_MOT_DE_PASSE
cliff.moore COMPTE_NORMAL
NEPASEXPIRERLEMDP
svc-ata
COMPTE_NORMAL
svc-sccm
COMPTE_NORMAL
mrb3n
COMPTE_NORMAL
sarah.lafferty
COMPTE_NORMAL
jenna.smith MOT_DE_PASSE_NON_REQUIS, COMPTE_NORMAL, NE_PAS_EXPIRER_MOT_DE_PASSE
NE_REQUIERT_PAS_PREAUTORISATION
harry.jones PAS_DE_MDP_REQUIS
NE_JAMAIS_EXPIRER_MOT_DE_PASSE
pixis
COMPTE_NORMAL
Cry0l1t3
COMPTE_NORMAL
cauchemar de chevalier
COMPTE_NORMAL
Des outils que les administrateurs système sont eux-mêmes susceptibles d'utiliser, comme le moduleAD PowerShell, le
La suite Sysinternals et les outils DSTools d'AD seront probablement surliste blanc et passeront inaperçus.
en particulier dans des environnements plus matures. Plusieurs outils intégrés peuvent être utilisés pour AD
énumération, y compris :
Outils DSest disponible par défaut sur tous les systèmes d'exploitation Windows modernes mais requis
connectivité de domaine pour effectuer des activités d'énumération.
Outils DS
samid motdepassejamaisexpiré
svc-sauvegarde oui
analyse svc oui
svc-secops oui
test-sql oui
cliff.moore oui
margaret.harris oui
<SNIP>
dsget réussi
Le Module Active Directory PowerShell est un groupe de cmdlets utilisées pour gérer Active
Répertoire. L'installation du module AD PowerShell nécessite un accès administratif.
Module AD PowerShell
PSC:\htb>Obtenir-ADUtilisateur-Filtrer* -BaseDeRecherche
'OU=Admin,DC=inlanefreight,dc=local'
CN=wilford.stewart,OU=Admin,DC=INLANEFREIGHT,DC=LOCAL
Activé Vrai
Prénom :
Nom wilford.stewart
ClasseObjet : utilisateur
ObjectGUID 1f54c02c-2fb4-48b6-a89c-38b6b0c54147
wilford.stewart
SID S-1-5-21-2974783224-3764228556-2640795941-2121
Nom de famille :
UserPrincipalName
CN=trisha.duran,OU=Admin,DC=INLANEFREIGHT,DC=LOCAL
Activé Vrai
Prénom :
Nom trisha.duran
ClasseObjet utilisateur
ObjectGUID 7a8db2bb-7b24-4f79-a3fe-7b49408bc7bf
trisha.duran
SID S-1-5-21-2974783224-3764228556-2640795941-2122
Nom de famille :
UserPrincipalName
<SNIP>
Instrumentation de gestion Windows (WMI) peut également être utilisé pour accéder et interroger
objets dans Active Directory. De nombreux langages de script peuvent interagir avec le fournisseur WMI AD,
mais PowerShell rend cela très facile.
Légende Nom
------- ----
INLANEFREIGHT\Éditeurs Cert Éditeurs Cert
SERVEURS INLANEFREIGHT\RAS et IAS Serveurs RAS et IAS
GROUPE DE RÉPLICATION DE MOT DE PASSE RODC AUTORISÉ INLANEFREIGHT\
Groupe de réplication de mot de passe
INLANEFREIGHT\Mot de passe RODC refusé Groupe de réplication Mot de passe RODC refusé
GroupeDeRéplication
INLANEFREIGHT\DnsAdmins DnsAdmins
INLANEFREIGHT\$6I2000-MBUUOKUK1E1O $6I2000-MBUUOKUK1E1O
INLANEFREIGHT\Contrôleurs de domaine clonables Domaine clonable
Contrôleurs
INLANEFREIGHT\Gestion de la Conformité Conformité
Gestion
INLANEFREIGHT"Configuration déléguée" Configuration déléguée
Contrôleurs de domaine
SERVEURS D'ÉCHANGE INLANEFREIGHT Serveurs Exchange
INLANEFREIGHT\Sous-système de confiance Exchange Échange de confiance
Sous-système
INLANEFREIGHT\Échanger les autorisations Windows Échange Windows
Autorisations
INLANEFREIGHT\ÉchangeInteropHéritage
InteropérabilitéLegacyExchange
Créateur
INLANEFREIGHT\Créateur de Politique de Groupe Propriétaires de stratégie de groupe
Propriétaires
INLANEFREIGHT\Service d'assistance Service d'assistance
Chemin
----
LDAP://CN=DC01,OU=Contrôleurs de Domaine,DC=INLANEFREIGHT,DC=LOCAL
LDAP://CN=EXCHG01,OU=Serveurs de messagerie,OU=Serveurs,DC=INLANEFREIGHT,DC=LOCAL
LDAP://CN=SQL01,OU=Serveurs SQL,OU=Serveurs,DC=INLANEFREIGHT,DC=LOCAL
LDAP://CN=WS01,OU=Personnel
Stations de travail, OU=Stations de travail, DC=INLANEFREIGHT, DC=LOCAL
LDAP://CN=DC02,OU=Serveurs,DC=INLANEFREIGHT,DC=LOCAL
Remarque : Lorsque vous générez votre cible, nous vous demandons d'attendre 3 minutes jusqu'à ce que tout le laboratoire soit
toutes les configurations sont mises en place afin que la connexion à votre cible fonctionne parfaitement.
politique de mot de passe de domaine. Hôtes Linux exécutant des versions open-source de LDAP et Linux
Les appareils vCenter sont souvent configurés pour permettre des liaisons anonymes.
Lorsqu'un serveur LDAP permet des liaisons anonymes à la base, un attaquant n'a pas besoin de connaître un
objet de base pour interroger une quantité considérable d'informations dans le domaine. Cela peut également être
exploité pour mener une attaque par pulvérisation de mots de passe ou lire des informations telles que des mots de passe
stocké dans les champs de description de compte. Outils tels querecherche windapetldapsearchpeut être
utilisé pour énumérer les informations de domaine via un bind LDAP anonyme. Informations que nous
obtenu d'un bind LDAP anonyme peut être utilisé pour mener une attaque par pulvérisation de mots de passe ou
Attaque AS-REPRoasting, lire des informations telles que les mots de passe stockés dans la description du compte
champs.
Nous pouvons utiliser
Python pour vérifier rapidement si nous pouvons interagir avec LDAP sans identifiants.
>>>fromldap3import*
>>>s=Serveur('10.129.1.207', obtenir_info=TOUT)
>>>c=Connexion(s,'','')
>>>c.lier()
Vrai
>>>s.info
info DSA (de DSE)
Versions LDAP prises en charge : 3, 2
Contexte de nomination :
DC=INLANEFREIGHT,DC=LOCAL
CN=Configuration,DC=INLANEFREIGHT,DC=LOCAL
CN=Schéma,CN=Configuration,DC=INLANEFREIGHT,DC=LOCAL
DC=DomainDnsZones,DC=INLANEFREIGHT,DC=LOCAL
DC=ForestDnsZones,DC=INLANEFREIGHT,DC=LOCAL
Contrôles pris en charge :
<SNIP>
dnsHostName
DC01.INLANEFREIGHT.LOCAL
ldapServiceName
INLANEFREIGHT.LOCAL:[email protected]
serverName
CN=DC01,CN=Serveurs,CN=Site-Par-Défaut-Initial
Nom,CN=Sites,CN=Configuration,DC=INLANEFREIGHT,DC=LOCAL
estSynchronisé
VRAI
isGlobalCatalogReady
VRAI
fonctionnalitéDuDomaine
7
fonctionnalitéForestière
7
fonctionnalitéDuContrôleurDeDomaine
7
Utiliser Ldapsearch
Nous pouvons confirmer une liaison LDAP anonyme avecldapsearch et récupérer tous les objets AD de
LDAP.
ldapsearch -H ldap://10.129.1.207 -x -b"dc=inlanefreight,dc=local"
# LDIF étendu
#
LDAPv3
# base <dc=inlanefreight,dc=local> avec portée sous-arbre
# filtre : (objectclass=*)
tous
#
# INLANEFREIGHT.LOCAL
dn:DC=INLANEFREIGHT,DC=LOCAL
classeObjet:top
classeObjet: domaine
objectClass: domainDNS
DC=INLANEFREIGHT,DC=LOCAL
5
2020-07-26T20:13:43.0Z
2020-08-27T02:53:41.0Z
DC=LOGISTIQUE,DC=FRETTERRE,DC=LOCAL
DC=ForestDnsZones,DC=INLANEFREIGHT,DC=LOCAL
DC=DomainDnsZones,DC=INLANEFREIGHT,DC=LOCAL
CN=Configuration,DC=INLANEFREIGHT,DC=LOCAL
Utiliser Windapsearch
Windapsearch est un script Python utilisé pour effectuer des opérations LDAP anonymes et authentifiées
énumération des utilisateurs, groupes et ordinateurs AD à l'aide de requêtes LDAP. C'est une alternative à
des outils tels queldapsearch , ce qui vous oblige à élaborer des requêtes LDAP personnalisées. Nous pouvons l'utiliser.
pour confirmer l'authentification de session NULL LDAP en fournissant un nom d'utilisateur vide avec -u ""
et ajouter --fonctionnalitépour confirmer le niveau fonctionnel du domaine.
[+] fonctionnalitéForestière
[+] 2016
[+] Tentative de liaison
[+] ...succès! Lié comme :
[+] Aucun
Au revoir !
Nous pouvons extraire une liste de tous les utilisateurs de domaine à utiliser dans une attaque par pulvérisation de mots de passe.
Invité
Compte par défaut
LOGISTIQUE$
développeur SQL
sqlprod
cn: svc-scan
<SNIP>
Nous pouvons obtenir des informations sur tous les ordinateurs du domaine.
DC01
Windows Server 2016 Standard
10.0(14393)
DC01.INLANEFREIGHT.LOCAL
cn: EXCHG01
Windows Server 2016 Standard
10.0(14393)
EXCHG01.INLANEFREIGHT.LOCAL
cn: SQL01
Windows Server 2016 Standard
10.0(14393)
SQL01.INLANEFREIGHT.LOCAL
WS01
Windows Server 2016 Standard
10.0(14393)
WS01.INLANEFREIGHT.LOCAL
cn : DC02
DC02.INLANEFREIGHT.LOCAL
Au revoir!
Ce processus peut être répété pour obtenir des informations sur le groupe et des informations plus détaillées telles que
en tant qu'utilisateurs et ordinateurs sans contrainte, informations GPO, attributs des utilisateurs et des ordinateurs, et
plus.
Autres outils
Il existe de nombreux autres outils et scripts d'aide pour récupérer des informations à partir de LDAP.
scriptldapsearch-ad.pyest similaire àrecherche windap
.
python3 ldapsearch-ad.py -h
usage: ldapsearch-ad.py [-h] -l SERVEUR_LDAP [-ssl] -t TYPE_DE_DEMANDE [-d
[DOMAINE] [-u NOM_UTILISATEUR] [-p MOT_DE_PASSE]
[-s FILTRE_DE_RECHERCHE] [-z LIMITE_DE_TAILLE] [-o
[FICHIER_DE_SORTIE] [-v]
arguments positionnels :
rechercher_attributs Attributs LDAP à rechercher (par défaut, tous).
arguments optionnels :
-h, --aide afficher ce message d'aide et quitter
contoso.local
-u NOM_UTILISATEUR, --nom_utilisateur NOM_UTILISATEUR
Nous pouvons l'utiliser pour extraire des informations de domaine et confirmer un liaison NULL. Cet outil particulier
nécessite des identifiants de l'utilisateur de domaine valides pour effectuer une énumération supplémentaire.
Remarque : Les outils nécessaires pour compléter cette section peuvent être trouvés dans le répertoire `/opt`.
Pwnbox.
Remarque : Lorsque vous générez votre cible, nous vous demandons d'attendre 3 minutes jusqu'à ce que tout le laboratoire avec
toutes les configurations sont mises en place afin que la connexion à votre cible fonctionne à merveille.
depuis LDAP, y compris les informations sur les utilisateurs, les groupes, les ordinateurs, la confiance, les GPO, la politique de mot de passe du domaine,
Motdepassepourletransportterrestre\james.cross :
Admins,CN=Users,DC=INLANEFREIGHT,DC=LOCAL
[+] Adminstateurs de domaine trouvés :
administrateur
[email protected]
daniel.carter
sqlqa
svc-sauvegarde
cn : svc-secops
cliff.moore
cn : svc-ata
cn: svc-sccm
mrb3n
sarah.lafferty
Harry Jones
harry.jones@inlanefreight
pixis
Cry0l1t3
cauchemar
Admins,CN=Utilisateurs,DC=INLANEFREIGHT,DC=LOCAL
[+] Trouvé 14 Administrateurs de Domaine :
Administrateur
[email protected]
daniel.carter
sqlqa
cn: svc-backup
cn : svc-secops
<SNIP>
Quelques options supplémentaires utiles, y compris le tirage au sort des utilisateurs et des ordinateurs sans contrainte
délégation.
Motdepassepourletransportterrestre\james.cross:
CN=sqldev,OU=Comptes de service,OU=IT,OU=Employés,DC=INLANEFREIGHT,DC=LOCAL
Au revoir !
Ldapsearch-ad
Cet outil peut effectuer toutes les énumérations standard et quelques recherches intégrées pour simplifier
les choses. Nous pouvons rapidement obtenir la politique de mot de passe.
+
[*]|___Seuil de verrouillage=Désactivé
[+] Aucun règlement de mot de passe détaillé trouvé (des privilèges élevés sont requis).
Nous pouvons rechercher des utilisateurs qui pourraient être soumis à une attaque de Kerberoasting.
python3 ldapsearch-ad.py -l10.129.1.207 -d inlanefreight -u james.cross -
p Été2020 -t kerberoast|grepservicePrincipalName:
CIFS/roguecomputer.inlanefreight.local
MSSQLSvc/sql01:1433
MSSQL_svc_qa/inlanefreight.local:1443
MSSQL_svc_test/inlanefreight.local:1443
IIS_dev/inlanefreight.local:80
Résumé LDAP
Nous pouvons utiliser des outils tels que les deux montrés dans cette section pour effectuer une quantité considérable de
Énumération AD à l'aide de LDAP. Les outils disposent de nombreuses requêtes intégrées pour simplifier la recherche et
fournissez-nous les données les plus utiles et actionnables. Nous pouvons également combiner ces outils avec
les filtres de recherche LDAP personnalisés que nous avons appris plus tôt dans le module. Ils sont formidables
outils à garder dans notre arsenal, surtout lorsque nous sommes dans une position où la plupart d'un AD
l'évaluation doit être effectuée depuis une boîte d'attaque Linux.
Remarque : Lorsque vous créez votre cible, nous vous demandons d'attendre 3 minutes jusqu'à ce que tout le laboratoire avec
toutes les configurations sont mises en place afin que la connexion à votre cible fonctionne parfaitement.
par un attaquant qui obtient un accès au réseau interne avec un compte d'utilisateur de domaine standard.
Connectez-vous à l'hôte cible et effectuez les tâches d'énumération répertoriées ci-dessous pour compléter cela.
module.
Remarque : Lorsque vous générez votre cible, nous vous demandons d'attendre 3 minutes jusqu'à ce que tout le laboratoire avec
toutes les configurations sont mises en place afin que la connexion à votre cible fonctionne parfaitement.