#20 2/6/2010 12:43 PM
Comment décrypter le contenu des cookies MSCSAuth Commerce Server 2002 sans l'avoir installé.Voici ce que contiennent ces cookies : 983XXXXCC620F5E6D8FDEXXX29663AF16BE900XXXC8589115C7DE7XXX8570FF8C04B2B2EXXXX428DCB0F92A2292.....
C'est bien sûr encrypté avec la clef que l'on peut trouver dans la configuration : Encryption Key for Cookie DataCe qu'il faut savoir c'est qu'un filtre ISAPI fait le travail d'authentification c'est mscsauth.dll qui est placé dans les filtres au niveau de IIS.Donc on va chercher dans cette dll comment ils font :)Pour cela on démarre avec une piste, on sait que GetUserIdFromCookie(...) va forcement faire le travaille de décryptage avant de nous répondre.Décompilons (j'ai utilisé PE Explorer en version d'évaluation)
Cliquez sur les images pour y voir clair.Nous voici arrivés sur la fonction GetUserIdFromCookie(...), cherchons ce qu'il s'y passe d'intéressant.Plus bas on découvre :Un appel à DecryptData(...), c'est exactement ce que l'on cherche.A l'intérieur de DecryptData(...), qu'est ce qu'on découvre ?Un appel à CryptAcquireContextW(...) de la dll ADVAPI32.dll, c'est la DLL de base des fonctions de crypto.A l'adresse 0x1000FC65 on colle un pointeur sur la fonction dans le registre edi, que l'on appel ensuite à l'adresse 0x1000FC7A, entre ces deux adresses on empile les arguments.le premier argument empilé, donc le dernier de la fonction c'est
Avec tout ça on a juste un CryptoServiceProvider, voyons la suite.Ici on continue dans la même fonction et on trouve un appel à la fonction HrImportSessionKey, allons voir :Ce listing n'a pas vraiment d'intérêt sauf le petit jump à l'adresse : 0x1000FEC9Ce jump nous mène à une routine qui fait appel a la fonction New_GenerateSessionKeyFromPassword, c'est dans cette fonction que va se passer tout le gros du travail.On y retrouve toutes les fonctions intéressantes de la cryptoAPI : CryptCreateHash, CryptHashData, CryptDeriveKey.
L'appel à CryptCreateHash prends en paramètre (comme d'habitude les derniers sont les premiers) :
L'appel suivant CryptHashData
L'appel suivant CryptDeriveKey
Categories : Code Tags : .Net 2.0, ADVAPI32.dll, Commerce Server 2002
Back to List
Categories
Tags
Liens externes: