2/12/2025

如何清理rootkit

 要檢查系統內是否存在惡意 Rootkit,你可以使用多種方法,包括手動檢查、Rootkit 掃描工具、日誌分析等。以下是完整的檢測步驟:


1️⃣ 使用 chkrootkit 掃描 Rootkit

chkrootkit 是一個常見的 Rootkit 掃描工具,可以檢測已知的 Rootkit 痕跡。

安裝 chkrootkit

sudo apt install chkrootkit -y   # Debian / Ubuntu
sudo yum install chkrootkit -y   # CentOS / RHEL

運行 chkrootkit 掃描

sudo chkrootkit

如果發現可疑 Rootkit,chkrootkit 會顯示相關警告。


2️⃣ 使用 rkhunter 掃描 Rootkit

rkhunter(Rootkit Hunter)可以檢測隱藏的 Rootkit 和可疑的系統變更。

安裝 rkhunter

sudo apt install rkhunter -y   # Debian / Ubuntu
sudo yum install rkhunter -y   # CentOS / RHEL

更新 Rootkit 資料庫

sudo rkhunter --update

運行掃描

sudo rkhunter --check

這將檢查系統中的 Rootkit、惡意後門、可疑的文件修改,並提供詳細報告。


3️⃣ 使用 unhide 檢測隱藏進程

某些 Rootkit 會隱藏惡意進程,使它們不出現在 pstop 命令中。unhide 可以幫助檢測這些隱藏的進程。

安裝 unhide

sudo apt install unhide -y   # Debian / Ubuntu
sudo yum install unhide -y   # CentOS / RHEL

檢查隱藏進程

sudo unhide proc
sudo unhide sys
sudo unhide brute

如果 unhide 發現隱藏的進程,這可能表示你的系統已被 Rootkit 感染。


4️⃣ 手動檢查異常文件

A. 檢查 /etc/ld.so.preload 是否被惡意利用

cat /etc/ld.so.preload

如果 /etc/ld.so.preload 包含了不明的 .so 文件,可能是惡意 Rootkit 設置的。

解決方法(刪除可疑文件):

chattr -i /etc/ld.so.preload
rm -f /etc/ld.so.preload

B. 檢查可疑的內核模組

Rootkit 可能會通過惡意內核模組來隱藏自己。

列出當前載入的內核模組

lsmod

如果你發現 不熟悉的內核模組,你可以查看它的詳細信息:

modinfo <模組名稱>

移除可疑內核模組(需謹慎)

rmmod <模組名稱>

C. 檢查系統關鍵目錄

ls -al /dev/.udev
ls -al /dev/.initramfs

如果這些目錄中出現了不明文件,可能是 Rootkit 在隱藏惡意檔案。

檢查 /proc 目錄是否被 Rootkit 竄改

ls -al /proc

如果 ps aux 顯示的進程與 /proc 目錄內的 PID 不匹配,可能有 Rootkit 在隱藏進程。


D. 檢查異常網路連接

某些 Rootkit 可能會與攻擊者的伺服器保持連接。

列出所有活躍的網路連接

netstat -antp

ss -antp

如果發現可疑的 IP 連線,檢查對應的進程:

lsof -i -n -P

如果發現可疑的 PID,可以使用以下命令檢查該進程的細節:

ps -aux | grep <PID>

5️⃣ 使用 auditd 監控 Rootkit 活動

如果你懷疑系統受到 Rootkit 影響,可以使用 auditd 監控關鍵文件的變更。

安裝 auditd

sudo apt install auditd -y   # Debian / Ubuntu
sudo yum install audit -y   # CentOS / RHEL

監控 /etc/ld.so.preload 是否被修改

sudo auditctl -w /etc/ld.so.preload -p wa -k rootkit_watch

查看監控日誌

sudo ausearch -k rootkit_watch --start today

如果發現 /etc/ld.so.preload 被惡意修改,可能存在 Rootkit。


6️⃣ 檢查 Rootkit 是否已設置持久性

某些 Rootkit 可能會在 cronsystemdinit 服務中設置持久性,確保它們在系統重新啟動後仍然運行。

檢查定時任務

crontab -l
ls -al /etc/cron.*

如果發現不明的定時任務,可能是 Rootkit 在設置持久性。

檢查 Systemd 服務

systemctl list-units --type=service | grep suspicious
ls -al /etc/systemd/system/

如果發現可疑的服務,可以禁用並刪除:

systemctl stop <service_name>
systemctl disable <service_name>
rm -f /etc/systemd/system/<service_name>.service

7️⃣ 如何清理 Rootkit

如果你確定系統已被 Rootkit 感染,建議執行以下步驟:

A. 進入救援模式

systemctl rescue

B. 刪除惡意 Rootkit

chattr -i /etc/ld.so.preload
rm -f /etc/ld.so.preload
rmmod <惡意內核模組>

C. 移除可疑的系統文件

find / -type f -name "*.so*" -exec ls -l {} \;

D. 重新安裝關鍵系統組件

apt reinstall coreutils

E. 重新安裝受感染的伺服器 最安全的做法是備份數據並重新安裝系統,以確保 Rootkit 完全移除。


🔚 總結

檢測方式 指令
chkrootkit 掃描 Rootkit chkrootkit
rkhunter 掃描 Rootkit rkhunter --check
unhide 檢查隱藏進程 unhide proc
檢查 /etc/ld.so.preload cat /etc/ld.so.preload
列出內核模組 lsmod
檢查異常網路連接 netstat -antp / ss -antp
查找可疑的 systemd 服務 systemctl list-units --type=service
查找可疑的 cron 任務 crontab -l / ls -al /etc/cron.*

透過這些方法,你可以有效檢測系統內是否有 Rootkit,並採取適當的措施來清理和保護系統!🚀

沒有留言: