Question:
Que peuvent faire les pirates avec la capacité de lire / etc / passwd?
Danny Z
2015-06-30 23:03:52 UTC
view on stackexchange narkive permalink

Sur les sites Web d'exploitation, je vois des analystes de sécurité et des pirates ciblant le fichier / etc / passwd lors de l'affichage de la preuve de concept.

Si vous avez une inclusion ou un chemin de fichier local traversal sur votre serveur, et les pirates peuvent accéder (voir, lire, mais PAS éditer) le fichier / etc / passwd, quelles en sont les répercussions? Tous les mots de passe ne sont-ils pas masqués dans ce fichier par conception?

Pour rendre un PoC facile à suivre, un fichier avec une signification bien connue est ciblé./etc/passwd est un favori même si dans les systèmes modernes, il ne vous donnera pas beaucoup d'informations.
Il y a environ 25 ans, vous auriez pu attaquer les mots de passe hachés stockés dans ce fichier (d'où le nom) mais je ne pense pas que _toute personne sur la planète_ exécute un système non-shadow depuis au moins une décennie.
@Damon Je ne suis pas d'accord. Beaucoup d'anciens systèmes Unix (de type) fonctionnent encore aujourd'hui. Personne n'ose mettre à niveau par peur de casser l'application ou parce que la direction ne peut pas être convaincue (Budget pour la mise à niveau? Pourquoi? Cela fonctionne, n'est-ce pas?)
@dr01: chiffré? Pas dans un système correctement conçu. Au contraire, un hachage cryptographique à sens unique doit être utilisé (avec salage, etc.)
@dr01, hein? Non. Le chiffrement implique la récupérabilité si une clé est présente et que cette propriété n'existe pas.
@Tonny, le monde est certainement plein de systèmes hérités, mais les mots de passe masqués étaient une pratique universelle au milieu des années 90; nous parlons littéralement de 20 ans. Il y a un point où un système hérité est trop coûteux à entretenir car le matériel n'est plus disponible.
@CharlesDuffy Dans un monde idéal ... Je viens de faire une boule de nuit sur un système de 1986 (matériel) et le logiciel qui s'y trouve date de 1976. 1 vers le bas, 17 autres pour aller ...
@BenVoigt + CharlesDuffy Vous savez que je voulais dire que :) Je signalais la différence entre obscurcir les données (c'est-à-dire la sécurité par l'obscurité) -> non sécurisé, et sécuriser correctement les données via des primitives cryptographiques -> sécurisé. Quoi qu'il en soit, merci pour la note pointilleuse.
@dr01: Eh bien, vous avez commenté directement après la mention par Damon du fichier de mots de passe de hachage et d'ombre, il est donc naturel de supposer que vous avez choisi des mots différents parce que vous vouliez dire quelque chose de différent.
@BenVoigt Ah, je vois. Toutes mes excuses si mon premier commentaire n'était pas clair.
@Tonny, aïe. J'ai traité de quelques systèmes hérités (portage du logiciel de comptabilité interne d'un concessionnaire automobile sur une plate-forme plus moderne, puis rédaction d'intégrations de planification et de facturation pour un système de DME), mais dans aucun de ces cas, nous ne nous sommes même rapprochés du Une référence matérielle vieille de 30 ans avec laquelle vous traitez. (Le système du concessionnaire automobile a été écrit pour la première fois dans les années 70 en ciblant VMS, mais a été porté sur SCO dans les années 80 avant mon portage début des années 2000 sur Linux).
@CharlesDuffy Dec trucs exécutant Ultrix 4.x. Dans la plupart des cas (exécutant l'ERP sur Progress DB), nous pourrions transférer le logiciel vers Aix 4 et ensuite le mettre à niveau vers Aix 5.3. C'est le dernier Aix sur lequel Progress 9.0 fonctionne encore (le portage vers Progress 10 et versions ultérieures n'est pas possible en raison du manque de sources). Heureusement, IBM garantit qu'Aix 5.3 peut être exécuté en tant que partition logique sur les nouveaux systèmes Aix jusqu'en 2025. Cela couvre les 7 ans d'exigence de déclaration fiscale après le remplacement du système en 2016. Besoin d'un système en direct pour le reporting car la logique métier est codée en dur dans l'application: Les données brutes sont inutiles.
Six réponses:
gowenfawr
2015-06-30 23:12:52 UTC
view on stackexchange narkive permalink

La seule véritable répercussion est la reconnaissance - l'attaquant peut apprendre les noms de connexion et les champs gecos (qui aident parfois à deviner les mots de passe) à partir du / etc / passwd .

L'une des raisons à cela est que, il y a environ 20 ans, la plupart des variantes d'Unix ont cessé de conserver les mots de passe hachés dans le fichier / etc / passwd et les ont déplacées à / etc / shadow . La raison en était que / etc / passwd devait être lisible partout dans le monde pour que des outils comme «finger» et «ident» fonctionnent. Une fois que les mots de passe ont été séparés dans / etc / shadow , ce fichier a été rendu lisible uniquement par root.

Cela dit, / etc / passwd reste un «flag» pour les analystes de sécurité et les pirates parce que c'est un fichier traditionnel «hé, j'ai ce que je ne devrais pas». Si vous pouvez lire cela, vous pouvez également lire d'autres choses sous / etc, dont certaines peuvent être utiles à un attaquant. Mais il est plus difficile de tester (disons) /etc/yum.conf si vous ne savez pas si yum est sur le système; / etc / passwd est toujours présent et constitue un test fiable pour savoir si l'accès a fonctionné.

En d'autres termes, la répercussion implicite d'obtenir / etc / passwd est que l'attaquant a contourné les contrôles et peut obtenir des fichiers lisibles arbitraires, ce qui signifie "je gagne!" *

* Aucune garantie réelle de victoire, express ou implicite

Je suggérerais une correction selon laquelle obtenir / etc / passwd ne signifie pas que l'attaquant peut obtenir n'importe quel fichier arbitraire, mais n'importe quel fichier lisible par tout le monde puisque tout processus en cours d'exécution devrait pouvoir lire / etc / passwd.
Merci @SteveSether, bon point, modifié pour refléter.
Je voudrais également ajouter que / etc / passwd n'est plus requis sur la plupart (toutes?) Des distributions Linux modernes car les modules d'authentification enfichables (PAM) fournissent des schémas d'authentification robustes (qui peuvent inclure l'utilisation de / etc / passwd et / etc / shadow) .J'utilise personnellement des valeurs leurres pour / etc / passwd et / etc / shadow sachant qu'en cas de violation du système, l'attaquant peut essayer d'utiliser ces fichiers (et par tous les moyens, allez-y, méchants!). Référence PAM ici: http://tldp.org/HOWTO/User-Authentication-HOWTO/x115.html
@Nick, me corrige si je me trompe, mais `ls -l` cessera d'afficher les noms d'utilisateur si vous supprimez` / etc / passwd`; ce n'est pas compatible avec PAM. C'est le genre de dépendance cachée qui a chassé les hachages de `/ etc / passwd`.
C'est correct. La plupart des applications ne sont pas conçues avec le support PAM. Votre référence * ls * n'est pas vraiment un problème dans les systèmes embarqués où il n'y a pas "d'utilisateurs" pour ainsi dire. Cependant, tous les mécanismes de démarrage critiques prennent en charge ce style de fonctionnement et pour ceux qui souhaitent maîtriser la sécurité de leur (s) environnement (s) d'exploitation, cette méthode (basée sur PAM) (lorsqu'elle est personnalisée et mise en œuvre correctement) contrecarrera les attaques les plus avancées contre ces systèmes renforcés. .
Stig Hemmer
2015-07-01 13:25:09 UTC
view on stackexchange narkive permalink

Bien que @gowenfawr touche les points principaux, j'en ai quelques-uns à ajouter:

La plupart des systèmes, mais pas tous , cachent les mots de passe réels dans / etc / ombre . Pour voir si votre système est vulnérable, vérifiez un compte d'utilisateur réel. Si cela ressemble à

  stighemmer: x: ...  

Alors vos mots de passe sont sûrs.

Si cela ressemble à

stighemmer:kjsaashgdkwqvbm:...

Alors vos mots de passe ne sont PAS sûrs.

Oui, le mot de passe est obscurci à l'aide d'une fonction de hachage à sens unique, mais cela ne suffit pas. Avoir ce fichier permet au pirate de vérifier si un utilisateur donné a un certain mot de passe sans vraiment essayer de se connecter.

En 1970, cette vérification était lente et les choses étaient raisonnablement sûres. Aujourd'hui, un hacker peut vérifier des millions de mots de passe par seconde. Si l'un de vos utilisateurs possède un mot de passe devinable, le compte de cet utilisateur sera piraté. Et la limite pour ce qui est "devinable" est repoussée à chaque génération de processeur.

Vous avez maintenant vérifié et constaté que vos mots de passe sont stockés en toute sécurité dans / etc / shadow . Bien, problème résolu.

Pas tout à fait. / etc / passwd contient plus d'informations.

Il contient le nom complet de chaque utilisateur. Ceci est très utile pour les attaques d'ingénierie sociale.

Il contient une liste d'utilisateurs du système, qui indique quel logiciel est installé.

Donc, je reçois un e-mail qui me dit "Hey Stig, je avez oublié le mot de passe postgres. Pouvez-vous me le rappeler? Signé, autre utilisateur réel ". Étant donné que mon client de messagerie utile n'affiche pas l'adresse e-mail complète, je ne remarquerai pas que cet e-mail provient d'un pays distant. Je réponds: "C'est" S3CR37 "". Oups, la base de données de l'entreprise vient d'être piratée.

Bien sûr, ce n'est pas la seule façon dont les noms complets sont exposés, vous devez quand même enseigner aux utilisateurs les attaques d'ingénierie sociale.

Le mot de passe n'est _pas_ chiffré, il est _hashed_
@stig-hemmer, juste un petit avertissement que j'ai demandé une modification de votre question en changeant "Encrypted" en "Hashed".Je pense que vous pouvez rejeter cette modification si vous pensez qu'elle n'est pas conforme à la signification du message, n'hésitez pas.J'ai pensé que la modification était appropriée après avoir lu [ce post sur meta.] (Https://security.meta.stackexchange.com/questions/246/whats-the-etiquette-for-correcting-answers).
eurialo
2015-07-01 04:32:57 UTC
view on stackexchange narkive permalink

Cela peut aider un attaquant à faire une attaque par force brute dans les temps difficiles, donc l'attaquant n'a pas besoin de découvrir les noms d'utilisateur car il les a déjà mais il ne peut viser l'attaque que pour découvrir les mots de passe.

The Spooniest
2015-07-01 17:46:14 UTC
view on stackexchange narkive permalink

Sauf si vous n'utilisez pas de mots de passe masqués, l'accès à / etc / passwd n'est pas le risque énorme que le nom de fichier impliquerait (et si vous n'utilisez pas shadow passwords de nos jours, vous avez un problème).

Les premiers systèmes Unix stockaient les mots de passe dans / etc / passwd , c'est pourquoi le le fichier s'appelle ainsi . Il stockait également d'autres aspects des métadonnées utilisateur, comme le répertoire personnel de l'utilisateur, le shell, etc. Rétrospectivement, ce n'était pas la plus grande décision de conception jamais prise, car cela signifiait que les programmes qui utilisaient ces métadonnées devaient être capables de lire / etc / passwd afin d'obtenir ces données.

Les mots de passe dans / etc / passwd étaient chiffrés à l'aide des algorithmes de l'époque, mais l'inclusion des mots de passe chiffrés représentait toujours un risque d'exposition inutile , et donc les mots de passe masqués ont été mis en œuvre pour résoudre ce problème. Le format de / etc / passwd ne pouvait pas changer, pour des raisons historiques, mais les systèmes modernes y mettent simplement un espace réservé ( x est courant). Les informations relatives au mot de passe (les hachages réels, l'âge du mot de passe, etc.) sont stockées dans un autre fichier, / etc / shadow , que seul root peut lire.

Cela ne veut pas dire que l'accès à / etc / passwd est complètement inoffensif . Cela donne toujours une liste de noms d'utilisateur, et bien que ce soit théoriquement inoffensif (puisque les noms d'utilisateur ne sont pas censés être secrets), il peut être déprimant d'apprendre combien de personnes utilisent leur nom d'utilisateur comme mot de passe. Cela arrive moins souvent de nos jours, mais cela arrive encore assez souvent pour valoir la peine d'être essayé.

De plus, le champ GECOS dans / etc / passwd contient souvent des métadonnées comme les vrais noms d'utilisateurs. Cela peut être utile pour des estimations rapides en soi, ou pour effectuer des recherches détaillées susceptibles de générer des suppositions plus probables. Il s’agit de choses assez sophistiquées, cependant, qui vont bien au-delà (et ne nécessitent même pas potentiellement) l’accès à / etc / passwd lui-même

Les mots de passe étaient hachés et non chiffrés.
user79537
2015-07-02 06:43:54 UTC
view on stackexchange narkive permalink

Lorsque j'effectue des évaluations de vulnérabilité pour les clients, j'utilise / etc / passwd comme un "hé, j'ai LFI dans cette application et vous devriez être au courant". Il s'agit d'un fichier simple et bien connu qui dispose généralement d'autorisations suffisantes sur le système de fichiers pour montrer que je peux lire des fichiers. Étant donné qu'il s'agit d'une évaluation de la vulnérabilité, moi et le client ne nous soucions que de la vulnérabilité présente, des preuves fournies et des conseils sur la façon de résoudre le problème.

Lorsque j'effectue un pentest pour un client , ce fichier, bien que ne contenant normalement pas de mots de passe, me donne beaucoup d'informations. À partir de là, j'ai des noms de connexion pour commencer à deviner les mots de passe et je peux utiliser le LFI existant pour ensuite essayer de lire des fichiers hors des homedirs de l'utilisateur.

Ce même raisonnement s'applique à la preuve de concepts XSS et <script>alert (1) < / script> . Ce n'est pas la pire chose que vous puissiez faire avec XSS, mais c'est la preuve qu'en tant qu'attaquant j'ai la capacité d'exécuter JavaScript sous mon contrôle.

Je ne sais pas pourquoi cela a obtenu un vote négatif.
Sebastian B.
2015-07-02 02:42:56 UTC
view on stackexchange narkive permalink

Un attaquant peut regarder les utilisateurs créés manuellement (UID> 500 ou> 1000 sur la plupart des Linux que j'ai touchés jusqu'à présent) et également regarder les shells attribués (/ bin / ba (sh)) pour savoir quels utilisateurs pourraient travailler sur les services et / ou webapps disponibles sur la machine.SSH n'est pas la seule cible!

Ces informations sont non seulement utiles pour la force brute générique mais aussi pour toute attaque qui pourrait impliquer la connaissance d'un nom d'utilisateur valide (soyez créatif).

Comme mentionné ci-dessus: lorsqu'un attaquant peut lire / etc / passwd, il peut également en lire beaucoup plus sur le système et déterminer systématiquement s'il existe des moyens d'obtenir des shells inversés et une escalade des privilèges locaux.

Je vous recommande de lire quelques guides privesc Linux (mubix & g0tmilk pour les débutants) et de mettre la main sur des vms vulnérables pour une formation pratique privesc (vulnhub.com / kioptrix est un bon point de départ).



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...