[C++] Obtenir le mot de passe windows
Fermé
Marm
-
3 juil. 2009 à 18:49
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 juil. 2009 à 19:09
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 5 juil. 2009 à 19:09
Bonjour,
Je suis présentement à la recherche d'une façon d'obtenir le mot de passe utilisateur de windows pour mon application en C++.
Je voudrais savoir s'il y a une fonction permettant cela comme GetUserName de la librairie windows.h le fait pour obtenir l'identifiant.
Sinon y-a-t-il un endroit dans le registre où on peut le trouver?
Est-il enregistré dans un fichier quelconque que l'on peut lire?
Merci à l'avance.
Marm
Je suis présentement à la recherche d'une façon d'obtenir le mot de passe utilisateur de windows pour mon application en C++.
Je voudrais savoir s'il y a une fonction permettant cela comme GetUserName de la librairie windows.h le fait pour obtenir l'identifiant.
Sinon y-a-t-il un endroit dans le registre où on peut le trouver?
Est-il enregistré dans un fichier quelconque que l'on peut lire?
Merci à l'avance.
Marm
A voir également:
- [C++] Obtenir le mot de passe windows
- Voir mot de passe wifi android - Guide
- Trousseau mot de passe iphone - Guide
- Mot de passe administrateur - Guide
- Supprimer mot de passe windows 10 - Guide
- Identifiant et mot de passe - Guide
5 réponses
Ca a été expliqué depuis longtemps chez les pros (https://groups.google.com/forum/?hl=fr#!forum/fr.comp.os.ms-windows.programmation )
(1995 !)
(1995 !)
loveparade
Messages postés
506
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
14 mai 2011
60
5 juil. 2009 à 17:49
5 juil. 2009 à 17:49
Je ne sais pas quel est le but mais pour rappel => http://www.commentcamarche.net/faq/sujet 307 devenir pirate informatique (juste au cas ou...)
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
5 juil. 2009 à 18:53
5 juil. 2009 à 18:53
Personnellement je ne travaille pas avec Microsoft et je ne sais pas comment ils ont codés Windows, mais si on est un peu malin il est évident qu'on ne va pas stocker des mots de passes en toute lettre.
Par contre on doit transformer un mot de passe en une clé grâce à un algorithme, puis stocker cette clé, et la comparer avec d'autres clés pour voir s'il y a effectivement égalité.
Je pense qu'au mieux tu pourrais récupérer cette clé, mais faire l'algorithme inverse pour passer de la clé au mot de passe doit être particulièrement difficile et dans tous les cas illégal (comme le précisait loveparade)
Par contre on doit transformer un mot de passe en une clé grâce à un algorithme, puis stocker cette clé, et la comparer avec d'autres clés pour voir s'il y a effectivement égalité.
Je pense qu'au mieux tu pourrais récupérer cette clé, mais faire l'algorithme inverse pour passer de la clé au mot de passe doit être particulièrement difficile et dans tous les cas illégal (comme le précisait loveparade)
Bonjour à vous tous,
Tout d'abord, ce n'est pas du tout dans un but illégal mais de convivialité que je veux obtenir ce mot de passe.
Je conçois une application windows qui a besoin du username et mot de passe windows pour se connecter et je veux simplement une connection automatique sans demander le mot de passe à l'utilisateur.
Je me doutais effectivement que ce mot de passe serait crypter, mais y-a-t-il un moyen de l'obtenir quand même?
Melies, merci pour ton aide, mais je crois que le site que tu m'as fournis n'est pas bon. Je me fais redirigé sur une page de résultat de google groups qui n'a pas de rapport....
Merci à vous tous
Marm
Tout d'abord, ce n'est pas du tout dans un but illégal mais de convivialité que je veux obtenir ce mot de passe.
Je conçois une application windows qui a besoin du username et mot de passe windows pour se connecter et je veux simplement une connection automatique sans demander le mot de passe à l'utilisateur.
Je me doutais effectivement que ce mot de passe serait crypter, mais y-a-t-il un moyen de l'obtenir quand même?
Melies, merci pour ton aide, mais je crois que le site que tu m'as fournis n'est pas bon. Je me fais redirigé sur une page de résultat de google groups qui n'a pas de rapport....
Merci à vous tous
Marm
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
5 juil. 2009 à 19:09
5 juil. 2009 à 19:09
Le moyen pour l'obtenir quand même est illégal, le mot de passe Windows est réservé pour l'administration de Windows, et aucun autre programme (non-Windows) ne doit pouvoir y accéder...
À quoi servirait de mettre un mot de passe si tout le monde pouvait s'en servir ?
Éventuellement, bien que ça me paraisse compliqué, tu peux demander à l'utilisateur de rentrer son code Windows puis de la crypter pour la comparer avec la clé de l'utilisateur Windows.
Personnellement si un programme me demandait mon mot de passe Windows, je me méfierai et je ne lui donnerai pas...
À quoi servirait de mettre un mot de passe si tout le monde pouvait s'en servir ?
Éventuellement, bien que ça me paraisse compliqué, tu peux demander à l'utilisateur de rentrer son code Windows puis de la crypter pour la comparer avec la clé de l'utilisateur Windows.
Personnellement si un programme me demandait mon mot de passe Windows, je me méfierai et je ne lui donnerai pas...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
5 juil. 2009 à 19:09
5 juil. 2009 à 19:09
Salut,
Il y a deux façons de stocker les MdP dans la base SAM locale (lorsqu'il n'y a pas de contrôleur de domaine bien sûr). Soit il s'agit de LM, soit de NTLM.
LM est très mauvais cryptographiquement puisqu'il s'agit de convertir de padder à 14 lettres en rajoutant des NULL caracters, de convertir tout en majuscule, et de le séparer en deux mots de passe de 7 caractères qui serviront de clés pour chiffrer un magic word "KGS!@#$%". Les deux résultats seront concaténés pour obtenir le chiffre LM de 16 caractères.
NTLM utilise la fonction de hachage MD4.
Pour cela, tu devras donc implémenter ces deux algorithmes dans ton programme ou utiliser des bibliothèques. Pour récupérer le hash des mots de passe, tu devras contourner la sécurité d'accès à la base SAM locale en utilisant la technique d'injection de DLL. Cette technique est utilisée par PWdump dont tu pourras t'inspirer largement.
Après, il ne te restera plus qu'à réaliser la partie bruteforce.
Cdlt
Il y a deux façons de stocker les MdP dans la base SAM locale (lorsqu'il n'y a pas de contrôleur de domaine bien sûr). Soit il s'agit de LM, soit de NTLM.
LM est très mauvais cryptographiquement puisqu'il s'agit de convertir de padder à 14 lettres en rajoutant des NULL caracters, de convertir tout en majuscule, et de le séparer en deux mots de passe de 7 caractères qui serviront de clés pour chiffrer un magic word "KGS!@#$%". Les deux résultats seront concaténés pour obtenir le chiffre LM de 16 caractères.
NTLM utilise la fonction de hachage MD4.
Pour cela, tu devras donc implémenter ces deux algorithmes dans ton programme ou utiliser des bibliothèques. Pour récupérer le hash des mots de passe, tu devras contourner la sécurité d'accès à la base SAM locale en utilisant la technique d'injection de DLL. Cette technique est utilisée par PWdump dont tu pourras t'inspirer largement.
Après, il ne te restera plus qu'à réaliser la partie bruteforce.
Cdlt