Linux幾種檢測rootkit隱藏程序的方法

2021-10-05 16:38:24 字數 1211 閱讀 7131

rootkit通常會隱藏程序,隱藏檔案和網路連線。這裡主要記錄幾種對隱藏程序的檢測方法

一. 隱藏程序的方法

1.1 使用者級rootkit 通過ld_preload來hook libc庫,從而過濾/proc/pid目錄

1.2 核心級rootkit 通過hook系統呼叫getdents/getdents64或者hook 檔案file_operation的iterate

1.3 核心級rootkit把task_struct 從相關鍊錶摘除(init_task,pidlist)

二 檢測程序的方法

2.1 前兩種隱藏檢測方法

因為程序還在核心鍊錶中,可以通過pid找到task_struct .

第一步:讀/proc/pid目錄,收集系統所有程序

第二步: 給0到pid_max程序傳送任意訊號,訊號傳送成功,表示程序存在,從而收集系統所有程序

for(pid=0;pid第三步:對比第一步和第二步收集程序的差異,即可確認隱藏程序(要排除已經退出的程序)

2.2 第三種隱藏方法的檢測

因為在鍊錶中找不到,所以不能通過pid找到task_struct.這裡可以基於task_strcut的特徵,在記憶體中查詢task_struct結構體

直接上**:

/*通過pid獲取task_struct檢測程序是否存在,也可以讀/proc/確認 */

static struct task_struct *get_task(pid_t nr)

return task;

}/*這裡假設隱藏程序使用cfs排程,其他排程類也可採用類似方法比較 */

static int scan_task(struct page *page)

start++;

} return 0;

}static void scan_memory(void) }

}

效果:

把firefox程序3126從核心鍊錶中摘除,從/proc/看不到

ls: cannot access '/proc/3126': no such file or directory

載入記憶體掃瞄模組:

[ 2452.997816] we get hide task firefox,pid=3126

可以看到能夠找到被隱藏的程序.

通過task_struct的特徵值來掃瞄記憶體時,一定要選取不能輕易篡改的值,否則很容易被木馬對抗.

學習筆記(三) 使用K近鄰演算法檢測Rootkit

rootkit是一種特殊的惡意軟體,它的功能是在安裝目標上隱藏自身以及指定的檔案,程序和網路鏈結等資訊。1.資料蒐集 kdd 99 tcp連線內容特徵包括hot num faild logins logged in num compromised root shell su attempted nu...

電感檢測 幾種常用的電流檢測方式

rt1720 是一款最高輸入電壓可達 80v 輸出電壓可達 60v 的熱插拔控制器,它的作用是防止系統受到過高電壓和負電壓的攻擊,同時還能防範過電流可能導致的問題,它的一種應用電路大致如下圖所示 為了檢測負載電流的大小,rsns 被串接在電路中的 vcc 和 sns 之間,流過它的電流會在其兩端形成...

目標檢測之指尖檢測 指尖檢測的新方法幾種

指尖檢測根據應用可以分為單指尖檢測和多指尖檢測。下面是我在工作中想到的方法,希望對你有用或提供點兒靈感。單指尖檢測新方法 重心距離法 找到手的區域,我一般用膚色檢測 計算手的區域的重心 在手的區域的邊緣點集中尋找距離重心最遠的點,該點即為指尖候選位置 判斷找到的點是否為指尖。判據 候選點到重心的距離...