From Zero to Hero: A Active Directory adventure, part 1
C’est quoi Active Directory ?
Active Directory (AD) est un service d’annuaire développé par Microsoft utilisé pour gérer les environnements Windows. Il permet une gestion centralisée des ressources d’une organisation, comme les utilisateurs, les ordinateurs, les groupes, les partages de fichiers, etc.
AD est un composant essentiel pour la gestion des identités et des accès au sein d’une entreprise. Il permet de gérer les comptes utilisateurs, les mots de passe, les droits d’accès et de contrôler comment les utilisateurs et les ordinateurs accèdent aux ressources présentes dans l’environnement.
Pour fonctionner un AD a besoin de plusieurs composants essentiels :
- Un système d’annuaire de ressources : AD utilise un annuaire LDAP (Lightweight Directory Access Protocol)
- Un système d’authentification : Au sein d’environnement AD on retrouve deux protocoles, Kerberos et NTLM
- Un système de résolution de noms : Le système de résolution qu’AD utilise est DNS (Domain Name System)
Un AD est représenté sous forme d’une arborescence. Au sommet de cet arborescence se trouve une fôret qui peut contenir un ou plusieurs domaines qui peuvent eux mêmes avoir leurs sous-domaines. Chaque domaine contient ce qu’on appelle des objets, il existe plusieurs types d’objets, tels que les :
- Utilisateurs / Users
- Ordinateurs / Computers
- Groupes / Groups
- Unités d’organisation / Organization Units
- Relations de confiance / Trusts
Si on devait schématiser un AD de manière très simplifié, on obtiendrait la chose suivante :
AD s’occupe aussi la gestion des accès au sein du domaine, par exemple si je veux donner des droits à un utilisateur sur un groupe c’est Active Directory qui s’en occupera. Pour faire ça on utilise des Access Control Entries (ACE). Les ACE définissent quel objet est autorisé ou non à faire une certaine action sur un autre objet.
Pourquoi cette suite d’article ?
Active Directory est une technologie utilisée par une majorité des entreprises pour pouvoir gérer leur Système d’information (SI), de plus c’est un vecteur de compromission qui est souvent utilisé par des attaquants sur les environnements qu’ils ciblent. Il est donc important pour n’importe quel pentester d’avoir des connaissances de base sur cette technologie et d’être capable d’auditer sa sécurité.
En sachant ça j’ai décidé de commencer à m’intéresser à la sécurité Active Directory. Au début noyé sous le flot d’informations et de choses à apprendre j’étais un peu perdu. Je n’ai pas réussi à trouver de ressources (gratuites) pour m’aider et m’accompagner dans mon apprentissage. La plupart des ressources disponibles sont un peu éparpillées et nécessitent d’avoir déjà une certaine compréhension du sujet pour être utilisées. De plus les documentations et ressources existantes n’étaient pas assez détaillées ou exhaustives.
L’objectif de cette suite d’articles est donc de proposer des ressources et des explications exhaustives sur l’ensemble des sujets liés à la sécurité Active Directory de manière centralisée. Dans les prochains articles vous trouverez des explications théoriques détaillées mais aussi des exemples pratiques pour que vous puissiez appliquer ce que vous venez d’apprendre !
Le programme des prochains articles
L’objectif de cette suite d’articles est de vous apprendre toutes les bases nécessaires pour faire du pentest Active Directory, pour ça au programme nous verrons comment :
- Monter son propre environnement Active Directory vulnérable
- Comprendre les différents mécanismes d’authentification dans Active Directory
- Abuser du protocole NTLM
- Abuser du protocole Kerberos
- Abuser de mauvaises configurations au niveau des Active Directory Discretionary Access Control Lists (DACL)
- Obtenir illégitimement des informations d’identifications (LSASS, DPAPI, GMSA, LAPS, etc.)
- Abuser de Active Directory Certificate Services (ADCS)
- Abuser de Microsoft SQL Server (MSSQL)
- Abuser de Exchange
- Abuser de System Center Configuration Manager (SCCM)
- Abuser d’environnements hybrides
Vous souhaitez déjà commencer ?
Il va falloir attendre le prochain article pour la suite :) En attendant je vous propose une liste de ressources non exhaustives qui traitent des différentes thématiques que nous aborderons pour que vous puissiez commencer/continuer votre apprentissage.
Général
- https://hideandsec.sh/books/cheatsheets-82c/page/active-directory
- https://hideandsec.sh/books/cheatsheets-82c/page/active-directory-python-edition
- https://zer1t0.gitlab.io/posts/attacking_ad/
- https://swisskyrepo.github.io/InternalAllTheThings/
- https://github.com/Orange-Cyberdefense/GOAD/
Kerberos
- https://www.thehacker.recipes/a-d/movement/kerberos
- https://beta.hackndo.com/resource-based-constrained-delegation-attack/
- https://beta.hackndo.com/unconstrained-delegation-attack/
- https://beta.hackndo.com/service-principal-name-spn/
- https://beta.hackndo.com/kerberos-silver-golden-tickets/
- https://beta.hackndo.com/kerberoasting/
- https://beta.hackndo.com/kerberos-asrep-roasting/
- https://beta.hackndo.com/constrained-unconstrained-delegation/
- https://dirkjanm.io/relaying-kerberos-over-dns-with-krbrelayx-and-mitm6/
- https://trustedsec.com/blog/i-wanna-go-fast-really-fast-like-kerberos-fast
- https://www.semperis.com/blog/new-attack-paths-as-requested-sts/
NTLM
- https://www.thehacker.recipes/a-d/movement/ntlm
- https://beta.hackndo.com/pass-the-hash/
- https://beta.hackndo.com/ntlm-relay/
ADCS
- https://www.thehacker.recipes/a-d/movement/ad-cs
- https://posts.specterops.io/certificates-and-pwnage-and-patches-oh-my-8ae0f4304c1d?gi=5d84020248f9
- https://posts.specterops.io/certified-pre-owned-d95910965cd2
- https://specterops.io/wp-content/uploads/sites/3/2022/06/Certified_Pre-Owned.pdf
- https://dirkjanm.io/ntlm-relaying-to-ad-certificate-services/
- https://http418infosec.com/ad-cs-the-certified-pre-owned-attacks
- https://http418infosec.com/ad-cs-what-can-be-misconfigured
- https://hideandsec.sh/books/cheatsheets-82c/page/active-directory-certificate-services
SCCM
- https://www.thehacker.recipes/a-d/movement/sccm-mecm
- https://http418infosec.com/offensive-sccm-summary
- https://http418infosec.com/grow-your-own-sccm-lab
- https://www.youtube.com/watch?v=W9PC9erm_pI
Credentials
- https://www.thehacker.recipes/a-d/movement/credentials
- https://beta.hackndo.com/remote-lsass-dump-passwords/
- https://redteamrecipe.com/50-Methods-For-Dump-LSASS/
- https://www.synacktiv.com/en/publications/windows-secrets-extraction-a-summary
DACL
- https://www.thehacker.recipes/a-d/movement/dacl
- https://specterops.io/wp-content/uploads/sites/3/2022/06/an_ace_up_the_sleeve.pdf
Au passage si vous êtes une entreprise ayant un environnement utilisant Active Directory et que vous souhaitez mettre à l’épreuve vos actifs par du pentest voire des exercices “red team”, n’hésitez pas à nous contacter à l’adresse contact@hackcyom.com !