Linux服務器中了病毒后的清理方法

病毒的基礎排查

1. 檢查計劃任務

  • 黑客入侵服務器后,為了讓病毒腳本持續執行,通常會在計劃任務配置文件里面寫入定時執行的腳本任務。
檢查命令說明
ls -l /var/spool/cron/*查看用戶級計劃任務配置。有的人喜歡用 crontab -l 命令來排查,這樣做不全面,因為 crontab -l 命令只是查看當前登錄用戶的計劃任務,無法查看其他用戶的計劃任務。而用左側這個命令,可以查看所有用戶設置的計劃任務。
ls -l /etc/cron.d/如果發現該目錄下存在未見過的腳本要格外留意。
ls -l /etc/cron.hourly/該目錄下的腳本會每小時執行一次。
ls -l /etc/cron.daily/該目錄下的腳本會每天執行一次。
ls -l /etc/cron.weekly/該目錄下的腳本會每周執行一次。
ls -l /etc/cron.mouthly/該目錄下的腳本會每月執行一次。
cat /etc/crontab查看系統級計劃任務配置。

2. 解鎖系統文件

檢查命令說明
chattr -iRa /usr/ /etc/黑客入侵系統后,經常會執行chattr命令為惡意腳本文件加上隱藏屬性,從而導致我們無法修改、刪除這些惡意腳本。此時需要用chattr命令先去掉這些隱藏屬性,然后再修改、刪除。在這里插入圖片描述

3. 檢查開機啟動文件

檢查命令說明
cat /etc/rc.d/rc.local由于系統會在開機時自動執行/etc/rc.d/rc.local文件里面的命令,因此也常常被黑客利用。

4. 檢查開機啟動服務

檢查命令說明
ls -l /etc/systemd/system/ 和 ls -l /etc/systemd/system/multi-user.target.wants/黑客通常會把惡意命令做成一個開機啟動服務項,讓其隨著系統重啟自動執行。我們一定要仔細觀察這兩個目錄下面的每個啟動項。
ls -lA /etc/rc.d/init.d/這個目錄有時也會被黑客放入惡意腳本,也記得查看。

5. 檢查環境變量文件

檢查命令說明
cat /etc/profile 和 cat /etc/bashrc 和 cat ~/.bash_profile 和 cat ~/.bash_login 和 cat ~/.bashrc這些文件都是系統和用戶的環境變量配置文件,黑客有時會在里面寫入惡意命令,當系統加載環境變量配置文件時,惡意命令也會隨之運行。
cat /etc/ld.so.preload通過配置該文件,可以讓程序在運行之前,優先加載某些動態鏈接庫。部分木馬正是利用此文件的功能,修改該了文件,在里面添加惡意so文件,從而達到了隱藏挖礦進程的目的。這也就是為什么服務器中毒了,CPU使用率很高,但是卻看不到占用CPU高的進程的原因。 默認該文件是空的,如果發現該文件里面有內容,則可能是黑客植入的,我們需要把該文件中列出的對應路徑下的so文件全部刪除掉,最后再清空ld.so.preload文件即可。 在這里插入圖片描述

6. 檢查二進制命令文件

檢查命令說明
ls -Athl /usr/bin 和 ls -Athl /usr/sbin根據修改時間來查看二進制命令,新文件在最前,舊文件在后。通常黑客入侵服務器后,會植入一些二進制命令,這些命令文件的日期較新,我們可以根據這個特征,把新文件優先列出來,仔細辨別是否為惡意命令。
ls -AShl /usr/bin 和 ls -AShl /usr/sbin根據文件大小來查看二進制命令,大文件在最前,小文件在后。通常黑客入侵服務器后,會植入一些二進制命令,這些二進制命令的體積往往比較大,遠超過系統命令的大小。我們可以根據這個特征,把大文件優先列出來,仔細辨別是否為惡意命令。
find /usr/bin/ -iname “." -ls 和 find /usr/sbin/ -iname ".” -ls列出/usr/bin/、/usr/sbin/等目錄下的隱藏文件。黑客有時會把惡意命令進行隱藏,我們可以通過左側這兩個查找命令,把隱藏文件全部列出來。
  • 根據處理經驗,筆者列出了一些常見的惡意命令,供大家參考
/usr/local/bin/pnscan
/usr/bin/masscan
/usr/bin/execute
/usr/bin/where
/usr/bin/crond
/usr/bin/bioset
/usr/bin/bsd-port

在這里插入圖片描述
在這里插入圖片描述

7. 檢查內核文件

檢查命令說明
cat /etc/sysctl.conf黑客入侵服務器后,還會修改內核配置文件,有時會添加如下參數:vm.nr_hugepage 該參數的作用是用來設置大內存頁,默認該參數的值是0。黑客有時會設置該參數來優化內存性能,來為挖礦程序的運行提供最大內存資源。也正是由于該參數的存在,會導致系統重啟之后,很多服務無法正常加載運行,從而導致系統長時間卡在服務加載界面。在這里插入圖片描述

8. 檢查密鑰登錄文件

檢查命令說明
cat /root/.ssh/authorized_keys黑客入侵系統后,通常會在此文件中寫入公鑰,以便黑客可以免密登錄系統。我們需要仔細辨別該文件的公鑰內容,去偽留真。

9. 檢查賬戶信息

檢查命令說明
cat /etc/passwdgrep -i /bin/bash

10. 檢查DNS設置文件

檢查命令說明
cat /etc/hosts 和 cat /etc/resolv.conf有時黑客會修改DNS解析設置文件,以便解析某些惡意域名。我們需要檢查該文件進行確認,如果黑客確實修改了,則要進行配置還原,改回成系統默認的DNS地址,否則可能會影響我們訪問網站的速度。

11. 檢查臨時目錄

檢查命令說明
ls -Al /tmp 和 ls -Al /var/tmp有時黑客會把惡意病毒文件或惡意腳本,放置到這兩個臨時目錄中,需要我們仔細查看加以辨別。在這里插入圖片描述
ls -Al /dev/shm/dev/shm是Linux系統利用內存虛擬出來的一個目錄,目錄中的文件都保存在內存中,效率非常高。也就是往這個目錄寫東西,僅寫在內存里,不會持久化到磁盤。系統重啟后,文件消失。有時黑客也會把病毒文件或腳本藏到這個臨時目錄里面。

病毒的進階排查

  • 做了上述的基礎排查之后,還不一定完全能根除,黑客是很狡猾的。有時黑客還會替換系統的命令,例如替換了ps、top、netstat等系統原有的命令,以假亂真。這時我們每次去執行ps、top、netstat等命令,都相當于運行一次黑客的惡意命令,這些被替換了的命令會讓我們看不到占用CPU高的惡意進程。此時我們可以安裝clamav軟件,來檢測黑客是否植入(篡改)了二進制命令。

1. 安裝clamav

yum -y install epel-release
yum -y install clamav clamd clamav-update clamav-devel clamav-data

在這里插入圖片描述

2. 更新clamav病毒庫

freshclam

3. 使用clamav掃描指定的目錄

clamscan –ri /usr/sbin/ --move=/root/infected -l /var/log/clamscan.log
  • 命令常用參數解釋:
參數說明
-r遞歸掃描,也就是掃描指定的目錄及其所有的子目錄。
-i只顯示被感染的可疑文件。
-l “FILE”將掃描的結果保存到指定的文件中,以便事后查看。
–move=DIRECTORY將掃描到的可疑文件移動到指定的目錄中。
在這里插入圖片描述

4. 重新安裝系統命令

  • 假如我們用clamscan掃描到了被篡改的二進制命令,并利用–move參數將其移動到了指定的目錄中,此時我們需要重新安裝這些二進制命令,從而再去發現被隱藏的惡意進程。
yum -y install glibc e2fsprogs procps lsof iproute net-tools coreutils curl wget findutils procps-ng util-linux rsyslog
說明:
ss命令屬于iproute軟件包。
chattr命令屬于e2fsprogs軟件包。
w、ps、top、pkill、sysctl等命令屬于procps軟件包。
netstat、ifconfig等命令屬于net-tools軟件包。
chmod、chown、ls等命令屬于coreutils軟件包。

黑客是如何入侵

  • 筆者總結了大量的案例,黑客入侵的途徑主要有如下幾種:

1. 弱密碼

  • 服務器或者應用程序設置的密碼過于簡單,例如密碼設置為了 Aa123456、1qaz2wsx、passwd123 等等,這些密碼極其容易被黑客暴力破解。

2. Redis

  • 這是非常常見的一種入侵方式,因此筆者特意拎出來進行說明。很多人在服務器里面安裝了Redis后,由于安全意識薄弱,會把Redis 6379端口對公網開放,從而被黑客掃描到后被入侵進來。

2.1. Redis入侵的原理:

  1. 攻擊者首先掃描存在未授權訪問或弱密碼的Redis進行入侵。
  2. 攻擊者入侵成功后,控制機器不僅會去下載惡意腳本,還會直接讀取主機上的/root/.ssh/known_hosts和/root/.ssh/id_rsa.pub文件,從而登錄信任當前主機的其它機器,并控制這些機器執行惡意指令。

2.2. Redis防護的方法:

  1. 為Redis的訪問添加密碼驗證。
  2. 禁止外網訪問Redis,或者只允許指定的IP地址訪問Redis端口。
  3. 以普通用戶身份運行Redis服務。

3. 數據庫

  • 很多用戶可能是疏忽大意,也可能是出于遠程訪問的需要,把數據庫端口1433、3306等對公網進行了開放,導致黑客掃描到數據庫端口后,對數據庫進行了注入或提權入侵,進而發生刪庫勒索等情況。

4. 應用程序存在漏洞

  • 例如:Gitlab exiftool 遠程命令執行漏洞、Spring Framework遠程代碼執行漏洞、Apache Log4j2 遠程代碼執行漏洞、Grafana 任意文件讀取漏洞、ThinkPHP5遠程代碼執行高危漏洞、Windows Print Spooler遠程代碼執行漏洞 等等,不勝枚舉。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12506.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12506.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12506.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探索設計模式的魅力:機器學習賦能,引領“去中心化”模式新紀元

?🌈 個人主頁:danci_ 🔥 系列專欄:《設計模式》 💪🏻 制定明確可量化的目標,堅持默默的做事。 探索設計模式的魅力:機器學習賦能,引領“去中心化”模式新紀元 ?歡迎加入…

react-visible-observer:一個超級簡單的滾動加載 npm 庫

隨著現代網頁應用的復雜性增加,懶加載和無限滾動已經成為提升用戶體驗和性能優化的重要技術。然而,許多現有解決方案要么過于復雜,要么性能欠佳。 react-visible-observer 是一個簡單而高效的解決方案,旨在簡化這些功能的實現。本…

商業銀行總分支數據分發的核心問題是什么?如何解決?

銀行業對一個國家至關重要,關乎國計民生。銀行為我國經濟建設分配資金,是社會再生產順 利進行的紐帶,它能掌握和反應社會經濟活動的信息,為企業和政府作出正確的經濟決策提供 必要的依據。通過銀行,可以對國民經濟各部…

比較兩個JSON之間的差異

網上找到的比較JSON工具類,比較兩個JSON對象之間的差異,并將差異字段按照原JSON對象的樹狀結構展現出來,方便對數據進行對比。對原有方法進行了部分優化。 package com.summer.toolkit.util;import com.alibaba.fastjson.JSON; import com.a…

三、安裝node_exporter

目錄 一、簡介 二、下載安裝 一、簡介 Exporter是Prometheus的指標數據收集組件。它負責從目標Jobs收集數據,并把收集到的數據轉換為Prometheus支持的時序數據格式。 和傳統的指標數據收集組件不同的是,他只負責收集,并不向Server端發送數據…

探索微軟Edge:一款重塑網頁瀏覽體驗的新銳瀏覽器

探索微軟Edge:一款重塑網頁瀏覽體驗的新銳瀏覽器 隨著科技的飛速發展,我們的互聯網瀏覽需求也在不斷升級。在這樣的背景下,微軟Edge瀏覽器應運而生,以其卓越的性能、獨特的功能和簡潔的設計,迅速贏得了廣大用戶的青睞…

Redis:常用數據結構

文章目錄 常用數據結構Redis的編碼方式查看方式 常用數據結構 Redis當中常用的數據結構如下所示: Redis在底層實現上述數據結構的過程中,會在源碼的角度上對于上述的內容進行特定的優化,這樣的優化的主要目的是為了實現出節省時間和節省空間…

【挑戰30天首通《谷粒商城》】-【第一天】10、環境-docker安裝mysql

文章目錄 課程介紹一、docker 安裝 mysql Stage 1:下載鏡像文件 Stage 1-1:打開官網查看鏡像 Stage 1-2:拉取鏡像 Stage 1-3:查看拉取的鏡像 Stage 2:創建實例并啟動 A:mysql(5.7版)…

yolov8添加FPPI評價指標

這里寫自定義目錄標題 yolov8 中FPPI實現測試中調用 效果結語 續yolov7添加FPPI評價指標 。之前在yolov7中增加了fppi指標,有不少網友問有沒有yolov8中增加,最近沒有做算法訓練,也一直沒時間弄。這幾天晚上抽了點時間,弄了一下。不…

焦灼上市背后,極氪汽車開啟新長征?

李書福的資本帝國,又要擴容了。繼蔚小理之后,極氪汽車成為第四家赴美上市的中國造車新勢力,同時也成為了李書福收獲的第九個IPO。作為一家成立僅僅4年的新勢力,極氪再次刷新了造車新勢力上市的最快記錄。 按照極氪汽車官方的說法…

學習中...【京東價格/評論數據】數據獲取方式——采用Selenium★

近期閑來無事學學selenium爬蟲技術,參考崔慶才《Python3網絡爬蟲開發實戰》的淘寶商品信息爬取,我也照貓畫虎的學了京東的價格和商品評論數據。廢話不多說,直接開始吧! 1. 瀏覽器初始化 from selenium import webdriver from se…

紅黑樹的平衡

1.紅黑樹的概念 紅黑樹,是一種二叉搜索樹,但在每個結點上增加一個存儲位表示結點的顏色,可以是Red或 Black。 通過對任何一條從根到葉子的路徑上各個結點著色方式的限制,紅黑樹確保沒有一條路 徑會比其他路徑長出倆倍&#xff0c…

什么是apt

2024年5月15日,周三上午 apt 是 “Advanced Packaging Tool” 的縮寫,它是 Debian 及其衍生版(如 Ubuntu)中用于管理軟件包的命令行工具。apt 提供了一個統一的接口來安裝、更新、升級、刪除和搜索軟件包。 以下是 apt 的一些主要…

合合信息:TextIn文檔解析技術與高精度文本向量化模型再加速

文章目錄 前言現有大模型文檔解析問題表格無法解析無法按照閱讀順序解析文檔編碼錯誤 訴求文檔解析技術技術難點技術架構關鍵技術回根溯源 文本向量化模型結語 前言 隨著人工智能技術的持續演進,大語言模型在我們日常生活中正逐漸占據舉足輕重的地位。大模型語言通…

Java基礎(36)應用服務器優化技術有哪些

應用服務器優化是一個復雜的過程,涉及到服務器硬件資源、操作系統、網絡、應用程序代碼、數據庫等多個層面。下面是一些深入詳細的應用服務器優化技術: 系統級優化 硬件優化 提升CPU性能:使用更多核心的CPU或者升級到更高頻率的CPU。增加內…

Scala基礎

目錄 1.安裝與運行Scala 任務描述 了解Scala語言 了解Scala特性 安裝Scala 運行Scala 2.定義函數識別號碼類型 了解數據類型 定義與使用常量、變量 使用運算符 定義與使用數組 任務實現 3.基本語法 1 變量 2 字符串 3 數據類型&操作符 4 條件表達式 5 循環…

idea使用gitee基本操作流程

1.首先,每次要寫代碼前,先切換到自己負責的分支 點擊簽出。 然后拉取一次遠程master分支,保證得到的是最新的代碼。 寫完代碼后,在左側欄有提交按鈕。 點擊后,選擇更新的文件,輸入描述內容(必填…

五分鐘“手撕”時間復雜度與空間復雜度

目錄 一、算法效率 什么是算法 如何衡量一個算法的好壞 算法效率 二、時間復雜度 時間復雜度的概念 大O的漸進表示法 推導大O階方法 常見時間復雜度計算舉例 三、空間復雜度 常見時間復雜度計算舉例 一、算法效率 什么是算法 算法(Algorithm):就是定…

C++|多態性與虛函數(2)|虛析構函數|重載函數|純虛函數|抽象類

前言 看這篇之前,可以先看多態性與虛函數(1)?? C|多態性與虛函數(1)功能綁定|向上轉換類型|虛函數-CSDN博客https://blog.csdn.net/weixin_74197067/article/details/138861418?spm1001.2014.3001.5501這篇文章會…

【Java開發面試系列】JVM相關面試題(精選)

【Java開發面試系列】JVM相關面試題(精選) 文章目錄 【Java開發面試系列】JVM相關面試題(精選)前言一、JVM組成二、類加載器三、垃圾回收四、JVM實踐(調優) 🌈你好呀!我是 山頂風景獨…