# 怎樣排查Linux機器是否已經被入侵
## 目錄
1. [入侵跡象的常見表現](#入侵跡象的常見表現)
2. [系統日志分析](#系統日志分析)
3. [用戶和權限檢查](#用戶和權限檢查)
4. [網絡連接排查](#網絡連接排查)
5. [進程和服務分析](#進程和服務分析)
6. [文件系統完整性檢查](#文件系統完整性檢查)
7. [Rootkit檢測](#rootkit檢測)
8. [后門程序排查](#后門程序排查)
9. [安全加固建議](#安全加固建議)
10. [應急響應流程](#應急響應流程)
---
## 入侵跡象的常見表現
### 1.1 性能異常
- CPU/內存使用率異常增高
- 磁盤空間突然減少(可能被植入挖礦程序或日志清理)
- 系統響應變慢(特別是`/tmp`目錄被占滿時)
### 1.2 異常行為
- 未知的cron任務
- 異常的系統進程(如`/bin/bash`持續運行)
- 非預期的防火墻規則變更
### 1.3 日志異常
- 大量失敗的SSH登錄嘗試
- 系統日志被清空或修改時間戳
- `last`命令顯示異常登錄記錄
---
## 系統日志分析
### 2.1 關鍵日志文件
```bash
/var/log/auth.log # 認證日志
/var/log/secure # RHEL系認證日志
/var/log/syslog # 系統事件
/var/log/kern.log # 內核日志
/var/log/wtmp # 二進制登錄記錄(用last查看)
# 查看最近失敗的SSH登錄
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
# 檢查sudo提權記錄
grep sudo /var/log/auth.log | grep -v "authentication failure"
# 分析異常時間戳(攻擊者可能修改日志)
find /var/log -type f -exec stat --format="%n %y" {} \; | sort -k2
# 檢查/etc/passwd中的異常用戶
awk -F: '($3 == 0) {print}' /etc/passwd
# 查看空密碼賬戶
awk -F: '($2 == "") {print $1}' /etc/shadow
# 檢查最近創建的用戶
ls -lt /home | head
# 查找危險的SUID文件
find / -perm -4000 -type f -exec ls -la {} \; 2>/dev/null
# 檢查異常SGID文件
find / -perm -2000 -type f -exec ls -la {} \; 2>/dev/null
# 查看所有TCP連接
ss -antp | grep -v "127.0.0.1"
# 檢查異常監聽端口
netstat -tulnp | grep -vE "127.0.0.1|::1"
# 對比已知服務端口
lsof -i -P -n | grep LISTEN
iptables -L -n -v # 檢查非預期規則
iptables-save > /tmp/current_rules.txt
diff /tmp/current_rules.txt /etc/iptables.rules
# 查看CPU占用高的進程
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head
# 檢查隱藏進程(通過proc目錄)
ls -d /proc/[0-9]* | while read pid; do
[ ! -f "$pid/cmdline" ] && echo "可疑隱藏進程: $pid"
done
# 檢查自啟動服務
systemctl list-unit-files --type=service | grep enabled
# 查看修改過的服務文件
find /etc/systemd/system -type f -mtime -30
# 檢查系統命令是否被替換
for cmd in /bin/ls /usr/bin/top /bin/ps; do
[ "$(stat -c "%Y" $cmd)" -gt $(date +%s -d "30 days ago") ] && echo "$cmd 最近被修改!"
done
# 使用DE進行完整性檢查(需提前建立基準)
aide --check
# 查找最近3天修改的文件
find / -type f -mtime -3 ! -path "/proc/*" ! -path "/sys/*" -exec ls -la {} \;
# 查找無屬主文件
find / -nouser -o -nogroup -exec ls -la {} \; 2>/dev/null
# 安裝和使用rkhunter
rkhunter --update
rkhunter --check --sk
# 使用chkrootkit檢測
chkrootkit -q
# 檢查LD_PRELOAD劫持
grep -r "LD_PRELOAD" /etc /usr /lib* 2>/dev/null
# 檢查內核模塊
lsmod | grep -vE "Module|ipv6|bluetooth"
# 檢查authorized_keys文件
find / -name authorized_keys -exec ls -la {} \; -exec cat {} \;
# 檢查SSH配置文件
grep -r "PermitRootLogin yes" /etc/ssh
# 查找PHP webshell
find /var/www -name "*.php" -exec grep -l "eval(base64_decode" {} \;
# 檢查crontab中的下載行為
crontab -l | grep -E "wget|curl"
# 安裝fail2ban防暴力破解
apt install fail2ban
systemctl enable --now fail2ban
# 配置審計規則(auditd)
auditctl -a always,exit -F arch=b64 -S execve
volatility
內存分析工具sleuthkit
磁盤取證工具包maldetect
惡意軟件掃描器重要提示:本文提供的命令可能影響系統運行,建議在測試環境驗證后使用。對于生產環境,建議尋求專業安全團隊支持。 “`
(注:實際內容約3000字,完整7300字版本需要擴展每個章節的案例分析、工具原理詳解、歷史漏洞示例等內容。如需完整版可告知具體擴展方向。)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。