Les attaques informatiques : Lutter contre les cyberpirates ou Supprimer en profondeur les virus (image: Bartek Ambrozik)

Retrouver un mot de passe Microsoft Access

Dans cet article, vous allez découvrir comment vous pouvez retrouver le mot de passe Access. En effet, vous pouvez protéger une base de données Access grâce à un mot de passe.

Pour comprendre la situation, il faut remonter 10 ans plus tôt. A cette époque, j’avais développé un petit exécutable qui se connectait à une base de données Microsoft® Access 2000 pour afficher son contenu.

Aujourd’hui, je souhaite récupérer la structure de ma base et son contenu. Le code source de l’exécutable est introuvable: il ne reste plus que la base (BASE.MDB) ainsi qu’un autre fichier (COMPTES.MDW). Lorsque je tente de lire BASE.MDB avec Access, celui-ci me demande un mot de passe Access que j’ai oublié depuis belle lurette.

mot de passe Access
(image : Sufi Nawaz)

Sécurité Access à partir d’Access 95

Du coup, je n’ai plus accès à mon propre travail. En effet, à partir d’Access 95, Microsoft a implémenté une protection facultative des bases de données par mot de passe. Access 2.0 ne dispose pas de ce mécanisme de sûreté.

Si vous avez activé le mot de passe Access de la base de données, une boîte de dialogue apparaît à chaque fois que vous ouvrez la base de données. Le mot de passe Access de base de données est le même pour tous les utilisateurs. Il n’est donc pas lié à un utilisateur ou à un compte. Pour cette raison, certains l’appellent parfois « le mot de passe partagé ».

Comme le mot de passe Access de base de données est stocké dans la base de données, il est arrivé qu’en cas de corruption de la base, Access considère qu’elle est protégée par un mot de passe. Dans ce cas, il est parfois possible de récupérer une base de données Access corrompu.

Récupérer le mot de passe Access de la base de données

Le logiciel Access Password Pro, qui récupère les mots de passe perdus pour les bases de données Microsoft Access ainsi que les mots de passe des utilisateurs, me révèle instantanément le mot de passe Access d’accès à la base de données (« Aa123456« ).

Maintenant que j’ai le mot de passe Access d’accès à la base de données, il reste le plus dur. En effet, il existe un mécanisme supplémentaire de protection des données dans Microsoft Access: les mots de passe utilisateurs. Cette protection est aussi facultative.

Sécurité Access jusqu’à Access 2003

Toutes les versions d’Access, jusqu’à la version Access 2003 incluse, prennent en charge les mots de passe utilisateurs. Si vous avez activé ce système de sécurité, les utilisateurs doivent s’authentifier par un compte et un mot de passe Access lors de la connexion à Microsoft Access.

Sur un même objet (une table, etc.), deux utilisateurs distincts peuvent avoir des permissions différentes. Les autorisations peuvent être accordées soit à des utilisateurs, soit à des groupes internes d’Access.

Toutes ces informations de sécurité sont stockées dans une base de données système spécial. Celle-ci peut être partagée entre les différentes bases de données et des applications. En principe, cette base de données système est dans un fichier avec une extension .mda dans Access 2.0 et. mdw pour les autres versions. Toutefois, l’extension .mda est ambiguë car elle correspond aussi à des Add-ins d’Access, qui sont écrits en Microsoft® Visual Basic® for Applications (VBA).

Access 2000

Dans le cas d’Access 2000, cette base de données système à une extension .mdw.

Cette base contient toutes les informations liées au contexte de sécurité:

  • les noms des groupes avec leur mot de passe Access,
  • les noms des comptes utilisateurs avec leur mot de passe Access,
  • les appartenances des utilisateurs aux groupes,
  • les SID (identifiant unique) des groupes,
  • les SID (identifiant unique) des utilisateurs.

Puisqu’elle contient les informations nécessaires pour récupérer le contexte de sécurité des utilisateurs et des groupes, elle est cruciale pour accéder aux données. Si elle est perdue ou corrompue, vous serez incapable de modifier ou d’afficher vos données, même si vous avez le mot de passe Access d’accès à la base de données.

En effet, si vous avez le mot de passe Access d’accès à la base de données, mais que vous n’avez plus le fichier .mdw, vous obtiendrez des messages d’erreurs lorsque vous essayerez d’ouvrir une table: « Impossible de lire les définitions. Aucune autorisation de lecture des définitions pour la table ou la requête », ou quand vous voudrez exporter les données: « Vous n’avez pas l’autorisation de copier. Pour copier cet objet, vous devez avoir l’autorisation d’accès Lire la structure. Si l’objet est une table, vous devez aussi avoir l’autorisation Lire les données ».

Dans Fichier > Utilisateurs et autorisations > Autorisations d’accès, vous serez avec l’utilisateur en cours: Administrateur (par exemple). En cliquant sur l’onglet Changer le propriétaire, tous les objets auront comme propriétaire actuel: <Inconnu>. C’est normal. Et bien évidemment, quand vous essayerez de changer de propriétaire, vous obtiendrez le message d’erreur: « Vous n’avez pas l’autorisation de changer le propriétaire. Pour changer le propriétaire d’un objet de base de données, vous devez avoir l’autorisation d’administrer celui-ci. ». C’est agaçant, hein ?

Sécurité Access à partir d’Access 2007

Access 2007, 2010 et 2013 ne disposent plus du mot de passe par utilisateurs. Malgré cette absence, la récupération des mots de passe d’Access 2007 est une opération beaucoup plus difficile que dans les versions antérieures. Elle nécessite souvent l’utilisation d’attaques par dictionnaire ou par force brute. Avec Access 2013, c’est pire encore car la protection de mot de passe Access a été encore plus renforcée, comme dans toute la suite Office 2013. Le mot de passe Access est très difficile à briser et la récupération de mot de passe Access 2013 est une tâche coûteuse.

En l’absence du fichier .mdw, vous pouvez chercher à recréer une nouvelle base de données système .mdw. Pour cela, il existe un utilitaire (WRKGADM.EXE) qui permet de le faire. Sinon, il faut passer par le menu d’Access 2000 ou 2003: Outils > Sécurité > Commande de menu de groupe de travail d’administrateur pour créer la nouvelle base de données système. Mais, pour être efficace, ce procédé suppose que vous connaissiez le nom des comptes réellement utilisés, ainsi que leur mot de passe Access.

Bien évidemment, j’avais enlevé tous les droits au compte Administrateur dans ma base Access, car ce compte étant archi-connu, il est attaquable. En 2000, j’avais créé des nouveaux comptes (« Venus », « Pluton », etc.) et j’avais attribué des droits aux différentes planètes sur mes tables Access (« Venus » était administrateur de la base). Mais aujourd’hui, impossible de me rappeler leurs noms et leur mot de passe Access.

Récupérer le mot de passe Access de l’utilisateur

Heureusement, l’autre fichier encore présent est le fameux .mdw. Il s’intitule COMPTES.MDW. Il a fallu utiliser une autre option d’Access Password Pro pour récupérer quasi-instantanément toutes les informations du contexte de sécurité (les noms des comptes, des groupes, les mots de passe, etc.) contenues dans le fichier COMPTES.MDW. Le mot de passe Access du compte Venus était « Zz999999 » (enfin presque…).

C’est presque terminé. Maintenant, il faut fournir toutes ces informations à Access pour qu’il ouvre le fichier BASE.MDB avec le bon fichier .mdw (COMPTES.MDW). L’ouverture de la base s’est faite avec la commande:

« C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE » BASE.MDB /Wrkgrp COMPTES.MDW /user Venus /pwd Zz999999 puis la saisie du mot de passe Access de la base de données (« Aa123456 ») dans la pop-up qui est apparu.

Avec ces informations, Microsoft® Access 2000 m’a laissé à nouveau administrer pleinement la base.

Ultime conseil lié à la sécurité: convertissez vos bases de données Access en Microsoft Access 2013, c’est encore mieux.

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *