La faiblesse caractéristique des r-commands est leur confiance basée sur l'hôte : ~/.rhosts (par utilisateur) et /etc/hosts.equiv (à l'échelle du système) listent des paires host user qui bénéficient d'un accès sans mot de passe, et la vérification se fait contre l'adresse source qui se connecte. C'est une authentification par identité réseau usurpable, et elle est abusée de quatre façons qui s'appliquent uniformément à rsh, rlogin et rexec : implanter une entrée .rhosts là où un répertoire personnel est accessible en écriture, exploiter une confiance permissive ou avec joker déjà présente, tirer parti de l'ampleur de hosts.equiv (tous les utilisateurs non-root d'un coup), et usurper une IP source de confiance pour satisfaire la vérification sans contrôler l'hôte de confiance.
# read existing trust where files are accessible (reveals who is trusted)
cat ~*/.rhosts /etc/hosts.equiv 2>/dev/null
# any of the techniques below yields passwordless rsh/rlogin/rexec
Sous-thèmes#
- Écriture rhosts : implantation d'une entrée .rhosts de confiance.
- Confiance avec joker : abus de
+ +et des entrées trop larges. - Confiance hosts.equiv : exploitation de la confiance à l'échelle du système.
- Usurpation IP : usurpation d'une adresse source de confiance.