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


24

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?


4
Oui vous pouvez, ils peuvent le partager avec vous si on vous le demande gentiment :) en d'autres termes, votre question n'est pas posée avec précision.
poige

Réponses:


37

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

Linux ne stocke par défaut aucun mot de passe en texte brut . Ils sont hachés ou autrement chiffrés par le biais d'une variété d'algorithmes. Donc, en général, non, ce n'est pas possible avec les données stockées.

Si vous avez des mots de passe stockés ailleurs que dans la /etc/passwdbase de données, ils peuvent être stockés d'une manière qui le permet. htpasswdles 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 ancien et faible (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.



2
C'est une bonne réponse pour la plupart, mais 3DES et MD5 ne sont en fait pas beaucoup plus faibles que les autres algorithmes. La force brute est toujours la seule méthode pour trouver un mot de passe à partir d'un hachage (les tables arc-en-ciel sont un moyen d'accélérer les méthodes de force brute pour n'importe quel algorithme, pas une faiblesse de MD5). Ce qui améliore une méthode de hachage pour les mots de passe, c'est qu'elle est lente et utilise un sel assez long.
Gilles 'SO- arrête d'être méchant'

13

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 de 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 arc-en-ciel, 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.


L'accès à mon compte est différent de l'obtention de mon mot de passe. Si vous me permettez à un utilisateur de vous connecter à votre machine et que j'utilise (stupide mais commun) le même mot de passe pour toutes les machines, vous n'avez pas accès à toutes les machines juste b / c vous pouvez changer mon mot de passe sur votre machine. Je viens d'être bloqué sur un compte.
emory

De plus, si vous utilisez des systèmes de fichiers chiffrés pour des données sensibles, la compromission de l'accès root n'implique pas de temps pour recommencer.
emory

@emory Si vous utilisez des systèmes de fichiers cryptés et que le système est root compromis, pouvez-vous faire confiance au code qui traite du système de fichiers crypté, lit la phrase secrète de cryptage, etc.? Je dirais que vous ne pouvez pas, car par définition, un compromis sur les privilèges root signifie que tout sur le système (jusqu'au noyau) est à gagner.
un CVn du

@ MichaelKjörling Puis-je faire confiance au code qui traite du système de fichiers crypté? Dans la plupart des cas, non. Dans mon cas, oui. Il est hébergé sur un support en lecture seule. Root ne peut pas y écrire. Les journaux vont sur un lecteur WORM. De même, je ne remets pas les clés de root et recommencerais probablement.
emory

8

Si vous en avez, rootvous pouvez exécuter un cracker de mot de passe /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.


5

Tous les mots de passe sont stockés dans un /etc/shadowfichier. Vous pouvez ouvrir ce fichier en utilisant l'accès root et voir le hash valuede 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 modifier 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$


1
vous pouvez faire "su pradeep" même sans changer le mot de passe pradeep, car lorsque vous faites "su pradeep" avec l'utilisateur root, vous n'avez pas besoin de taper le mot de passe pradeep pour vous connecter ...
Wolfy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.