the_open_door
café
ESEN
← Volver al índice

R-Services Abuse (rlogin, rsh, rexec)

Los R-Services son una familia de servicios Berkeley para acceso y ejecución remota entre hosts Unix (rlogin, rsh, rexec, rcp, rwho, rusers). Reparten su funcionalidad entre los puertos 512, 513 y 514, y como telnet, transmiten todo (incluidas credenciales) en claro. Fueron sustituidos por SSH precisamente por sus fallos de diseño, pero todavía aparecen en sistemas comerciales antiguos (Solaris, AIX, HP-UX) durante auditorías internas. Su punto débil es el modelo de confianza: los ficheros /etc/hosts.equiv (global) y ~/.rhosts (por usuario) definen combinaciones de host y usuario que se autentican sin contraseña.

Mecanismo

Primero se confirman los puertos con un escaneo de versión:

nmap -sV -p 512,513,514 <ip>
PORT    STATE SERVICE VERSION
512/tcp open  exec?
513/tcp open  login?
514/tcp open  tcpwrapped

La clave está en los ficheros de confianza. Una entrada sigue el formato <usuario> <host>, y el comodín + significa "cualquiera". Un .rhosts mal configurado como el siguiente permite a cualquier host entrar como ese usuario sin credenciales:

htb-student     10.0.17.5
+               10.0.17.10
+               +

Con el cliente rsh-client instalado, iniciamos sesión aprovechando la relación de confianza:

rlogin <ip> -l <user>

Una vez dentro, rwho y rusers delatan más usuarios y sesiones activas en la red, útiles para el siguiente salto:

rwho
rusers -al <ip>

rexec sí pide usuario y contraseña (por un socket sin cifrar), salvo que una entrada de confianza lo anule.

Requisitos

Para entrar sin credenciales hace falta una entrada de confianza en hosts.equiv o .rhosts (idealmente con el comodín +). En su defecto, credenciales válidas sirven para rexec, y siempre merece la pena probar reutilización con las que hayamos recogido en el entorno. En el lado atacante se necesita el paquete de clientes r (apt install rsh-client).

Cómo detectarlo

Delata el ataque el tráfico en claro por 512/513/514 (un IDS lee las credenciales directamente), los inicios de sesión rlogin/rsh desde IPs no confiables y, en el host, la presencia de ficheros .rhosts o hosts.equiv con entradas +. Los demonios rlogind, rshd y rexecd registran cada conexión.

Defensa. Desinstalar los R-Services y usar SSH; eliminar hosts.equiv y los .rhosts; si por compatibilidad son imprescindibles, usar entradas explícitas de host y usuario, nunca el comodín +, y restringir por firewall. Relacionado con enumeración de usuarios SSH, FTP anónimo, enumeración de rsync y reutilización de credenciales.