萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 駭客技術教學 >> 駭客防護

Linux Rootkit 技術深度解析:以 Knark (LKM 型) 為例的隱藏機制與偵測對抗

Rootkit 定義與分類

Rootkit 為攻擊者在入侵後植入的工具包,用於隱藏蹤跡、維持存取 (後門)、提權。按運行層級分:

  • 用戶態 : 替換系統二進制 (ls, ps, netstat, who)、LD_PRELOAD 勾子、Cron 後門、SSH 金鑰植入、.rhosts、Bind Shell、Trojaned 服務。
  • 核心態 (LKM/Kernel Module) : 直接修改核心資料結構、系統調用表 (Syscall Table)、中斷描述符表 (IDT)、文件系統 VFS 操作、/proc/pid 隱藏、模塊列表隱藏。Knark 屬此類。

Knark (v0.59) 核心功能

  • hide_file/show_file:隱藏/顯示任意檔案/目錄 (掛鉤 getdents/getdents64)。
  • hide_port:隱藏 TCP/UDP 連線 (掛鉤 tcp4_seq_show/udp4_seq_show)。
  • exec_redirect:程式執行重導向 (核心級,繞過檔案完整性檢測)。
  • rootme:非授權提升當前進程 UID/GID 至 0 (ROOT)。
  • chuid:修改任意運行進程 UID/GID。
  • remote_exec_daemon:非授權特權遠端執行守護進程。
  • kill -31:發送信號 31 隱藏指定進程 (從 task_struct 鏈表移除)。

進階隱藏:結合 modhide

Knark 本身作為 LKM 會出現在 lsmod//proc/modules。搭配 modhide (另一 LKM) 隱藏自身模塊結構體,實現雙重隱藏:檔案/進程/連線/模塊全不見。

偵測與清除策略

  1. 離線取證:製作磁碟鏡像、記憶體鏡像 (LiME/AVML),在可信環境分析,避開 Rootkit 活躍干擾。
  2. 核心模塊完整性驗證:
    - lsmod 對比已知基線 (需信任基線)。
    - kmodsign 驗證模塊簽名 (啟用 CONFIG_MODULE_SIG_FORCE)。
    - kallsyms 檢查系統調用表地址是否指向核心文字段外。
  3. 記憶體取證:Volatility/Volatility3 插件:
    - linux_lsmod、linux_hidden_modules、linux_check_syscall、linux_check_creds (提權進程)、linux_pslist 對比 ps 輸出差異。
  4. 檔案系統完整性:AIDE/Tripwire/Samhain 定期掃描關鍵目錄 (/bin, /sbin, /lib, /boot) 雜湊值,離線驗證。
  5. 網路流量異常:Zeek (Bro) / Suricata 偵測隱藏連線 (如 hide_port 仍可在封包層面見到流量)。
  6. 啟動項審計:systemd、cron、/etc/rc.local、initramfs、kernel command line 檢查異常模塊載入參數。
  7. 清除:唯一可靠方式:重新安裝作業系統 (Nuke & Pave)。嘗試 rmmod knark 可能因 Rootkit 防卸載機制失敗或留存殘留。

防禦建議

  • 啟用核心模塊簽名強制 (module.sig_enforce=1) + Secure Boot,阻止未簽名 LKM 載入。
  • 部署 Linux Security Modules (LSM):SELinux (Enforcing) / AppArmor 限制進程權限,縮減 Rootkit 破壞面。
  • 使用 eBPF/LSM BPF 進行核心級行為監控 (隱藏檔案/進程/連線/模塊載入/系統調用修改) 並即時告警。
  • 定期離線完整性掃描 (AIDE + 離線資料庫)。
  • 最小化核心模塊:編譯單體核心或僅載入必要模塊,減少攻擊面。

結語

Knark 展示了 LKM 型 Rootkit 在核心態隱藏的強大能力。現代 Linux 防禦已轉向「核心模塊簽名強制 + eBPF 可觀測性 + 不可變基礎設施 + 離線取證」組合,將 Rootkit 生存空間壓縮至最小。

copyright © 萬盛學電腦網 all rights reserved