web-dev-qa-db-fra.com

pouvons-nous connaître le mot de passe des autres utilisateurs si nous avons un accès root?

Si une personne a un accès root à une machine RHEL particulière, pourra-t-elle récupérer le mot de passe des autres utilisateurs?

24
monu

TL; DR: Non, les mots de passe sont stockés sous forme de hachages qui ne peuvent (en général) pas être récupérés.

Linux ne stocke les mots de passe en texte brut nulle part par défaut . Ils sont hachés ou chiffrés d'une autre manière grâce à une variété d'algorithmes. Donc, en général, non, ce n'est pas possible avec les données stockées.

Si vos mots de passe sont stockés ailleurs que dans le /etc/passwd base de données, ils peuvent être stockés d'une manière qui le permet. htpasswd les fichiers peuvent contenir des mots de passe cryptés de manière lâche et d'autres applications peuvent stocker des hachages plus faibles ou des mots de passe en texte brut pour diverses raisons (généralement mauvaises).

De plus, les fichiers de configuration utilisateur peuvent contenir des mots de passe non chiffrés ou des mots de passe faiblement protégés pour diverses raisons - fetchmail récupérant le contenu d'un autre service, .netrc, ou de simples choses automatisées peuvent inclure le mot de passe.

Si les mots de passe sont hachés ou chiffrés avec un algorithme faible et ancien (3DES, MD5), il serait possible de déterminer de manière raisonnablement efficace/bon marché quel était le mot de passe - bien qu'en attaquant les données plutôt qu'en inversant simplement la transformation. (par exemple: des choses comme http://project-rainbowcrack.com/ ou http://www.openwall.com/john/ )

Puisque vous êtes root, il est également possible d'attaquer le mot de passe utilisateur à un autre niveau - remplacez le binaire de connexion, ou Sudo, ou une partie de PAM, etc., par quelque chose qui capturera le mot de passe lors de sa saisie.

Donc, en particulier, non, mais en général, avoir un accès root facilite l'accès aux détails des utilisateurs via divers canaux secondaires.

37
Daniel Pittman

Contrairement à d'autres réponses ici, je dirais que la réponse simple à cette question et à bien d'autres qui se terminent par "si vous avez la racine" est OUI.

Fondamentalement, root peut faire tout ce que le système lui-même peut faire sur la machine. Le système peut accepter votre mot de passe, donc root peut accepter votre mot de passe, ou le sien à la place du vôtre, avec suffisamment d'effort. Plus important encore, il peut simplement changer votre mot de passe ou DEVENIR vous.

Plus précisément, les mots de passe sont généralement cryptés. Il s'agit généralement d'une sorte d'algorithme dit "à sens unique", qui génère un nombre (un hachage) qui peut être utilisé pour vérifier le mot de passe, mais généralement pas pour inverser le nombre et récupérer le mot de passe. Il ne s'agit donc pas simplement de lire un fichier pour obtenir le mot de passe de quelqu'un.

Cela dit, vous POUVEZ lire leur historique Shell et l'historique de connexion, où ils ont très probablement tapé leur mot de passe au lieu de leur nom d'utilisateur à un moment donné, ou l'ont tapé dans un Shell au lieu d'une invite de mot de passe. Dans ce cas, ce SERAIT du texte brut. Ceci est étrangement courant sur les terminaux textuels, sans aucune bonne solution à ma connaissance.

Cependant, même en mettant de côté ce problème, le chiffrement "à sens unique" n'est pas vraiment à sens unique. Il existe de nombreux outils qui passeront par de nombreuses combinaisons de mots de passe, les cryptant avec le même processus à sens unique, jusqu'à ce que vous en trouviez un qui correspond. Ils connaissent alors le mot de passe qui y aura accès (bien qu'en tant que root, ils ont DÉJÀ accès, sur CETTE machine).

Pire encore, il existe des tables Rainbow, qui sont des réponses précalculées au processus ci-dessus: les gens ont déjà généré le mot de passe d'origine qui provient du mot de passe chiffré donné. En les utilisant, il s'agit d'une simple recherche - aucune tentative de craquage longue n'est requise.

Encore une fois, l'accès au niveau racine est LA chose à protéger. Avec cela compromis, la machine entière et tout ce qui s'y trouve est compromise. Il est temps de recommencer, notamment en informant tous vos utilisateurs que votre entreprise ne peut plus faire confiance pour protéger leur vie privée. Et, oui, cela pourrait signifier la fermeture des affaires.

13
user17534

Si vous avez root, vous pouvez exécuter un pirate de mot de passe contre /etc/shadow (en supposant des mots de passe locaux et non LDAP ou Kerberos, etc.). Cela peut ne pas être efficace s'ils choisissent de bons mots de passe et que le système est configuré pour utiliser un hachage de mot de passe fort. Mais les mots de passe système ne sont pas stockés en texte brut; les mots de passe ne sont pas directement disponibles, même pour root.

8
geekosaur

Tous les mots de passe sont stockés dans /etc/shadow fichier. Vous pouvez ouvrir ce fichier en utilisant l'accès root et voir le hash value de ces mots de passe pour chaque utilisateur (même root).

Sauf si vous disposez d'un logiciel de déchiffrement de mot de passe, vous ne pouvez pas reconvertir ces valeurs de hachage en texte normal.

Mais toujours si vous avez accès à l'utilisateur root, vous pouvez changer le mot de passe de n'importe quel utilisateur normal en utilisant la commande suivante et accéder à son compte.

root@localhost$ passwd pradeep

Cela vous demandera le nouveau mot de passe que vous souhaitez définir pour l'utilisateur pradeep. De cette façon, vous pouvez changer le mot de passe pour pradeep.

Vous pouvez maintenant accéder à partir de son compte en:

root@localhost$ su pradeep

Cela entraînera le passage à l'utilisateur pradeep et vous obtiendrez un terminal comme celui-ci:

pradeep@localhost$

5
pradeepchhetri