首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Linux 服務器流量異常排查實戰:從監控腳本到 Rootkit 清除全過程

     編輯:Java 綜合教學

一次真實的服務器流量異常應急響應記錄

某開發人員反饋:客戶一台 Linux 服務器啟動後,同網段所有機器上網極慢,SSH 連接嚴重卡頓。經初步判斷疑似被植入惡意程序發起外部攻擊流量。以下是完整排查與清理過程。

第一階段:流量異常確認

編寫 Shell 腳本監控網卡流量(需替換為實際外網卡名,如 eth0/ens33):

#!/bin/bash
while true; do
    time=$(date "+%Y-%m-%d %H:%M:%S")
    rx_before=$(cat /proc/net/dev | grep eth0 | awk '{print $2}')
    tx_before=$(cat /proc/net/dev | grep eth0 | awk '{print $10}')
    sleep 2
    rx_after=$(cat /proc/net/dev | grep eth0 | awk '{print $2}')
    tx_after=$(cat /proc/net/dev | grep eth0 | awk '{print $10}')
    rx_kbps=$(( (rx_after - rx_before) / 2 / 1024 ))
    tx_kbps=$(( (tx_after - tx_before) / 2 / 1024 ))
    echo "$time In: ${rx_kbps}KB/s Out: ${tx_kbps}KB/s"
done

觀測結果: 發現規律性爆發流出流量(峰值 600+ MB/s),約每 20 秒一次,持續 3-4 秒,符合後台惡意程序定時外連特徵。

第二階段:進程與服務排查

  1. 檢查 Web 容器: Tomcat webapps 目錄無異常 WAR 包;
  2. 排除數據庫: 停止 Oracle 服務,流量異常持續,排除 DB 因素;
  3. 進程快照分析: ps -ef 發現可疑 getty 進程 CPU 偶發飆升至 70%+,且被 kill 後自動重啟,疑有守護進程;
  4. 啟動項檢查: /etc/rc.local 正常,但 /etc/init.d/ 下發現異常文件 DbSecuritySpt 和 functions。

第三階段:惡意文件分析與誤操作教訓

DbSecuritySpt 內容:

#!/bin/bash
/usr/local/apache-tomcat-6.0.44/webapps/eei/gfty

貿然移動該文件及 functions 導致系統啟動失敗(functions 為系統核心函數庫)。緊急掛載根分區寫入模式恢復:

mount -o remount,rw /
mv /tmp/functions /etc/init.d/
fsck -y /dev/sda  # 修復文件系統
reboot

第四階段:網絡連接定位源頭

使用 netstat -an 發現異常連接:

tcp  0  0  xxxx.51545 -> 119.147.145.221:6001  ESTABLISHED

結合 lsof -i:51545 定位到 PID 1587,即異常 getty 進程。Kill 該進程後流量歸零。

第五階段:Rootkit 深度清理

檢查 /etc/rc.d/rc*.d/ 發現所有運行級別均被植入惡意鏈接。關鍵發現:

  • /etc/init.d/selinux 時間戳異常(非系統原生時間);
  • /usr/bin/bsd-port/ 目錄包含惡意二進制文件;
  • 攻擊者修改了系統啟動腳本實現持久化。

清理動作:

rm -f /etc/init.d/selinux
rm -rf /usr/bin/bsd-port/
# 恢復被篡改的啟動腳本
chattr -i /etc/rc.d/rc.local  # 解除不可變屬性(如有)

重啟驗證:流量正常、無異常進程、無外連。

總結與防護建議

  1. 禁用密碼登錄: 強制 SSH 金鑰認 + 禁用 root 直接登錄;
  2. 最小化暴露面: 關閉非業務端口,防火墻白名單策略;
  3. 完整性監控: 部署 AIDE/Tripwire 監控關鍵文件變更;
  4. 定期審計: 檢查 /etc/init.d/、/etc/rc.d/、/etc/cron.*/ 異常文件;
  5. 重裝系統: 一旦被 Rootkit 植入內核層組件,建議全盤重裝,避免殘留後門。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved