linux服務器中病毒后的清除處理
之前看到公司同事在部署服務器的時候,發現中了挖礦病毒,很是惱火。因為我平時很少接觸服務器,一般都是部署項目,配置域名就完事。所以遇到這種情況,只能在一旁看着干着急。后來在網上查閱了很多資料,現決定來整理一下,下次如果遇到服務器中病毒的情況,可以拿來參考一下。
一、服務器為什么會中病毒?
1)服務器中病毒,其實是因為黑客的入侵。入侵者的每一次入侵幾乎都是從掃描開始的,掃描軟件首先會判斷遠程計算機是否存在,接着對存在的遠程計算機進行掃描,探測其開放的端口。入侵者通過掃描的結果可以確定目標主機打開的端口、服務、以及存在的各種漏洞等信息,然后實施攻擊。
2)最普遍的情況應該就是服務器被掛載木馬病毒用以挖礦(比特幣/門羅幣...)。因為控制別人的電腦挖礦,成本為零。比如通過redis 6379端口,如果賬號密碼太簡單或者沒有設置密碼,攻擊者可能通過提權,獲取到root的權限。然后在服務器中植入一系列的挖礦病毒。
二、症狀表現
服務器CPU資源使用一直處於100%的狀態或者更高,連接服務器的時候明顯感覺到消耗的時間比以往要久。Kill該進程以后還會更換端口,很快就又被創建出來了。
三、排查方法
1、通過top命令查看,發現可疑進程比如XX
2、查看進程:使用 ps -ef | grep XX 命令查看pid
1)使用命令ls -l proc/{進程號}/exe獲取文件的絕對路徑。下載下來,上傳到VirusTotal,如果界面有相關的病毒顯示信息。那就是病毒實錘了。如果沒有,只能說明還沒有其他用戶提交該種類型病毒。
find $path -ctime -30 print #找到最近一段時間被修改的文件列表
2)直接 kill -9 pid(進程號)並刪除 /tmp/XX執行文件。如果,沒有過多久,進程又運行了,這時就應該想到,XX 有守護程序或者有計划任務。通過 crontab -l 查看是否有可疑的計划任務。
3)使用 systemctl status pid(進程號) 發現 XX的守護進程。kill 掉 XX 守護進程 kill -9 pid1 pid2...,再 killall -9 XX挖礦病毒 。
4)進入/tmp目錄(一般挖礦病毒的執行目錄都在這里)。執行程序 rm -f /tmp/XX,如果刪除的過程中,發現提示Operation not permitted(沒有權限,無法刪除),應該是入侵者使用了chattr命令將文件鎖定了。這個時候我們使用命令: chattr -i 文件名 即可正常刪除。
補充一下:lsattr可用來查看文件的屬性:lsattr filename。如果文件屬性中有i與a,或者有其中的一個可以使用chattr去掉這屬性:chattr -ia filename 或者chatter -i filename
5)在/etc/目錄下,將/etc/update.sh 也一並刪除
6)檢查是否還有免密登錄的后門文件,將/root/.ssh/authorized_keys 也一並刪除
7)檢查定時任務:crontab -l
將可疑任務清除或者停止:crontab -r 或者service crontab stop
cat /var/spool/cron/root 檢查清除
8)SSH秘鑰刪除
攻擊者可能在/root/.ssh/里面留他們的秘鑰,所以我們要清理掉,重新生成秘鑰。
9)查看賬號文件是否被修改
查看/root/.ssh/authotrized_keys,黑客就是通過ssh授權登錄的,因此需要清除未知的賬號信息,不過一般文件會被加上ia權限。上文已經講過chattr命令的使用。
查看:lsattr /root/.ssh/authotrized_keys
解鎖:chattr -ia /root/.ssh/authotrized_keys
編輯文件可修改:chmod 600 /root/.ssh/authotrized_keys
10)有的情況,還需要要刪除鏈接文件,或者病毒啟動文件。這個到時候再具體問題具體分析吧。檢查/etc/init.d目錄下的文件
四、檢查
將服務器重啟,檢查是否還有異常
1)top查看以及使用 ps -ef | grep XX 命令查看
2)通過find / -name "*XX*" 命令搜索是否還有 XX文件
3)查看 Linux ssh 登陸審計日志。Centos 與 RedHat 審計日志路徑為 /var/log/secure,Ubuntu 與 Debian 審計日志路徑為 /var/log/auth.log。
4)檢查 crontab 計划任務是否有可疑任務
五、后期防護
1、啟用ssh公鑰登陸,禁用密碼登陸。
2、雲主機:完善安全策略,入口流量,一般只開放 80、443 端口就行,出口流量默認可以不限制,如果有需要根據需求來限制。物理機:可以通過硬件防火牆或者機器上iptables 來開放出入口流量規則
3、本機不是直接需要對外提供服務,可以拒絕外網卡入口所有流量,通過 jumper 機器內網登陸業務機器。
4、有能力的話可以搭建安全掃描服務,定期檢查機器上漏洞並修復。
5、安裝Linux殺毒軟件clamav:yum install clamav
1)在線升級病毒庫:執行命令 freshclam或者 freshclam --verbose
2)掃描所有用戶的主目錄就使用命令 clamscan -r /home
3)掃描計算機上的所有文件並且顯示所有的文件的掃描結果,就使用 clamscan -r /
grep Infected /tmp/all.log #查看被感染文件數量
grep -i found /tmp/all.log #查看被感染的文件
4)掃描計算機上的所有文件並且顯示有問題的文件的掃描結果,就使用clamscan -r --bell -i /
/usr/local/clamav/bin/clamscan -r --remove(查殺當前目錄並刪除感染的文件)
/usr/local/clamav/bin/clamscan -r --bell -i / (掃描所有文件並且顯示有問題的文件的掃描結果)
>其他參數
> -r/--recursive[=yes/no] 所有文件
> --log=FILE/-l FILE 增加掃描報告
> # clamscan -l /var/log/clamscan.log /
> --move [路徑] 移動病毒文件至..
> --remove [路徑] 刪除病毒文件
> --quiet 只輸出錯誤消息
> --infected/-i 只輸出感染文件
> --suppress-ok-results/-o 跳過掃描OK的文件
> --bell 掃描到病毒文件發出警報聲音
> --unzip(unrar) 解壓壓縮文件掃描
--掃描根目錄下文件,並指定日志文件:/var/log/clamscan.log
clamscan -r -l /var/log/clamscan.log / &
6、redis最好關掉外網訪問權限,或者是修改默認端口。
參考鏈接:
https://msd.misuland.com/pd/3691885202524605942?page=1
https://www.cnblogs.com/ushowtime/p/11628002.html
https://blog.csdn.net/heian_99/article/details/105247415