Linux 伺服器一旦被入侵,攻擊者通常建立持久化後門、竊取資料、挖礦或作為跳板。本文提供系統化的 11 維度入侵檢測清單,涵蓋賬戶異常、日誌分析、進程異常、可疑檔案、RPM 資料庫驗證、網路連線、排程任務、後門機制、核心模組、系統服務與自動化 Rootkit 掃描,協助管理員快速發現並應對入侵事件。
# 查看所有用戶
less /etc/passwd
# 檢查 UID 0 (root 權限) 帳戶
awk -F: '$3==0 {print $1}' /etc/passwd
# 檢查空密碼帳戶
awk -F: 'length($2)==0 {print $1}' /etc/shadow
# 檢查 /etc/passwd 修改時間
ls -l /etc/passwd
# 歷史登入記錄
last
lastb # 失敗登入嘗試
# 關鍵異常指標:
# - "entered promiscuous mode" (網卡進入混雜模式,可能抓包)
# - 大量 RPC 異常字符 (緩衝區溢出攻擊特徵)
# - 非常用時間/地點/IP 登入
# - 連續失敗後成功 (暴力破解成功)
# 所有進程含 UID
ps -aux
# 重點關注 UID 0 (root) 的陌生進程
# 查看進程開啟檔案/埠口
lsof -p
# 檢查 inetd/xinetd 守護進程
cat /etc/inetd.conf | grep -v "^#"
# 隱藏進程檢測 (ps vs /proc 差集)
ps -ef | awk '{print $2}' | sort -n | uniq > /tmp/1
ls /proc | sort -n | uniq > /tmp/2
diff /tmp/1 /tmp/2
# 有差異可能為 Rootkit 隱藏進程
# SUID 檔案 (權限提升常利用)
find / -uid 0 -perm -4000 -print 2>/dev/null
# 大檔案 (>10MB) 可能為資料竊取暫存/惡意程式
find / -size +10000k -print 2>/dev/null
# 可疑檔名 (隱藏、雙點、空格、單點)
find / -name "..." -print
find / -name ".. " -print
find / -name "." -print
find / -name " " -print
# Core dump 分析
find / -name core -exec ls -l {} \;
# 查詢檔案所屬套件
rpm -qf /bin/ls
rpm -qf /bin/login
# 計算檔案雜湊
md5sum -b /bin/ls
md5sum -t /bin/ls
# 全系統驗證 (耗時較長)
rpm -Va
# 輸出代碼對照:
# S 大小異常 M 模式/權限異常 5 MD5異常 D 裝置號異常
# L 連結路徑異常 U 擁有者異常 G 群組異常 T 修改時間異常
# 重點關注 /sbin /bin /usr/sbin /usr/bin 下的 5/M/S/T 異常
# 網卡混雜模式檢查
ip link | grep PROMISC
# 所有網路連線
lsof -i
# 監聽埠口與進程
netstat -nap
# ARP 表異常 (ARP 欺騙)
arp -a
# root 與 UID 0 用戶排程
crontab -u root -l
cat /etc/crontab
ls /etc/cron.*/
# systemd timers
systemctl list-timers --all
# 啟動腳本
cat /etc/rc.d/rc.local
ls /etc/rc.d/
ls /etc/rc3.d/
# SUID 後門
find / -type f -perm -4000 -print 2>/dev/null
# SSH authorized_keys 異常
cat ~/.ssh/authorized_keys
# /etc/ssh/sshd_config 異常 (PermitRootLogin, AuthorizedKeysFile 等)
lsmod
# 關注未知模組、名稱隨機、無描述模組
# 對比已知乾淨系統 lsmod 基線
chkconfig --list # SysVinit
systemctl list-unit-files # systemd
# RPC 服務
rpcinfo -p
# rkhunter (Rootkit Hunter)
sudo apt-get install rkhunter # 或 yum install rkhunter
sudo rkhunter --update
sudo rkhunter -c --sk
# chkrootkit
sudo apt-get install chkrootkit
sudo chkrootkit -q
# 輸出 "INFECTED" 即可疑

LiME)、磁碟鏡像 (dd/dc3dd)、關鍵日誌備份。總結:入侵檢測非一次性動作,需建立**基線管理** (乾淨系統快照)、**自動化巡檢** (腳本/Ansible/監控系統)、**威脅情報整合** (IOC 比對)。定期演練應急流程,才能在真實攻擊中從容應對。