某開發人員反饋:客戶一台 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 秒,符合後台惡意程序定時外連特徵。
ps -ef 發現可疑 getty 進程 CPU 偶發飆升至 70%+,且被 kill 後自動重啟,疑有守護進程;/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 該進程後流量歸零。
檢查 /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 # 解除不可變屬性(如有)
重啟驗證:流量正常、無異常進程、無外連。
/etc/init.d/、/etc/rc.d/、/etc/cron.*/ 異常文件;