Partager via


Utilisation de l'outil de montage de base NTDS.DIT: DSAMAIN (fr-FR)

Cet article présente l’outil DSAMAIN et les utilisations qui peuvent en être faites.

Presentation

DSAMAIN est un outil qui permet de rendre accessible des données Active Directory d’une base NTDS.DIT au travers d’un service LDAP.
Cet outil est disponible depuis Windows Server 2008 lorsque l’on installe le rôle Active Directory Domain Services ou Active Directory Lightweight Directory Services.
La base NTDS.DIT peut provenir d’un snapshot Active Directory (effectué par ntdsutil), d’une sauvegarde Active Directory, d’une base générée pour une installation de type IFM (effectuée par ntdsutil).
La base NTDS.DIT  doit être dans un état consistant.
Les données de la base peuvent ensuite être accédées au travers des outils LDAP classiques (LDP, ADSIEDIT, consoles ADUC, Powershell avec module Active Directory ,…)

Utilisation de DSAMAIN

DSAMAIN doit être exécuté depuis une invite de commande élevée (exécutée en tant qu’administrateur).

Les paramètres suivants peuvent ou doivent être utilisés avec DSAMAIN :

 Paramètres   Statut  Description
-dbpath chemin_accès_fichier Obligatoire Le chemin d'accès doit pointer vers le fichier DIT sur le serveur local, qui peut se trouver sur un support en lecture seule (comme une capture instantanée). Le fichier DIT doit se trouver dans un état cohérent, ce qui signifie que les journaux ESE doivent être relus.
-logpath chemin_accès Facultatif Le chemin d'accès doit pointer vers un dossier accessible en écriture sur le serveur local, où les fichiers journaux ESE seront créés. Si cet argument n'est pas  spécifié, le dossier temp sera utilisé.
-adlds Facultatif Ouvre le fichier DIT AD/LDS
-ldapPort numéro Obligatoire Numéro du port LDAP
-sslPort numéro Facultatif Numéro du port SSL. Par défaut : Port LDAP+1.
-gcPort numéro Facultatif Numéro du port GC. Par défaut : Port LDAP+2.
-gcSslPort numéro
Facultatif
uméro de port GC SSL. Par défaut : Port LDAP+3.
-allowUpgrade
Facultatif
Autorise la mise à niveau du fichier DIT. Ceci est utile pour l'ouverture de fichiers DIT ou de captures instantanées de niveau inférieur. Le fichier doit se trouver sur un support accessible en écriture.
-allowNonAdminAccess
Facultatif
Autorise des utilisateurs non-administrateurs à accéder aux données de l'annuaire. Si cet argument n'est pas spécifié, seuls les administrateurs du domaine ou les administrateurs de l'entreprise du domaine cible peuvent accéder aux données.

Les numéros de port spécifiés en paramètre ne doivent pas être déjà utilisés.

Le processus d’utilisation de DSAMAIN est le suivant :

  1. Montage de la base ntds.dit
  2. Actions sur la base montée avec DSAMAIN
  3. Démontage de la base ntds.dit

Cas d’usage

DSAMAIN peut être utiliser dans les cas suivants :

  • Identifier la bonne version de sauvegarde à restaurer
  • Comparer 2 versions d’une même base
  • Restaurer des attributs
  • Faire un audit ou une analyse forensique en mode “hors-ligne”

Example

L'example suivant montre comment il est possible de monter une base ntds.dit provenant d'un contrôleur de domaine en version Windows Server 2008 R2 sur une machine 2012 R2 avec le rôle AD LDS installé mais non configuré pour bénéficier des Cmdlet de Powershell V4 lors d'un audit de type forensique.

On commence par monter notre base ntds.dit avec la commande suivante :
dsamain -dbpath "Chemin du fichier ntds.dit" -ldapport "Numéro de port" -AllowNonAdminAccess

Notre base est maintenant montée, on peut utiliser powershell avec le module Active Directory pour y accéder.
Ici j'utilise les Cmdlet de la V4 pour récupérer beaucoup plus facilement les metadata de réplication pour détecter d'éventuelles modifications sur les ACL des objets du schéma.

L'intérêt est double, je n'impacte pas ma production vu que je peux monter ma base sur une machine complètement isolée et je bénéficie des Cmdlets V4 apportés par la machine sur laquelle est montée la base.
Récupérer ces informations via du Powershell V2 ou un connecteur ADSI serait beaucoup plus difficile et demanderait beaucoup plus de code.

Une fois les informations récupérées, je démonte la base en faisant un Ctrl+C.