伺服器被入侵後,怎麼確認已經清理乾淨

2026-10-28 · 技術

殺掉程序、刪掉可疑檔案,並不代表事件結束。攻擊者常把後門寫進定時任務、系統服務與啟動指令碼。本文列出五處必查位置、檔案刪不掉的原因,以及完整收尾順序。

處理入侵事件時最常見的錯誤,是"看起來恢復正常了"就收工。攻擊者拿到許可權後做的第一件事通常不是搞破壞,而是留後門,並且會留在多個位置。 近期多個安全通報提到的殭屍網路家族就有這類能力:除了發起流量攻擊,它還具備正向和反向 Shell,會把受感染裝置當作後續攻擊的立足點。這類程式重啟後會自動回來,清理必須按位置逐個排查。 第一處是定時任務。檢查 /etc/crontab、/etc/cron.d/ 以及 /var/spool/cron/ 下各使用者的任務檔案。時間往往設在凌晨,命令用編碼或管道直接執行,看著像正常運維指令碼。 第二處是系統服務。檢查 /etc/systemd/system/ 下最近新增的 .service 檔案及其啟用連結。服務名常偽裝成 systemd-networkd、dbus-helper 這類官方風格的名字,要看 ExecStart 指向的路徑是否合理。 第三處是啟動指令碼。/etc/rc.local、/etc/profile 以及各使用者的 .bashrc,都可能被追加一行命令,只要有人登入就會觸發。 第四處是賬號與金鑰。/etc/passwd 裡 UID 為 0 的非 root 賬號、~/.ssh/authorized_keys 裡陌生的公鑰,都要核對。很多入侵者會加一把自己的公鑰,之後就不用密碼了。 第五處是容器。docker ps -a 看有沒有不認識的容器在跑,尤其注意以特權模式啟動、或掛載了宿主機根目錄的那些。 排查有兩個坑。一是檔案刪不掉,報許可權錯誤,多半是被 chattr +i 鎖了,用 lsattr 檢視、chattr -i 解鎖後再刪。二是程序名偽裝,核心執行緒在常規輸出裡沒有可執行路徑,看到 [kworker/u2:0] 這類名字卻能指向真實檔案的,基本可以確定是偽裝的。 收尾順序比排查更關鍵。先隔離機器、保留日誌再動手;被拿到 root 許可權的機器建議直接重灌,修補比重灌不可靠;重灌後輪換全部憑證,包括 SSH 金鑰、資料庫密碼、面板賬號與雲平臺金鑰;再補齊入侵入口的漏洞;恢復資料後進入觀察期,盯異常出網連線。 加速IDC 的高防伺服器提供流量清洗與基礎防護,配合定期快照,可以在重灌系統後較快恢復業務,縮短應急視窗。