Les fichiers rhosts










    Sous Unix il existe des commandes comme rsh, rcp, rlogin... Toutes ces commandes seraient déjà connues si elles n'avaient pas de r ( login, cp ...). Le r (pour remote) précise que la commande va s'exécuter sur une autre machine. Pour que ces commandes fonctionnent, il est impératif d'avoir son fichier .rhost à jour. Ce fichier permet de s'affranchir du mot de passe normalement nécessaire lors d'une connection avec une autre machine. Voici un exemple de fichier .rhost existant sur le HOME de la machine_A pour le compte login_A .
 

machine_B.mon_labo.fr login_machine_B
eclipse.totale.fr observateur


Ici, sur la machine_A peuvent se connecter sans taper de mot de passe, login_machine_B depuis machine_B et observateur depuis eclipse.
Comme vous vous en doutez ces types de fichier rhosts peuvent créer des problèmes de sécurité. Ainsi le fichier /.rhosts est tres dangereux. Si vous ne l'avez pas cree en pleine connaissance de cause et s'il existe, detruisez le. Si vous l'utilisez, verifiez ses acces et son contenu. Vérifiez les fichiers de configuration système et réseau, pour ce qui concerne les entrées non autorisées. En particulier le signe "+", ou des noms de machines extérieures dans /etc/hosts.equiv, /etc/hosts.lpd et dans tous les fichiers .rhosts (spécialement root, uucp, ftp et autres comptes systèmes). Ces fichiers doivent être protégés en écriture. De plus, assurez vous que ces fichiers existaient avant toute intrusion et n'ont pas été créés par un intrus. La plupart du temps, si une machine a été piratée, les autres sur le réseau l'ont été aussi. C'est surtout vrai sur les réseau où tourne NIS et où les serveurs s'autorisent les un les autres à travers l'usage des fichiers .rhosts ou /etc/hosts.equiv. Vérifiez donc tous les serveurs avec lesquels les utilisateurs partagent des accès.

Ainsi pirater une machine grâce aux fichiers rhosts serait simple: il suffit de les créer ou de les éditer. On peut approfondir le fonctionnement de ces fichiers. Imaginons que nous sommes loggés sur machine1 et que l'on aimerait se logger sur machine2. Pour cela, il faut ouvrir un shell et y taper:

rlogin cible2
La machine demandera alors un mot de passe. Si on ne veut pas avoir à taper un mot de passe à chaque fois, il suffit de créer un fichier .rhosts à mettre à la racine:
#
# fichier ~/.rhosts
#
machine1 ton_login
machine2 ton_login
et ainsi de suite pour toutes les machines. Ainsi, si l'on est sur jardin et que l'on fait un rlogin machine2, machine2 regardera le fichier .rhosts, verra que l'utilisateur ton_login a le droit de se connecter si il vient de machine1. Et donc ouvrira une session sans demander de mot de passe.

On voit qu'il faut donc avoir un accès à la machine pour pouvoir y accéder. Dans le cas ou une attaque aurait été réussie, et un fichier rhosts écrit, l'utilisation après-coup de ce fichier se révèlerait efficace même si la faille utilisée en premier cas ne marche plus.
 
 
Note: le point mis devant le fichier ce fichier est volontaire. C'est un fichier caché.
Note: le "r" devant les commandes UNIX sont des commandes qui se réalisent à distance le "r" étant mis pour remote.
Note: la commande echo cible.com >> guest/.rhosts permet un accès à l'utilisateur guest sur la machine cible.com. Cette commande se décompose ainsi: "echo" annonce l'écriture, "cible.com" est l'objet de l'écriture, ">>" indique où va se réaliser l'écriture, "guest/.rhosts" est le fichier cible.

Clad Strife