當前位置:
首頁 > 最新 > Redis入侵及防護

Redis入侵及防護

Redis作為一個開源的使用ANSI C語言編寫、支持網路、可基於內存亦可持久化的日誌型、Key-Value資料庫,由於性能高效,使用的人越來越多,但是很多人不考慮Redis的安全,導致伺服器被入侵。

廢話不多說,直接上乾貨!

Redis默認情況下,會綁定0.0.0.0:6379,這樣的配置結果是,Redis服務會暴露在公網上,如果在沒有開啟認證的情況下,可以導致任意用戶在未授權的情況下訪問Redis以及讀取或任意修改Redis數據,下面演示如果操作。

  • 準備一台安裝有Redis服務的伺服器,默認配置,並確保服務已啟動

  • 通過telnet(或redis-cli)連接到目標伺服器redis服務

  • 首先查看配置數據存儲目錄

  • 可以看到,默認保存目錄是/var/lib/redis,我們可以通過config命令修改dir都我們想要的位置

  • 如圖,我通過config命令將dir和dbfilename修改,熟悉CentOS的都知道,/var/spool/cron/是保存所有用戶定時任務的目錄,該目錄下,以用戶名為文件保存了各個用戶的定時任務,我這裡直接修改dbfilename為root,這樣我可以寫任意命令到root用戶的計劃任務

  • 如圖,寫入一條反彈shell的定時任務到redis資料庫,並執行save命令,將該數據保存到root計劃任務中

  • 如圖查看計劃任務,已經被寫入,開始用nc連接

    等待1分鐘,定時任務執行之後,直接連入目標伺服器,並且是root許可權,而且發現在目標伺服器中,都無法看到有其餘用戶登陸。

這裡只是舉個最簡單的例子,通過redis,可以寫入任意shell,獲取任意許可權,可以將公鑰直接寫入root/.ssh/authorized_keys。

修復建議:

為Redis服務創建單獨的用戶和家目錄,並配置禁止登陸

修改redis.conf,添加requirepass mypasswd

修改redis.conf,bind 127.0.0.1,這裡如果需要內網訪問,可以通過bind 192.168.0.1/24內網網段來使用。

GIF

歡迎分享和關注,運維實談,不定期分享純乾貨!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 運維實談 的精彩文章:

如何修復PHP的GD庫漏洞

TAG:運維實談 |