Déchiffrer les mots de passes IIS grâce aux commandes natives de Windows

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:

<configuration> …
<system.applicationHost> …
<applicationPools>
<add name= »SecurityTokenServiceApplicationPool » autoStart= »true » managedPipelineMode= »Integrated »>
<processModel identityType= »SpecificUser » userName= »FORMATIONsvcMOSS27″ password= »[enc:IISWASOnlyAesProvider:UuTHp744ksuY4G/dRfgTRf5kqwdsdf10MNlsYT8Qqtgu7685HRHRS+oUU1rcJ8+5:enc] »

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.

Déchiffrage du mot de passe du pool d’applications

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

cd "C:/Windows/System32/inetsrv"

 

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

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

Cette commande doit être exécutée 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 !

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.

CatégoriesIIS

Laisser un commentaire

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