
Surveiller les changements dans Active Directory avec les métadonnées de réplication
(
d8888 8888888b. .d8888b. d8b 888 )
d88888 888 "Y88b d88P Y88b Y8P 888 (
d88P888 888 888 Y88b. 888 /\ .-"""-. /\
d88P 888 888 888 "Y888b. 88888b. 888 .d88888 .d88b. 888d888 //\\/ ,,, \//\\
d88P 888 888 888 "Y88b. 888 "88b 888 d88" 888 d8P Y8b 888P" |/\| ,;;;;;, |/\|
d88P 888 888 888 "888 888 888 888 888 888 88888888 888 //\\\;-"""-;///\\
d8888888888 888 .d88P Y88b d88P 888 d88P 888 Y88b 888 Y8b. 888 // \/ . \/ \\
d88P 888 8888888P" "Y8888P" 88888P" 888 "Y88888 "Y8888 888 (| ,-_| \ | / |_-, |)
888 //`__\.-.-./__`\\
888 // /.-(() ())-.\ \\
888 (\ |) "---" (| /)
` (| |) `
By DrunkF0x. \) (/
Outil pour surveiller les modifications d'Active Directory en temps réel sans récupérer tous les objets. Au lieu de cela, il utilise les métadonnées de réplication et le numéro de séquence de mise à jour (USN) pour filtrer les propriétés actuelles des objets.
Merci pour l'inspiration https://github.com/p0dalirius/LDAPmonitor
DC - FQDN du contrôleur de domaine.
Formatlist - sortie en liste au lieu d'un tableau.
ExcludelastLogonTimestamp - exclure les événements lastLogonTimestamp de la sortie
DumpAllObjects - extraire tous les objets Active Directory avant le démarrage. En cas de modifications, il vous montrera toutes les valeurs précédentes. Mais dans les grands domaines, utilisez-le à vos risques et périls (consommation de temps et de ressources).
Short - la sortie contiendra uniquement AttributeName, AttributeValue, LastOriginChangeTime et Explanation.
Output - créer un fichier XML avec toute la sortie.
ExcludeObjectGUID - exclure un objet Active Directory avec un GUID spécifique.
Sleep - intervalle de temps entre les demandes de numéro USN. Par défaut : 30 secondes.
USN - spécifier l'USN de départ.
DisplayXML - afficher le fichier XML précédemment capturé.
Module PowerShell pour Active Directory
https://learn.microsoft.com/en-us/powershell/module/activedirectory/?view=windowsserver2022-ps
Exécutez simplement le module dans une session PowerShell à partir d'un utilisateur du domaine. Pour de meilleures performances, utilisez le FQDN du contrôleur de domaine plutôt que l'adresse IP.
Import-module .\ADSpider.ps1
Invoke-ADSpider -DC DC01.domain.com
Démarrez une session PowerShell avec un utilisateur du domaine à l'aide de runas. Vérifiez que le contrôleur de domaine est accessible. Pour de meilleures performances, utilisez le FQDN du contrôleur de domaine plutôt que l'adresse IP.
## From cmd or powershell
runas /netonly /u:domain.com\MyUser powershell
## From powershell
Import-module .\ADSpider.ps1
Invoke-ADSpider -DC DC01.domain.com
https://premglitz.wordpress.com/2013/03/20/how-the-active-directory-replication-model-works/
https://learn.microsoft.com/en-us/archive/technet-wiki/51185.active-directory-replication-metadata
https://learn.microsoft.com/en-us/windows/win32/adschema/a-systemflags
https://learn.microsoft.com/en-us/windows/win32/ad/linked-attributes