CPU深夜狂飆,一幫大佬都傻眼了···

本故事根據上次的挖礦病毒事件改編nginx

傍晚時分,警報聲乍起,整個Linux帝國都陷入了驚恐之中。
web

安所有長迅速召集你們商討應對之策。redis

「諸位,突發狀況,CPU佔用率忽然飆升,而且長時間沒有降下來的趨勢,CPU工廠的阿Q向咱們表達了強烈抗議」編程

這時,一旁的kill命令說到:「部長莫急,叫top老哥看一下誰在佔用CPU,拿到進程號pid,我把他幹掉就行了」安全

此言一出,在座的大夥都點頭讚許,驚恐之色稍解。微信

top命令站了起來,面露得意之色,說到:「你們請看好了」,說完,打印出了當前的進程列表:網絡

衆人瞪大了眼睛,瞅了半天,也沒看出哪一個進程在瘋狂佔用CPU,top老哥這下尷尬了。app

這時,一旁的ps命令湊了上來,「讓我來試試」curl

ps命令深吸了一口氣,也打印出了進程列表。socket

然而,依舊沒有任何可疑的進程。

「你倆怎麼回事,爲何沒有?」,安所有長有些不悅。

「部長,我倆都是遍歷的 /proc/ 目錄下的內容,按理說,全部的進程都會在這裏啊,我也想不通爲何找不到···」,top老哥委屈的說到。

「遍歷,怎麼遍歷的?」

「就是經過opendir/readdir這些系統調用函數來遍歷的,這都是帝國提供的標準接口,應該不會出錯,除非···」,說到這,top打住了。

「除非什麼?」

「除非這些系統調用把那個進程給過濾掉了,那樣的話我就看不到了,難道有人潛入帝國內核,篡改了系統調用?」

安所有長瞪大了眼睛,真要如此,那但是大事啊!

眼看部長急的團團轉,一旁的netstat起身說到:「部長,我以前結識一好友,名叫unhide,捉拿隱藏進程是他的拿手好戲,要不請他來試試?」

部長大喜,「還猶豫什麼,趕忙去請啊!」

「已經聯繫了,隨後就到」

部長看着netstat,說到:「正好,趁着這個功夫,你先來看看如今有沒有對外可疑的鏈接」

netstat點了點頭,隨後打印出了全部的網絡鏈接信息:

「來來來,大家挨個來認領,看看都是誰的」,部長說到。

「這個80端口的服務是個人」,nginx站了出來。

「這個6379端口服務是個人」,redis也站了出來。

「這個,9200是個人」,elasticsearch說到。

「3306那個是個人」

「8182是個人」

······

一陣嘈雜後,只剩下一個鏈接無人認領:

tcp   0    0 192.168.0.4:51854      88.99.193.240:7777    ESTABLISHED  -

「部長,這八成就是躲在暗處那傢伙的鏈接」,netstat說到。

安所有長思考片刻問到:「curl何在?來訪問下這個IP地址,探探對方虛實」

curl站了出來,「來了來了」

curl當心翼翼的發送了一個HTTP請求過去,對方居然回信了:

一行醒目的mining poll出如今你們面前。

「挖,挖礦病毒!」,top老哥叫了出來。

這一下,在場全部的人都倒吸了一口涼氣。

部長趕忙叫防火牆firewall配置了一條規則,將這條鏈接掐斷。

就在這時,unhide走了進來。

簡單瞭解了狀況後,unhide拍拍胸脯說到:「這事交給我了,必定把這傢伙給揪出來」

隨後,unhide一陣操做猛如虎,輸出了幾行信息:

Found HIDDEN PID 13053
    Executable: "/usr/bin/pamdicks"
    $USER=root

Found HIDDEN PID 13064
    Executable: "/usr/bin/pamdicks"
    $USER=root

衆人皆湊了過來,瞪大了眼睛,unhide老哥果真不是蓋的,果然發現了幾個可疑分子。

top有點表示懷疑,問到:「敢問兄臺用的什麼路數,爲什麼我等都看不到這幾個進程的存在?」

unhide笑道:「沒什麼神祕的,其實我也是遍歷 /proc/ 目錄,和大家不一樣的是,我不用readdir,而是從進程id最小到最大,挨個訪問 /proc/$pid 目錄,一旦發現目錄存在並且不在ps老哥的輸出結果中,那這就是一個隱藏進程。」

一旁的ps笑道:「原來還有個人功勞吶」

「找到了,就是這傢伙!」,netstat大聲說到。

「你怎麼這麼確定?」部長問到。

「你們請看,進程打開的文件都會在 /proc/pid/fd 目錄下,socket也是文件,我剛看了一下,這個進程恰好有一個socket。再結合/proc/tcp信息,能夠肯定這個socket就是目標端口號7777的那一條!」

「好傢伙!好傢伙」,衆人皆嘖嘖稱讚。

「還等什麼,快讓我來幹掉它吧!」,kill老哥已經按捺不住了。

「讓我來把它刪掉」,rm小弟也磨刀霍霍了。

部長搖頭說到:「且慢,cp何在,把這傢伙先備份到隔離目錄去,以待秋後算帳」

cp拷貝完成,kill和rm兩位一塊兒上,把背後這傢伙就地正法了。

top趕忙查看了最新的資源使用狀況,驚喜的歡呼:「好了好了,CPU佔用率總算降下去了,真是大快人心」

天色已然不早,沒多久,衆人前後離開,帝國恢復了往日的平靜。

不過,安所有長的臉上,仍然是一臉愁容。

「部長,病毒已經被清除,爲什麼仍是悶悶不樂呢?」,助理問到。

「病毒雖已清除,但殊不知這傢伙是如何闖入的,還有背後暗中保護隱藏它的人又是誰,這實讓我在很憂心啊」

不知不覺夜已深,帝國安全警報忽然再一次響了起來。

「這又是怎麼回事?」,部長厲聲問到。

「部長,rm那小子是假冒的,今天他騙了咱們,病毒根本沒刪掉,又捲土重來了!」

部長望向遠處的天空,CPU工廠門口的風扇又開始瘋狂地轉了起來···



今天的文章就完啦,下面說一件大大大事兒···

掘金網的2020年度創做者評選活動開始了,2020這一年,軒轅創做了100+原創文章,超過40W+字,看到這裏的朋友順手幫我投一票,謝謝你們了🙏


投票入口:




不想識別二維碼的朋友,點擊下面的閱讀原文也能一鍵直達哦~


PS:上面的連接能夠投一次,掘金APP裏還能夠投一次,分享連接給文件傳輸助手刷新後還能再投一次


往期TOP5文章

那天,我被拉入一個Redis羣聊···

CPU明明8個核,網卡爲啥拼命折騰一號核?

一個故事看懂Docker容器技術

主板上來了一個新鄰居,CPU慌了!

哈希表哪家強?幾大編程語言吵起來了!


本文分享自微信公衆號 - 編程技術宇宙(xuanyuancoding)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索