the_open_door
café
ESEN
← Volver al índice

rsync Enumeration

rsync es una herramienta rápida de copia y sincronización de ficheros muy usada para backups y réplicas. Cuando corre como demonio (por defecto en el puerto 873) expone "módulos", que son carpetas compartidas. El problema es que a menudo se configura sin autenticación, así que un atacante puede listar y descargar el contenido de esos módulos sin credenciales, y ahí suele haber backups, claves SSH o ficheros de configuración con secretos.

Mecanismo

Primero se confirma el servicio con un escaneo de versión, que además muestra el protocolo:

nmap -sV -p873 <ip>

Una conexión cruda con nc devuelve el saludo del demonio (@RSYNCD: 31.0), pero lo práctico es listar los módulos disponibles con el propio cliente:

rsync -av --list-only rsync://<ip>/
rsync -av --list-only rsync://<ip>/<module>

Si un módulo es accesible, se sincroniza su contenido a la máquina atacante para revisarlo con calma:

rsync -av rsync://<ip>/<module> ./loot

Cuando rsync está configurado sobre SSH en vez de como demonio, se añade -e ssh (o -e "ssh -p<port>" si el puerto no es el estándar).

Requisitos

Listar y descargar módulos anónimos no requiere nada. Otros despliegues sí piden usuario y contraseña (definidos en un fichero de secretos del servidor); en ese caso, si hemos recogido credenciales en otra parte del entorno, merece la pena probar la reutilización, porque rsync suele quedar fuera de las políticas de rotación.

Cómo detectarlo

Delatan la enumeración las conexiones anónimas al puerto 873, las peticiones de listado de módulos (--list-only) desde IPs no autorizadas y transferencias grandes de módulos completos hacia el exterior. Los logs del demonio rsync registran cada conexión y el módulo solicitado.

Defensa. Exigir autenticación (auth users + secrets file), marcar los módulos como read only, restringir por hosts allow/hosts deny, y evitar exponer el puerto 873 fuera de la red de gestión. Relacionado con FTP anónimo, reutilización de credenciales y inyección de claves SSH.