本文來自微信公眾號(hào):編程技術(shù)宇宙 (ID:xuanyuancoding),作者:軒轅之風(fēng)
本故事根據(jù)上次的挖礦病毒事件改編
傍晚時(shí)分,警報(bào)聲乍起,整個(gè) Linux 帝國都陷入了驚恐之中。
安全部長迅速召集大家商討應(yīng)對(duì)之策。
“諸位,突發(fā)情況,CPU 占用率突然飆升,并且長時(shí)間沒有降下來的趨勢(shì),CPU 工廠的阿 Q 向我們表達(dá)了強(qiáng)烈抗議”
這時(shí),一旁的 kill 命令說到:“部長莫急,叫 top 老哥看一下誰在占用 CPU,拿到進(jìn)程號(hào) pid,我把他干掉就好了”
此言一出,在座的大伙都點(diǎn)頭贊許,驚恐之色稍解。
top 命令站了起來,面露得意之色,說到:“大家請(qǐng)看好了”,說完,打印出了當(dāng)前的進(jìn)程列表:
眾人瞪大了眼睛,瞅了半天,也沒看出哪個(gè)進(jìn)程在瘋狂占用 CPU,top 老哥這下尷尬了。
這時(shí),一旁的 ps 命令湊了上來,“讓我來試試”
ps 命令深吸了一口氣,也打印出了進(jìn)程列表。
然而,依舊沒有任何可疑的進(jìn)程。
“你倆怎么回事,為什么沒有?”,安全部長有些不悅。
“部長,我倆都是遍歷的 /proc/ 目錄下的內(nèi)容,按理說,所有的進(jìn)程都會(huì)在這里啊,我也想不通為什么找不到???”,top 老哥委屈的說到。
“遍歷,怎么遍歷的?”
“就是通過 opendir/readdir 這些系統(tǒng)調(diào)用函數(shù)來遍歷的,這都是帝國提供的標(biāo)準(zhǔn)接口,應(yīng)該不會(huì)出錯(cuò),除非???”,說到這,top 打住了。
“除非什么?”
“除非這些系統(tǒng)調(diào)用把那個(gè)進(jìn)程給過濾掉了,那樣的話我就看不到了,難道有人潛入帝國內(nèi)核,篡改了系統(tǒng)調(diào)用?”
安全部長瞪大了眼睛,真要如此,那可是大事??!
眼看部長急的團(tuán)團(tuán)轉(zhuǎn),一旁的 netstat 起身說到:“部長,我之前結(jié)識(shí)一好友,名叫 unhide,捉拿隱藏進(jìn)程是他的拿手好戲,要不請(qǐng)他來試試?”
部長大喜,“還猶豫什么,趕緊去請(qǐng)??!”
“已經(jīng)聯(lián)系了,隨后就到”
部長看著 netstat,說到:“正好,趁著這個(gè)功夫,你先來看看現(xiàn)在有沒有對(duì)外可疑的連接”
netstat 點(diǎn)了點(diǎn)頭,隨后打印出了所有的網(wǎng)絡(luò)連接信息:
“來來來,你們挨個(gè)來認(rèn)領(lǐng),看看都是誰的”,部長說到。
“這個(gè) 80 端口的服務(wù)是我的”,nginx 站了出來。
“這個(gè) 6379 端口服務(wù)是我的”,redis 也站了出來。
“這個(gè),9200 是我的”,elasticsearch 說到。
“3306 那個(gè)是我的”
“8182 是我的”
······
一陣嘈雜后,只剩下一個(gè)連接無人認(rèn)領(lǐng):
tcp 0 0 192.168.0.4:51854 88.99.193.240:7777 ESTABLISHED -
“部長,這八成就是躲在暗處那家伙的連接”,netstat 說到。
安全部長思考片刻問到:“curl 何在?來訪問下這個(gè) IP 地址,探探對(duì)方虛實(shí)”
curl 站了出來,“來了來了”
curl 小心翼翼的發(fā)送了一個(gè) HTTP 請(qǐng)求過去,對(duì)方竟然回信了:
一行醒目的 mining poll 出現(xiàn)在大家面前。
“挖,挖礦病毒!”,top 老哥叫了出來。
這一下,在場(chǎng)所有的人都倒吸了一口涼氣。
部長趕緊叫防火墻 firewall 配置了一條規(guī)則,將這條連接掐斷。
就在這時(shí),unhide 走了進(jìn)來。
簡(jiǎn)單了解了情況后,unhide 拍拍胸脯說到:“這事交給我了,一定把這家伙給揪出來”
隨后,unhide 一陣操作猛如虎,輸出了幾行信息:
Found HIDDEN PID 13053 Executable: "/usr/bin/picks" $USER=root Found HIDDEN PID 13064 Executable: "/usr/bin/picks" $USER=root
眾人皆湊了過來,瞪大了眼睛,unhide 老哥果然不是蓋的,果真發(fā)現(xiàn)了幾個(gè)可疑分子。
top 有點(diǎn)表示懷疑,問到:“敢問兄臺(tái)用的什么路數(shù),為何我等都看不到這幾個(gè)進(jìn)程的存在?”
unhide 笑道:“沒什么神秘的,其實(shí)我也是遍歷 /proc/ 目錄,和你們不同的是,我不用 readdir,而是從進(jìn)程 id 最小到最大,挨個(gè)訪問 /proc/$pid 目錄,一旦發(fā)現(xiàn)目錄存在而且不在 ps 老哥的輸出結(jié)果中,那這就是一個(gè)隱藏進(jìn)程。”
一旁的 ps 笑道:“原來還有我的功勞吶”
“找到了,就是這家伙!”,netstat 大聲說到。
“你怎么這么肯定?”部長問到。
“大家請(qǐng)看,進(jìn)程打開的文件都會(huì)在 /proc/pid/fd 目錄下,socket 也是文件,我剛看了一下,這個(gè)進(jìn)程剛好有一個(gè) socket。再結(jié)合 / proc / tcp 信息,可以確定這個(gè) socket 就是目標(biāo)端口號(hào) 7777 的那一條!”
“好家伙!好家伙”,眾人皆嘖嘖稱贊。
“還等什么,快讓我來干掉它吧!”,kill 老哥已經(jīng)按捺不住了。
“讓我來把它刪掉”,rm 小弟也磨刀霍霍了。
部長搖頭說到:“且慢,cp 何在,把這家伙先備份到隔離目錄去,以待秋后算賬”
cp 拷貝完成,kill 和 rm 兩位一起上,把背后這家伙就地正法了。
top 趕緊查看了最新的資源使用情況,驚喜的歡呼:“好了好了,CPU 占用率總算降下去了,真是大快人心”
天色已然不早,沒多久,眾人先后離開,帝國恢復(fù)了往日的平靜。
不過,安全部長的臉上,仍然是一臉愁容。
“部長,病毒已經(jīng)被清除,為何還是悶悶不樂呢?”,助理問到。
“病毒雖已清除,但卻不知這家伙是如何闖入的,還有背后暗中保護(hù)隱藏它的人又是誰,這實(shí)讓我在很憂心啊”
不知不覺夜已深,帝國安全警報(bào)突然再一次響了起來。
“這又是怎么回事?”,部長厲聲問到。
“部長,rm 那小子是假冒的,今天他騙了我們,病毒根本沒刪掉,又卷土重來了!”
部長望向遠(yuǎn)處的天空,CPU 工廠門口的風(fēng)扇又開始瘋狂地轉(zhuǎn)了起來???
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。