Linux Redis自动化挖矿感染蠕虫分析及安全建议
歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術實踐干貨哦~
自從Redis未授權問題獲取Linux系統(tǒng)root權限的攻擊方法的披露后,由于其易用性,利用該問題入侵Linux服務進行挖礦、掃描等的黑客行為一直層出不窮;而在眾多利用該問題入侵服務器進行黑產(chǎn)行為的案例中,其中就存在一類利用該問題進行挖礦并且會利用pnscan自動掃描感染其他機器;該類攻擊一直存在,不過在近期又呈現(xiàn)數(shù)量增加的趨勢,在最近捕獲到多次,我們針對其做下具體的分析一、 背景
自從Redis未授權問題獲取Linux系統(tǒng)root權限的攻擊方法的披露后,由于其易用性,利用該問題入侵Linux服務進行挖礦、掃描等的黑客行為一直層出不窮;而在眾多利用該問題入侵服務器進行黑產(chǎn)行為的案例中,其中就存在一類利用該問題進行挖礦并且會利用pnscan自動掃描感染其他機器;該類攻擊一直存在,不過在近期又呈現(xiàn)數(shù)量增加的趨勢,在最近捕獲到多次,我們針對其做下具體的分析。
二、 漏洞說明
首先針對利用的漏洞做個說明,Redis 默認情況下,會綁定在 0.0.0.0:6379,在沒有利用防火墻進行屏蔽的情況下,將會將Redis服務暴露到公網(wǎng)上,如果在沒有開啟認證的情況下,可以導致任意用戶在可以訪問目標服務器的情況下未授權訪問Redis以及讀取Redis的數(shù)據(jù)。攻擊者在未授權訪問Redis的情況下利用Redis的相關方法,可以成功將自己的公鑰寫入目標服務器的 ~/.ssh 文件夾的authotrized_keys 文件中,進而可以直接登錄目標服務器;如果Redis服務是以root權限啟動,可以利用該問題直接獲得服務器root權限。相關漏洞詳情可以參考:https://www.seebug.org/vuldb/...
經(jīng)過在ZoomEye和SHODAN檢索,可以發(fā)現(xiàn)分別眾多Redis服務開放在公網(wǎng)上,這些服務都可能成為攻擊目標。
三、 入侵分析
經(jīng)過對捕獲的事件進行分析,我們發(fā)現(xiàn)整個入侵流程大概是包含以下幾個環(huán)節(jié):
四、 腳本分析
整個入侵利用以及后續(xù)的感染的實現(xiàn),最主要的功能都是基于通過Redis問題寫入crontab任務中下載執(zhí)行的.cmd腳本來實現(xiàn)的,通過對它的分析,我們基本能夠得到整個流程的所有細節(jié),這是一個base腳本,我們通過解讀來分析下它的相關功能。
這部分代碼只要是用作重復執(zhí)行的判斷,將.mxff0文件作為標記文件,如果存在該文件則代表機器上已執(zhí)行腳本,直接退出,否則寫.mxff0文件并進行下一步動作;
設置預置動作,在腳本退出后刪除相關文件和腳本自身;
這部分主要是修改系統(tǒng)的配置,開頭兩行為關閉SELINUX;然后清空/var/spool/cron,進而判斷系統(tǒng)DNS服務器是否存在8.8.8.8,沒有則添加;接著清空系統(tǒng)tmp目錄和刪除相關文件;同時清空系統(tǒng)緩存,而最后修改/etc/security/limits.conf來更新系統(tǒng)的資源限制;
這里再進一步的增加iptables限制6379端口只允許本地訪問,同時kill相關包含挖礦、redis客戶端、爬蟲等進程,這里的目的也比較簡單,避免被其他黑客再次入侵,同時清除可能其他黑客入侵啟動的進程;
清除相關登錄日志、命令操作歷史;
這一長串的內(nèi)容主要目的是下載并編譯安裝pnscan,從內(nèi)容中我們可以看到對于不同操作系統(tǒng)的判斷然后安裝依賴的相關模塊,然后才是從github下載pnscan的源碼進行編譯安裝;至于為什么采用編譯安裝的形式,猜測是出于兼容不同系統(tǒng)以及每次編譯生成的pnscan的MD5都不一樣,避免形成固定特征;
這部分主要是下載挖礦程序并重命名為.gpg,增加執(zhí)行權限,執(zhí)行后刪除,同時重新上傳到https://transfer.sh/ 獲取新的鏈接;
而這部分內(nèi)容主要是生成新的.dat文件,包含將原來.cmd腳本里的里挖礦程序的下載地址替換為上一步上傳到https://transfer.sh/ 得到的新地址,還有Redis利用的相關語句;
而步主要是調用pnscan去掃描子網(wǎng)段1.0.0.0/16到224.255.0.0/16中開放6379端口并且操作系統(tǒng)為Linux的目標,然后利用redis-cli執(zhí)行.dat中的命令,進行下個目標的感染;這里pnscan的-W參數(shù)值'2a 31 0d 0a 24 34 0d 0a 69 6e 66 6f 0d 0a'轉換后內(nèi)容'*1rn$4rnINFOrn',是向目標Redis服務發(fā)送請求獲取Redis服務器的各種信息和統(tǒng)計數(shù)值,再通過-R參數(shù)值'6f 73 3a 4c 69 6e 75 78'(轉換后內(nèi)容為os:Linux)判斷是否Linux系統(tǒng)。
最后就是收尾工作,清除相關日志和命令執(zhí)行歷史,同時在腳本退出的時候會觸發(fā)腳本一開始用trap預置的動作,會做刪除操作,刪除相關文件和腳本自身(rm -rf m .cmd tmp. .r .dat $0)。通過對腳本的解讀,我們基本已經(jīng)清楚整個蠕蟲的行為和入侵流程,也就是我們開始所描述的流程。
另外,通過閱讀腳本,我們發(fā)現(xiàn)雖然整個入侵流程并不是多復雜,但腳本其實有很多”工程化”的細節(jié)考慮,不得不讓人驚嘆入侵者的”考慮周到”:
利用.mxff0文件做重復執(zhí)行檢驗,避免腳本的重復執(zhí)行
為了增加成功性,一些環(huán)境的預處理:
痕跡清除
同行預防
系統(tǒng)兼容性
特征去除,存活延續(xù)
正是由于入侵者種種的”考慮周到”使得他的入侵感染的成功率能夠達到的一定的層度。
五、安全建議
病毒清理和系統(tǒng)恢復
我們主要參考腳本的相關行為進行對應的行為恢復和刪除即可:
還包含了一些中間文件,雖然腳本包含相關刪除操作,但建議還是全局查找確認:
.mxff0、.x112、.gpg、.dat、.cmd、.r.xx.xx.o/l、tmp.xxxx
Redis服務加固
其他建議
六、 附錄
IOCs
鏈接
如何避免打開重定向漏洞和安全重定向成功登錄?
相關閱讀
Hadoop Yarn REST API未授權漏洞利用挖礦分析?
黑客是如何實現(xiàn)數(shù)據(jù)庫勒索的 ?
2018云+未來峰會圓桌面對面:以網(wǎng)絡安全之能,造國之重器
此文已由作者授權騰訊云+社區(qū)發(fā)布,原文鏈接:https://cloud.tencent.com/dev...
歡迎大家前往騰訊云+社區(qū)或關注云加社區(qū)微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐干貨哦~
總結
以上是生活随笔為你收集整理的Linux Redis自动化挖矿感染蠕虫分析及安全建议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sense编辑器(Sense Edito
- 下一篇: php实现 明明的随机数