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:
- Via SSH (porta 22)
- 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
- Scan completo:
nmap -sC -sV -p- IP_ALVO
- Identificação da porta 873.
- Listagem de módulos.
- Uso de
--list-onlypara análise. - Download de arquivos sensíveis.
- Extração de credenciais.
- 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?