漏洞簡介:
rsync是linux系統(tǒng)下的數(shù)據(jù)鏡像備份工具,使用rsync可以快速增量備份數(shù)據(jù),支持本地復(fù)制,或與其他ssh、rsync主機(jī)同步。該協(xié)議默認(rèn)監(jiān)聽873端口,如果目標(biāo)開啟rsync,并且沒有配置ACL或訪問密碼,就可以未授權(quán)讀寫目標(biāo)服務(wù)器文件。
環(huán)境搭建:
本此環(huán)境使用docker-vulhub
進(jìn)入vulhub-rsync,運(yùn)行docker-compose up -d

環(huán)境搭建完成后,用nmap掃描一下,發(fā)現(xiàn)服務(wù)已經(jīng)啟動

漏洞復(fù)現(xiàn)
1.列出模塊下的文件

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

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

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

賦予執(zhí)行權(quán)限:chmod +x shell
將shell上傳到/etc/cron.hourly

進(jìn)入docker容器查看,發(fā)現(xiàn)上傳成功

接著只需要監(jiān)聽端口,等待反彈即可。

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