十字符病毒,殺不死的小強癣猾,一次云服務器淪陷實錄

一敛劝、現(xiàn)象

接到客戶的電話,說自己的云服務器被提供商禁止訪問了纷宇,原因是監(jiān)測到網(wǎng)絡流量暴滿夸盟,服務器不停的向外發(fā)包,在確認客戶沒有業(yè)務量突增的情況下像捶,初步判斷可能服務器遭受了流量攻&擊(DDOS)上陕,不過按照常理來說,客戶的業(yè)務系統(tǒng)就是一個小的web系統(tǒng)拓春,平時流量不大释簿,影響力也一般,不至于遭受DDOs硼莽,帶著這些疑問庶溶,要到了客戶服務器的登錄方式,廢話少說懂鸵,還是進入系統(tǒng)偏螺,一查究竟吧。點擊此處有驚喜

二矾瑰、排查問題

下圖是登錄系統(tǒng)后砖茸,執(zhí)行top命令的輸出結果隘擎,綜合查看殴穴,系統(tǒng)整體負載并不高,但是帶寬占用很高,由于云服務器帶寬基本耗盡采幌,ssh登錄服務器也非常慢劲够,幾乎不能執(zhí)行任何操作。

此外休傍,還發(fā)現(xiàn)第一個進程占用很大cpu資源征绎,就是名為apgffcztwi的進程,這個進程名剛好10個字符磨取,這是什么進程人柿,名字相當古怪,肯定有問題忙厌,從文件名看出凫岖,這不像一個正常的系統(tǒng)進程。

既然有古怪逢净,那就看看這個進程是哪個程序啟動的哥放,操作方式見下圖:

簡單吧,通過剛才那個進程的pid爹土,然后去proc下面查看pid目錄下面對應的exe文件甥雕,就能找到進程對應的啟動程序,linux就是這么敞亮胀茵,一下子找到了這個程序位于/usr/bin目錄下社露。

既然找到了這個程序,那就詳細查看下這個程序的屬性信息吧宰掉,如下圖:

看到了嗎呵哨,第一個文件,文件的讀轨奄、寫和執(zhí)行屬性均沒有孟害,相當古怪。好吧挪拟,先記錄下來這個文件的位置和路徑挨务。

下面繼續(xù)查看系統(tǒng)進程信息,看看有無其它異常玉组,通過ps命令又發(fā)現(xiàn)了新的線索谎柄,如下圖:

在/usr/bin目錄下有隱藏的.sshd文件,這個文件是正常系統(tǒng)所沒有的惯雳,又一個可疑線路朝巫,仍然記錄下來。

繼續(xù)查看系統(tǒng)進程石景,可疑進程還遠遠不止這些劈猿,這不拙吉,又發(fā)現(xiàn)了一個可疑進程,如下圖:

/usr/bin/dpkgd/ps -ef這個進程很明顯是個變種的病毒揪荣,因為我們指定ps命令肯定不會存在/usr/bin/dpkgd目錄下筷黔,既然說到/usr/bin/dpkgd目錄,那么就到這個目錄下去看個究竟仗颈,繼續(xù)上圖:

又發(fā)現(xiàn)一些隱藏的病毒文件了佛舱,比如lsof ps netstat ss,這些都是變種病毒文件挨决,主要用來替換系統(tǒng)中的一些命令请祖,當看到netstat這個命令時,基本明白了這個病毒的意圖了脖祈,它無非就是發(fā)流量包损拢,造成網(wǎng)絡癱瘓,病毒替換了系統(tǒng)原有的包撒犀,換成自身經(jīng)過改寫的命令包福压,這樣,既隱藏了自己的行為或舞,又不會對服務器造成太大影響荆姆,但是它的真正目的就是用咱們的機器做肉雞啊。真是用心良苦映凳。

記錄這個線索胆筒,然后繼續(xù)通過dmesg命令查看系統(tǒng)信息,看看有沒有異常诈豌,上圖:

果然有異常信息仆救,nf_conntrack是iptables里面的連接跟蹤模塊,它通過哈希表記錄已建立的連接矫渔,包括其他機器到本機彤蔽、本機到其他機器、本機到本機的連接庙洼,出現(xiàn)dropping packet棉圈,就是由于服務器訪問量大钧忽,內核netfilter模塊conntrack相關參數(shù)配置不合理靖秩,導致新連接被drop掉腮敌。查看nf_conntrack_max,看看設置多大:

[root@server~]# cat /proc/sys/net/netfilter/nf_conntrack_max2097152

nf_conntrack_max設置200多萬石咬,已經(jīng)設置很大了揩悄,看來不是這個參數(shù)設置導致的。估計應該是上面的一些異常進程導致的鬼悠。

三删性、開始干活

通過上面發(fā)現(xiàn)的幾個線索棉饶,為了能快速解決問題,先嘗試關閉或刪除進程和文件镇匀,然后看看網(wǎng)絡是否能夠恢復正常,一不做二不休袜啃,開整吧!

第一步汗侵,先刪除/usr/bin/.sshd文件,然后關閉此文件對應的進程群发,看下面的圖:

這樣先刪除進程對應的文件晰韵,然后kill掉.sshd進程,那么熟妓,進程就無法重新啟動了雪猪。

第二步,刪除/usr/bin/dpkgd目錄下所有的變種病毒文件起愈,同時刪除/usr/bin/apgffcztwi文件只恨,寫個腳本,批量刪除如下:

執(zhí)行刪除后抬虽,發(fā)現(xiàn)ps命令不好使了官觅,可惡啊,不過阐污,這點問題休涤,難不倒俺,重新安裝一個ps命令即可笛辟,或者從別的機器拷貝一個ps命令過來功氨,這里來個干脆的,重新安裝一個手幢,安裝過程看下圖:

大家能看到這個操作吧捷凄,先看看ps命令屬于按個rpm包,然后yum在線安裝一個新的包即可围来。

這個procps包安裝完成后纵势,ps命令又可以使用了,現(xiàn)在通過ps命令查看到的系統(tǒng)信息管钳,才是真實的系統(tǒng)啊钦铁,剛才那個ps命令是加殼的,屏蔽了很多系統(tǒng)中黑暗的勾當才漆。

還在興奮中牛曹,接著執(zhí)行了一個lsof命令,又發(fā)現(xiàn)新情況了:

剛剛刪除了/usr/bin/apgffcztwi文件醇滥,但是又自動生成了新的文件黎比,/usr/bin/fhmlrqtqvz超营,并且還有一個文件/usr/bin/fgqnvqzzck已經(jīng)被刪除了,但是進程仍然存在阅虫,那個deleted就是文件的狀態(tài)演闭。并且新生成的文件,仍然是10個字符颓帝。

看來是低估這個病毒程序了米碰,繼續(xù)往下深究!

考慮到會自動產(chǎn)生病毒文件购城,感覺應該是linux下的crontab完成的工作吕座,那么是不是病毒在crontab里面做了手腳,去看看就知道了瘪板。

切換到系統(tǒng)的/var/log/cron目錄下(此目錄記錄了linux下所有用戶的計劃任務信息吴趴,以crontab -u -e方式寫入的計劃任務都會在此目錄下生成文件),沒看到任何文件侮攀,看來不是用戶級別的crontab在作怪锣枝,那么再看看系統(tǒng)級別的crontab,就是/etc/crontab文件兰英,貼圖如下:

看最后一行惊橱,發(fā)現(xiàn)了一個定時任務,此任務每三分鐘執(zhí)行一次箭昵,任務對應的是個kill.sh腳本税朴,找到腳本就好辦了,看看這個腳本的內容:

腳本很簡單家制,但是卻是個重大發(fā)現(xiàn)正林,此腳本會自動重啟網(wǎng)卡,然后執(zhí)行一個cp操作颤殴,將/lib/libkill.so文件復制一個/lib/libkill.so.6文件觅廓,然后執(zhí)行這個文件。這個文件是個二進制的文件涵但,無法查看內容杈绸,猜想應該就是自動生成那個十個字符文件的病原體。

這里看到的病原體名稱是libkill.so矮瘟,它的名稱不是固定的瞳脓,常見的還有類似libudev.so、/lib/udev/udev等類似名稱澈侠,但是作用應該都是一樣的劫侧。

到這里為止,思路基本清楚了,大概理了一下思路烧栋,這個×××執(zhí)行的原理應該是這樣的:libkill.so是所有進程的病原體写妥,通過kill.sh腳本每隔3分鐘自動檢測一次,如果發(fā)現(xiàn)病毒程序不存在了审姓,就從病原體復制一份兒到/lib/libkill.so.6珍特,病毒副本/lib/libkill.so.6執(zhí)行后,就會生成一個隨機命名(10個字符)的程序魔吐,放到/usr/bin/扎筒、/boot,/etc/init.d等目錄下画畅。 同時還修改了自啟動配置chkconfig –add xxx,修改自啟動項/etc/rc.local等宋距,讓×××程序開機自動運行轴踱。

這就是為什么無法殺掉病毒進程的原因。

至此谚赎,病毒運行的原理已經(jīng)清晰了淫僻,下面的工作就是清除病毒程序。

四壶唤、清除病毒

清除病毒也是需要技巧的雳灵,如果直接刪除kill.sh文件,你會發(fā)現(xiàn)闸盔,這個文件又自動生成了悯辙,這就是病毒程序在起作用。

那么怎么徹底清除呢迎吵,可通過下面方式實現(xiàn):

通過top或者lsof命令可以獲取那個自動啟動的×××進程的pid為17161躲撰,然后執(zhí)行如下操作:

kill -STOP 17161

注意,這里-STOP選項的含義击费,不是關閉這個進程拢蛋,而是停止這個進程。進程停止執(zhí)行后蔫巩,進程仍然存在谆棱,這樣就繞過了病毒進程就監(jiān)測。緊接著圆仔,再來點硬貨:

chattr +i /etc/crontab

這樣垃瞧,先鎖定crontab文件,不讓任何進程寫入數(shù)據(jù)坪郭。

下面就可以安靜的刪除之前的那些病毒文件了皆警。

先刪除這個kill.sh文件,讓他不再定期執(zhí)行:

[root@server ~]# ll /etc/cron.hourly/kill.sh

接著刪除/usr/bin下和/etc/init.d下的所有可疑文件:

比如上圖中截粗,第1信姓、2鸵隧、4、5意推、6都是可疑文件豆瘫,隨便看一個文件:

可以看到,這個文件又指向了/root/xd文件菊值,而這個xd文件肯定也是病毒文件外驱,需要刪除。

最后腻窒,刪除病原體文件:

[root@server ~]# rm -rf /lib/libkill.so.6

[root@server ~]# rm -rf /lib/libkill.so

最最后昵宇,別忘了,還要清理現(xiàn)場儿子,關閉一直處于停止狀態(tài)的那個pid為17161的病毒進程:

[root@server ~]# kill -9 17161

現(xiàn)在就可以直接執(zhí)行kill -9的操作了瓦哎,因為病原體已經(jīng)被刪除,定時任務文件也被鎖定柔逼,定時執(zhí)行的腳本也被刪除蒋譬,所以這個病毒再無回天之力了。

最后愉适,再看下清除病毒后的系統(tǒng)狀態(tài):

整個世界清靜了犯助。

但是,但是维咸,好像我又發(fā)現(xiàn)了什么剂买,是的,我發(fā)現(xiàn)了一個redis進程在運行癌蓖。瞬間雷恃,明白了這個事件發(fā)生的原因了:估計是Redis未授權訪問漏洞導致的。

經(jīng)過驗證费坊,確實如此倒槐,服務器上的redis沒有密碼驗證機制,可直接登錄附井,不過這不算什么讨越,最悲催的是redis的6379端口默認對全網(wǎng)開放。永毅。把跨。。沼死。

這里科普下什么是十字叉病毒着逐,它是一個或者多個十位隨機字母組成的木&馬病毒進程,主要目的消耗服務各項資源。屬于一種掛馬耸别,此病毒會自我保護和自我恢復健芭。主要特征是會往外發(fā)送大量數(shù)據(jù)包。

最最最最后秀姐,引用別人一句話慈迈,安全無小事,防微杜漸是關鍵。做運維的要牢記笆∮小痒留!

彩蛋來啦

作為51CTO的特級講師和專家博主,我將多年來在新浪網(wǎng)和阿里云擔任系統(tǒng)架構師的經(jīng)驗蠢沿,融合進51CTO訂閱專欄《輕松玩轉ELK海量可視化日志分析系統(tǒng)》

51CTO社區(qū)13周年慶期間(2018.8.15-2018.8.31)購買兩個專欄伸头,還有自選圖書免費領取>>>圖書挑選傳送門

能學到什么技能

1、結合企業(yè)真實項目需求舷蟀,分析ELK架構的應用場景和價值?

2恤磷、動手實戰(zhàn)構建ELK 海量日志分析平臺?

3、利用Logstash實時采集不同項目系統(tǒng)的海量信息雪侥,對海量數(shù)據(jù)進行過濾和解析碗殷,同時可以自定義匹配模式解析項目中的復雜結構日志精绎,并按日志類別和日期回滾輸出到ElasticSearch集群建立索引?

4速缨、利用Kibana 實現(xiàn)海量日志的分析查詢、數(shù)據(jù)可視化及監(jiān)控預警 代乃。

5旬牲、Logstash核心配置語法以及Filebeat組件的靈活使用

6、Logstash Input插件搁吓、Filter插件原茅、Output插件應用詳解

7、實戰(zhàn):Logstash 實現(xiàn)海量日志采集堕仔、過濾擂橘、解析、輸出

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末摩骨,一起剝皮案震驚了整個濱河市通贞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恼五,老刑警劉巖昌罩,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異灾馒,居然都是意外死亡茎用,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轨功,“玉大人旭斥,你說我怎么就攤上這事『幌剑” “怎么了琉预?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蒿褂。 經(jīng)常有香客問我圆米,道長,這世上最難降的妖魔是什么啄栓? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任娄帖,我火速辦了婚禮,結果婚禮上昙楚,老公的妹妹穿的比我還像新娘近速。我一直安慰自己,他們只是感情好堪旧,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布削葱。 她就那樣靜靜地躺著,像睡著了一般淳梦。 火紅的嫁衣襯著肌膚如雪析砸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天爆袍,我揣著相機與錄音首繁,去河邊找鬼。 笑死陨囊,一個胖子當著我的面吹牛弦疮,可吹牛的內容都是我干的。 我是一名探鬼主播蜘醋,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼胁塞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了压语?” 一聲冷哼從身側響起啸罢,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎无蜂,沒想到半個月后伺糠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡斥季,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年训桶,在試婚紗的時候發(fā)現(xiàn)自己被綠了累驮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡舵揭,死狀恐怖谤专,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情午绳,我是刑警寧澤置侍,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站拦焚,受9級特大地震影響蜡坊,放射性物質發(fā)生泄漏。R本人自食惡果不足惜赎败,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一秕衙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧僵刮,春花似錦据忘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至窍仰,卻和暖如春汉规,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辈赋。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工鲫忍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留膏燕,地道東北人钥屈。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像坝辫,于是被迫代替她去往敵國和親篷就。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內容