redis漏洞利用
redis未授權訪問漏洞學習
1. redis是什麼
Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。Redis的外圍由一個鍵、值對映的字典構成。為高速低負載儲存系統提供了一種解決方案。
2. redis未授權訪問
Redis 預設情況下,會繫結在 0.0.0.0:6379,這樣將會將 Redis 服務暴露到公網上,如果在沒有開啟認證的情況下,可以導致任意使用者在可以訪問目標伺服器的情況下未授權訪問 Redis 以及讀取 Redis的資料。攻擊者在未授權訪問 Redis 的情況下可以利用 Redis 的相關方法,可以成功在 Redis 伺服器上寫入公鑰,進而可以使用對應私鑰直接登入目標伺服器。
3. 漏洞原理及其危害
redis設計之初僅用於本機加快資料存取的速度,或者說,開發獨立的許可權認證系統開銷過於冗雜,所以redis預設並未開啟許可權認證機制,未區分普通使用者和管理員賬戶,使得暴漏在公網上的redis伺服器可以被任意主機連線執行redis內建命令。若配合ssh,可以實現root遠端登入,危害十分巨大。
4. 漏洞利用條件
a) 以root許可權執行redis服務
b) redis伺服器暴露在公網環境
c) redis服務允許除本機之外的所有主機登入
5. 漏洞重現和利用
本次試驗在vmware虛擬機器中進行,靶機使用fedora25,使用kali進行漏洞演示,網路連線模式選擇橋接模式,開啟虛擬機器後輸入ifconfig檢視ip地址,相互ping得通即可繼續實驗
a) 安裝redis,獲得redis包
wgethttp://download.mirrors.io/releases/redis-3.0.7.tar.gz
解壓後make執行
執行之前需要修改/etc/redis.conf
註釋掉bind 127.0.0.1這一行,此行表示僅允許本機的連線
執行redis服務
redis-server/etc/redis.conf &
b) 在kali中執行相同操作安裝redis,執行登入命令
c) redis-cli –h 192.168.1.109 #fedora IP地址
如果可以登入成功,證明此漏洞確實存在,在kali上未經驗證直接登入redis主機
6. 接下來嘗試搭配ssh協議獲取主機shell
ssh協議認證機制,當伺服器收到ssh連線請求,比對連線使用者的ssh私鑰與該使用者主目錄資料夾下的公鑰是否匹配,如果是,允許登陸。先在本地產生root使用者的rsa公鑰私鑰檔案,將rsa公鑰作為登入redis伺服器的標準輸入(redis-cli –x),登入後將此輸入內容儲存在root使用者目錄資料夾下的.ssh目錄中,隨後可以直接使用ssh命令登入。
d) 在kali上生成公私鑰檔案
e) 將公鑰檔案內容重定向至其他檔案(比如ssh.txt)
a) 啟動fedora redis服務
b) 使用ssh.txt的內容作為標準輸入,執行redis –cli命令,登入成功後使用set dir命令改變目錄,設定檔名稱,儲存生成公鑰檔案。
c) 此後在fedora開啟sshd服務。
d) 在kali上使用ssh命令-i選項指定本地私鑰檔案以root使用者名稱登入fedora主機,登入成功如下圖所示
7. 從上述結果可以看出,確實可以通過這種方式獲取root登入許可權,如果公司伺服器存在此類漏洞
a) 通過 Redis 的 INFO 命令, 可以檢視伺服器相關的引數和敏感資訊, 為攻擊者的後續滲透做鋪墊
b) Redis 作為資料庫,儲存著各種各樣的資料,如果存在未授權訪問的情況,將會導致資料的洩露,其中包含儲存的使用者資訊等
c) Redis可以巢狀Lua指令碼的特性將會導致程式碼執行, 危害同其他伺服器端的程式碼執行, 一旦攻擊者能夠在伺服器端執行任意程式碼, 攻擊方式將會變得多且複雜, 這是非常危險的
8. 使用openvas對該漏洞進行掃描
a) 在openvas中新建target,掃描本機redis服務,選擇掃描配置為fast and deep ultimate,掃描結果如下
b) 點選Redis Server No Password檢視log
c) 根據oid編號去http://www.openvas.org/openvas-nvt-feed.html頁面中查詢對應nvt
結果如下,可以直接看出nvt對應的nasl指令碼及其依賴
也可點選Redis Server No Password檢視nvt原始碼,找到nvt依賴
d) 新建openvas掃描配置,勾選剛才找到的nvt,儲存後重新對本機進行掃描
e) 掃描結果如下
9. 安全建議
a) 配置bind選項,限制連線redis服務的IP地址,修改預設監聽埠
b) 設定使用者認證
c) 選擇性配置rename command,重新命名某些命令
10. 總結
a) 在進行redis遠端訪問時,如果redis服務不是用root使用者啟動的,使用redis命令設定目錄時會出現許可權不足,操作拒絕錯誤。
b) 使用虛擬機器openvas掃描區域網虛擬主機時並未掃描出漏洞,原因尚不明確。
c) 在openvas網站上找到對應nvt及其相關依賴後,在openvas掃描配置中新增該專案時難以尋找
在配置一些網路服務時,要麼有安全嚴密的驗證機制,要麼就不能開放在公網上,對連線進來的IP地址要有所限制。
相關文章
- Redis 未授權訪問漏洞利用Redis
- 利用redis未授權訪問漏洞(windows版)RedisWindows
- Redis未授權訪問漏洞利用總結Redis
- ruoyi漏洞利用
- BlueKeep 漏洞利用分析
- 【漏洞預警】Redis 頻發高危漏洞Redis
- Redis crackit 漏洞嘗試Redis
- Google Chrome 開發者工具漏洞利用GoChrome
- ROP漏洞詳解和利用
- 微軟:ProxyShell 漏洞“可能被利用”微軟
- 漏洞利用查詢工具sandi
- 漏洞利用之資訊洩露
- 【Redis】利用 Redis 實現分散式鎖Redis分散式
- 【漏洞復現】Redis未授權訪問漏洞Redis
- 利用SSRF漏洞內網探測來攻擊Redis(通過curl命令 & gopher協議)內網RedisGo協議
- Metasploit之漏洞利用( Metasploitable2)
- 利用DNS Zone Transfers漏洞工具dnswalkDNS
- WordPress網站漏洞利用及漏洞修復解決方案網站
- RCE(遠端程式碼執行漏洞)原理及漏洞利用
- Redis未授權漏洞復現Redis
- muymacho---dyld_root_path漏洞利用解析Mac
- 【漏洞利用】2024Hvv漏洞POC283 個合集分享
- 利用Redis實現分散式鎖Redis分散式
- CentOS中利用Docker安裝RedisCentOSDockerRedis
- 永恆之藍漏洞利用機制分析
- STRUTS2的getClassLoader漏洞利用
- CRLF Injection漏洞的利用與例項分析
- IORegistryIterator競爭條件漏洞分析與利用
- PHP檔案包含漏洞(利用phpinfo)復現PHP
- Metasploit漏洞利用基礎教程要出版了
- CISA警告駭客利用ZK Java框架RCE漏洞Java框架
- 基於 GDI 物件的 Windows 核心漏洞利用物件Windows
- WebDAV服務漏洞利用工具DAVTestWeb
- Linux下堆漏洞的利用機制Linux
- Python2 input函式漏洞利用Python函式
- Redis漏洞攻擊植入木馬逆向分析Redis
- 【轉載】Redis最新漏洞,刪庫勒索+跑路!!!Redis
- SSRF之利用dict和gopher吊打RedisGoRedis