rsh exécute une commande (ou un shell interactif) sur un hôte distant via rshd sur TCP 514. Son authentification est basée sur l'hôte : le serveur vérifie si l'IP source et le nom d'utilisateur qui se connectent sont de confiance via le ~/.rhosts de l'utilisateur cible ou le /etc/hosts.equiv à l'échelle du système, et si oui, accorde l'accès sans mot de passe. Cette conception est toute la vulnérabilité. Un attaquant qui peut amener le serveur à lui faire confiance, en écrivant une entrée .rhosts, en abusant d'un hosts.equiv permissif, ou en usurpant une adresse source de confiance, exécute des commandes en tant qu'utilisateur cible sans identifiant, et parce que le canal est en clair, toute session réelle est aussi interceptable.
# if trusted (or trust is permissive), run commands with no password
rsh -l <user> <target> id
rsh -l root <target> 'cat /etc/shadow'
# test reachability
nmap -p514 -sV <target>
Sous-thèmes#
- Contournement rhosts : accès sans mot de passe via la confiance .rhosts.
- hosts.equiv : abus de confiance à l'échelle du système.
- Usurpation d'IP : usurper une adresse source de confiance.
- Interception en clair : capturer la session non chiffrée.