解決挖礦病毒佔用高cpu(sysupdate、networkservice)

我也是有一段時間服務器變的很卡,那時我還以爲是我自己的軟件裝太多導致的問題,不看不知道,看了嚇一跳,服務器已經被攻擊了,接下來,我來分享下如何查找和解決這個病毒。

一、找出病毒

當發現服務器卡的時候,我們可以採用top命令,如下顯示

 

image.png

我們注意看以上這幾個進程,沒稍加註意的話,我們還以爲這幾個是正常的進程,爲啥呢?

1、畢竟這幾個的user是apache、www、nobody,因爲我的web站點,文件目錄是www目錄,所以這個地方很容易被誤認爲就是我們的站點目錄,而且apache本來是web服務,它取成了這個名詞,也容易混淆我們的視野。
2、後面的command名稱取成了networkservice 和sysupdate,名稱很像我們的系統進程,
3、每個進程的cpu佔用都比較小,平均差不多20%個cpu,可是這麼多進程加起來,CPU佔用就爆炸了,將近100%了

從上面這個地方可以發現這個攻擊者很聰明,懂得用這種名稱來混淆我們的視野

二、確認病毒

從上面的top命令知道了這幾個佔用比較大的進程號,我們可以根據其中的某個進程,比如7081入手,來查找其他關聯的進程,使用以下命令,如下圖所示

 

systemctl status 7801

 

進入到/etc目錄下,
我們可以看到有sysupdate、networkservice、sysguard三個文件,這三個文件都是二進制文件,這三個應該就是挖礦的主程序和守護程序。還有一個update.sh文件,這應該是對挖礦病毒升級用的。這個update.sh怎麼找出來的呢,其實是通過定時程序裏面的cron找出來的。

再進入到 /var/spool/cron看下定時程序
如下圖所示

 

 

可以看到這幾個文件名稱,和剛剛佔用cpu高的進程user,名稱是一樣的

這樣就可以確認的確是病毒攻擊了服務器

三、解決

1、刪除定時程序

 

rm -rf  apache
rm -rf  nobody
rm -rf  root
rm -rf  www

2、殺掉進程,並刪除文件
以下這幾張圖片的進程id,分別進行kill殺掉

 

然後刪除/etc下面的 sysupdate、networkservice、sysguard、update.sh和config.json幾個文件
這時候,你可能會發現無法刪除,因爲病毒使用了chattr +i 命令,使用如下命令即可刪除

 

chattr -i sysupdate
rm -rf sysupdate

每個無法刪除的文件,都執行如上命令,即可實現刪除文件

3、/root/.ssh/authorized_keys 刪除
可能攻擊者已經在這裏配置了登陸,攻擊者可以隨便登陸你的服務器,你這裏要把祕鑰也修改下

經過這些處理後,可以發現我們的服務器已經不再卡了,如下,沒有佔用高的程序了

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章