漏洞簡介:
rsync是linux系統下的數據鏡像備份工具,使用rsync可以快速增量備份數據,支持本地復制,或與其他ssh、rsync主機同步。該協議默認監聽873端口,如果目標開啟rsync,并且沒有配置ACL或訪問密碼,就可以未授權讀寫目標服務器文件。
環境搭建:
本此環境使用docker-vulhub
進入vulhub-rsync,運行docker-compose up -d

環境搭建完成后,用nmap掃描一下,發現服務已經啟動

漏洞復現
1.列出模塊下的文件

2.下載任意文件
rsync rsync://XXXXXX/src/etc/passwd ./passwd.txt

3.寫shell到/etc/cron.hourly
cron是一個Linux定時執行工具,可以在無需人工干預的情況下運行作業。在Ubuntu server 下,cron是被默認安裝并啟動的。通過/etc/crontab文件,可以看到以下內容

1)/etc/cron.hourly,目錄下的腳本會每個小時讓執行一次,在每小時的17分鐘時運行;
2)/etc/cron.daily,目錄下的腳本會每天讓執行一次,在每天6點25分時運行;
3)/etc/cron.weekly,目錄下的腳本會每周讓執行一次,在每周第7天的6點47分時運行;
4)/etc/cron.mouthly,目錄下的腳本會每月讓執行一次,在每月1號的6點52分時運行;
(思路),將shell寫入到定時任務/etc/cron.hourly,即可在每小時17分鐘觸發。
4.創建shell

賦予執行權限:chmod +x shell
將shell上傳到/etc/cron.hourly

進入docker容器查看,發現上傳成功

接著只需要監聽端口,等待反彈即可。

修復建議:
更改配置文件/etc/rsyncd.conf,添加或修改參數:
訪問控制,設置host allow,限制訪問主機IP;
權限控制,設置read only=yes,模塊設置為只讀;
訪問認證,設置auth、secrets,認證成功才能調用服務;
模塊隱藏,設置list,將模塊隱藏起來。
|