Rootkit 為攻擊者在入侵後植入的工具包,用於隱藏蹤跡、維持存取 (後門)、提權。按運行層級分:
ls, ps, netstat, who)、LD_PRELOAD 勾子、Cron 後門、SSH 金鑰植入、.rhosts、Bind Shell、Trojaned 服務。pid 隱藏、模塊列表隱藏。Knark 屬此類。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 鏈表移除)。Knark 本身作為 LKM 會出現在 lsmod//proc/modules。搭配 modhide (另一 LKM) 隱藏自身模塊結構體,實現雙重隱藏:檔案/進程/連線/模塊全不見。
lsmod 對比已知基線 (需信任基線)。kmodsign 驗證模塊簽名 (啟用 CONFIG_MODULE_SIG_FORCE)。kallsyms 檢查系統調用表地址是否指向核心文字段外。linux_lsmod、linux_hidden_modules、linux_check_syscall、linux_check_creds (提權進程)、linux_pslist 對比 ps 輸出差異。/bin, /sbin, /lib, /boot) 雜湊值,離線驗證。hide_port 仍可在封包層面見到流量)。systemd、cron、/etc/rc.local、initramfs、kernel command line 檢查異常模塊載入參數。rmmod knark 可能因 Rootkit 防卸載機制失敗或留存殘留。module.sig_enforce=1) + Secure Boot,阻止未簽名 LKM 載入。Knark 展示了 LKM 型 Rootkit 在核心態隱藏的強大能力。現代 Linux 防禦已轉向「核心模塊簽名強制 + eBPF 可觀測性 + 不可變基礎設施 + 離線取證」組合,將 Rootkit 生存空間壓縮至最小。