Skip to main content

Protocolo RSYNC | SolydOne

  • Protocolo RSYNC | SolydOne

Visão Geral

O rsync é uma ferramenta e protocolo de sincronização de arquivos amplamente utilizado em sistemas Linux/Unix. Em ambientes de CTF, ele costuma aparecer exposto na porta 873/TCP operando em modo daemon (rsync://).

Quando mal configurado, pode permitir:

  • Enumeração de módulos (shares)
  • Download anônimo de backups
  • Upload de arquivos (webshell)
  • Exposição de credenciais
  • Movimento lateral

Porta padrão:


873/tcp


Identificação do Serviço

Enumeração inicial com Nmap:

nmap -sV -p 873 IP_ALVO

Saída típica:

873/tcp open  rsync  (protocol version 31)

Se a versão do protocolo for exibida, o daemon está ativo.


Funcionamento do RSYNC em Modo Daemon

O rsync pode operar de duas formas:

  1. Via SSH (porta 22)
  2. Modo daemon (porta 873) ← foco em CTF

No modo daemon, o acesso ocorre via:

rsync rsync://IP_ALVO/

O serviço expõe módulos, que funcionam como compartilhamentos nomeados.


Autenticação Anônima

Em muitas máquinas de CTF, o rsync está configurado sem exigir autenticação.

Quando o arquivo /etc/rsyncd.conf não possui a diretiva:

auth users = usuario

O acesso é considerado anônimo.

Nesse caso:

  • Não é necessário informar usuário
  • Não é necessário informar senha
  • Nenhuma credencial precisa ser passada

Resposta técnica esperada em desafios:

None

Exemplo de acesso anônimo:

rsync rsync://IP_ALVO/

Se os módulos forem listados sem solicitação de senha, o acesso está aberto.


Enumeração de Módulos

Para listar módulos disponíveis:

rsync rsync://IP_ALVO/

Exemplo de saída:

backup          Diretório de Backup
www Arquivos Web
private Dados Internos

Se a listagem ocorrer livremente, o serviço permite enumeração pública.


Listagem de Arquivos sem Download

Para listar o conteúdo de um módulo sem realizar transferência:

rsync --list-only rsync://IP_ALVO/modulo

A opção utilizada para apenas listar arquivos e compartilhamentos é:

list-only

Essa flag permite:

  • Visualizar estrutura de diretórios
  • Ver permissões
  • Ver timestamps
  • Ver tamanho de arquivos
  • Evitar download desnecessário

Exemplo de saída:

drwxr-xr-x          4096 2023/12/01 backup/
-rw-r--r-- 532 2023/12/01 config.php
-rw------- 1204 2023/12/01 .env

Em CTF, isso permite identificar rapidamente arquivos sensíveis antes de baixar todo o módulo.


Download Completo de Módulo

rsync -av rsync://IP_ALVO/modulo .

Flags utilizadas:

  • -a → modo archive (preserva permissões)
  • -v → modo verboso

Upload de Arquivo (Se Permitido)

Se o módulo estiver configurado com:

read only = no

Pode ser possível enviar arquivos:

rsync -av shell.php rsync://IP_ALVO/www/

Impacto comum em CTF:

  • Upload de webshell
  • Persistência
  • Escalada via cron
  • Modificação de aplicação web

Arquivo de Configuração Interno

Local padrão:

/etc/rsyncd.conf

Exemplo vulnerável:

[backup]
path = /home/backup
read only = no
list = yes

Problemas identificados:

  • Permite listagem pública
  • Permite escrita
  • Não exige autenticação

Arquivos Sensíveis Comuns Encontrados

Durante exploração de rsync em CTF, é comum encontrar:

  • .env
  • config.php
  • wp-config.php
  • id_rsa
  • backup.sql
  • /etc/passwd
  • /etc/shadow
  • diretórios .git

Fluxo Típico de Exploração

  1. Scan completo:
nmap -sC -sV -p- IP_ALVO
  1. Identificação da porta 873.
  2. Listagem de módulos.
  3. Uso de --list-only para análise.
  4. Download de arquivos sensíveis.
  5. Extração de credenciais.
  6. Acesso inicial via SSH.

Checklist Rápido para CTF

  • Porta 873 aberta?
  • Módulos listáveis?
  • Acesso anônimo permitido?
  • Upload permitido?
  • Backups expostos?
  • Credenciais reutilizáveis encontradas?