Comment déchiffrer les mots de passes IIS ?

Cet article vous explique comment déchiffrer les mots de passes IIS. Notamment, vous verrez comment vous pouvez récupérer en clair un mot de passe perdu. Généralement, ces mots de passe permettent de se connecter à des ressources distantes.

Dans IIS (Internet Information Services), le fichier de configuration applicationHost.config, logé sous C:\Windows\System32\inetsrv\config, contient le compte de service de chaque pool d’applications.

Un pool d’applications est un regroupement de sites et d’applications web. A chaque pool d’application est associé un ou plusieurs programmes intitulés processus de travail ou worker process (w3wp.exe). C’est le processus de travail qui va exécuter la requête http, par exemple.

De ce fait, le programme w3wp.exe s’exécutera avec les droits du compte de service du pool d’applications. Bien évidemment, il est conseillé de donner les droits exactement nécessaires à ce compte de service. Toutefois, le sujet est assez complexe et ne se résume pas qu’à cela.

Stockage du mot de passe du pool d’applications

Ce qui est intéressant c’est le stockage du mot de passe dans le fichier applicationHost.config. En effet, le mot de passe du compte de service est chiffré dans applicationHost.config.

Par exemple, un extrait du fichier pour une configuration SharePoint, qui concerne le pool d’application SecurityTokenServiceApplicationPool:

Déchiffrer les mots de passes IIS
Déchiffrer les mots de passes IIS

Derrière la balise password, vous trouvez le mot clef chiffré : « [enc:IISWASOnlyAesProvider:UuTHp744ksuY4G/dRfgTRf5kqwdsdf10MNlsYT8Qqtgu7685HRHRS+oUU1rcJ8+5:enc] ».

Le sel de l’histoire c’est qu’il facile de retrouver le mot de passe en clair correspondant grâce à une commande APPCMD de IIS.

Commande pour déchiffrer les mots de passes IIS

La commande APPCMD pour déchiffrer est à  exécuter en tant qu’administrateur dans une invite de commandes:

cd "C:/Windows/System32/inetsrv"

Puis ensuite, vous tapez :

appcmd.exe list apppool "SecurityTokenServiceApplicationPool" /text:*

Cette commande donne le résultat abrégé suivant :

APPPOOL
 ...
 

[add]

… [processModel] identityType: »SpecificUser » userName: »FORMATIONsvcMOSS27″ password: »Passw0rd@ »

En face de password, vous trouvez le mot de passe en clair.

Précautions pour éviter de divulguer trop d’informations

Vous devez exécuter cette commande comme administrateur. Il faut donc être administrateur local pour retrouver le mot de passe.

Cependant, si vous êtes dans une compagnie internationale, avec plusieurs niveaux de ramifications d’administrateurs, vous pourriez récupérer indûment des mots de passe d’autres comptes de services, voire d’administrateurs.

Pire encore, si le compte de service du pool d’applications est le compte Administrateur de domaine ! Horreur absolu…

C’est un argument supplémentaire pour créer des comptes de services spécifiques et de ne jamais utiliser les comptes de domaines comme compte de service.

Bien évidemment, il est préférable d’utiliser les comptes virtuels Windows pour diminuer les risques.

Commentaires

Laisser un commentaire

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