歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~html
自從Redis未受權問題獲取Linux系統root權限的攻擊方法的披露後,因爲其易用性,利用該問題入侵Linux服務進行挖礦、掃描等的黑客行爲一直層出不窮;而在衆多利用該問題入侵服務器進行黑產行爲的案例中,其中就存在一類利用該問題進行挖礦而且會利用pnscan自動掃描感染其餘機器;該類攻擊一直存在,不過在近期又呈現數量增長的趨勢,在最近捕獲到屢次,咱們針對其作下具體的分析linux
自從Redis未受權問題獲取Linux系統root權限的攻擊方法的披露後,因爲其易用性,利用該問題入侵Linux服務進行挖礦、掃描等的黑客行爲一直層出不窮;而在衆多利用該問題入侵服務器進行黑產行爲的案例中,其中就存在一類利用該問題進行挖礦而且會利用pnscan自動掃描感染其餘機器;該類攻擊一直存在,不過在近期又呈現數量增長的趨勢,在最近捕獲到屢次,咱們針對其作下具體的分析。git
首先針對利用的漏洞作個說明,Redis 默認狀況下,會綁定在 0.0.0.0:6379,在沒有利用防火牆進行屏蔽的狀況下,將會將Redis服務暴露到公網上,若是在沒有開啓認證的狀況下,能夠致使任意用戶在能夠訪問目標服務器的狀況下未受權訪問Redis以及讀取Redis的數據。攻擊者在未受權訪問Redis的狀況下利用Redis的相關方法,能夠成功將本身的公鑰寫入目標服務器的 ~/.ssh 文件夾的authotrized_keys 文件中,進而能夠直接登陸目標服務器;若是Redis服務是以root權限啓動,能夠利用該問題直接得到服務器root權限。相關漏洞詳情能夠參考:https://www.seebug.org/vuldb/ssvid-89715github
通過在ZoomEye和SHODAN檢索,能夠發現分別衆多Redis服務開放在公網上,這些服務均可能成爲攻擊目標。redis
通過對捕獲的事件進行分析,咱們發現整個入侵流程大概是包含如下幾個環節:數據庫
整個入侵利用以及後續的感染的實現,最主要的功能都是基於經過Redis問題寫入crontab任務中下載執行的.cmd腳原本實現的,經過對它的分析,咱們基本可以獲得整個流程的全部細節,這是一個base腳本,咱們經過解讀來分析下它的相關功能。緩存
這部分代碼只要是用做重複執行的判斷,將.mxff0文件做爲標記文件,若是存在該文件則表明機器上已執行腳本,直接退出,不然寫.mxff0文件並進行下一步動做;安全
設置預置動做,在腳本退出後刪除相關文件和腳本自身;服務器
這部分主要是修改系統的配置,開頭兩行爲關閉SELINUX;而後清空/var/spool/cron,進而判斷系統DNS服務器是否存在8.8.8.8,沒有則添加;接着清空系統tmp目錄和刪除相關文件;同時清空系統緩存,而最後修改/etc/security/limits.conf來更新系統的資源限制;微信
這裏再進一步的增長iptables限制6379端口只容許本地訪問,同時kill相關包含挖礦、redis客戶端、爬蟲等進程,這裏的目的也比較簡單,避免被其餘黑客再次入侵,同時清除可能其餘黑客入侵啓動的進程;
清除相關登陸日誌、命令操做歷史;
這一長串的內容主要目的是下載並編譯安裝pnscan,從內容中咱們能夠看到對於不一樣操做系統的判斷而後安裝依賴的相關模塊,而後纔是從github下載pnscan的源碼進行編譯安裝;至於爲何採用編譯安裝的形式,猜想是出於兼容不一樣系統以及每次編譯生成的pnscan的MD5都不同,避免造成固定特徵;
這部分主要是下載挖礦程序並重命名爲.gpg,增長執行權限,執行後刪除,同時從新上傳到https://transfer.sh/ 獲取新的連接;
而這部份內容主要是生成新的.dat文件,包含將原來.cmd腳本里的裏挖礦程序的下載地址替換爲上一步上傳到https://transfer.sh/ 獲得的新地址,還有Redis利用的相關語句;
而步主要是調用pnscan去掃描子網段1.0.0.0/16到224.255.0.0/16中開放6379端口而且操做系統爲Linux的目標,而後利用redis-cli執行.dat中的命令,進行下個目標的感染;這裏pnscan的-W參數值'2a 31 0d 0a 24 34 0d 0a 69 6e 66 6f 0d 0a'轉換後內容'*1\r\n$4\r\nINFO\r\n',是向目標Redis服務發送請求獲取Redis服務器的各類信息和統計數值,再經過-R參數值'6f 73 3a 4c 69 6e 75 78'(轉換後內容爲os:Linux)判斷是否Linux系統。
最後就是收尾工做,清除相關日誌和命令執行歷史,同時在腳本退出的時候會觸發腳本一開始用trap預置的動做,會作刪除操做,刪除相關文件和腳本自身(rm -rf m* .cmd tmp.* .r .dat $0)。經過對腳本的解讀,咱們基本已經清楚整個蠕蟲的行爲和入侵流程,也就是咱們開始所描述的流程。
另外,經過閱讀腳本,咱們發現雖然整個入侵流程並非多複雜,但腳本其實有不少」工程化」的細節考慮,不得不讓人驚歎入侵者的」考慮周到」:
利用.mxff0文件作重複執行檢驗,避免腳本的重複執行
咱們主要參考腳本的相關行爲進行對應的行爲恢復和刪除便可:
還包含了一些中間文件,雖然腳本包含相關刪除操做,但建議仍是全局查找確認: .mxff0、.x1十二、.gpg、.dat、.cmd、.r.xx.xx.o/l、tmp.xxxx
問答
相關閱讀
Hadoop Yarn REST API未受權漏洞利用挖礦分析
此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/developer/article/1142506?fromSource=waitui
歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~