Linux 程序隱藏之摘鏈隱藏

2021-10-11 14:36:58 字數 1383 閱讀 4086

0x01:先說說一般程序隱藏程序的常見方式,這裡就直接引用大佬的辣

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)

0x02:程序摘鏈隱藏與恢復

前面兩種實現的方式都是比較普遍的做法,第二種方式筆者前幾篇文章也有介紹過,有興趣的可以參考一下,這裡主要講一講第三中隱藏方法,顧名思義也就是說linux核心通過鍊錶來維護所有的程序和對應的pid號,知道這點,就知道怎麼去下手了,首先我們需要看看兩個結構體,task_struct 和 pid 兩個結構體,這裡主要貼出我們用的部分,其他的可以參見核心原始碼 include/linux/sched.h;

//我這裡參照的是5.2的核心**,和低版本還是有區別的

struct sched_info sched_info;

struct list_head tasks;

/* pid/pid hash table linkage. */

struct pid *thread_pid;

struct hlist_node pid_links[pidtype_max]

;struct list_head thread_group;

struct list_head thread_node;

直接上**了:

#include

#include

/*摘鏈隱藏**,只需要修改想要隱藏pid號就可以了*/

void

hide_process

(void

)/*還原鍊錶,ps -aux仍然可以檢視程序資訊*/

static

intrestore_process

(struct task_struct *task)

static

int __init test_init

(void

)static

void __exit test_exit

(void

)module_init

(test_init)

;module_exit

(test_exit)

;module_license

("gpl");

module_author

("curtis li"

);

參考兩位大佬的文章:

linux程序隱藏

1.系統命令替換,通過stat檢視檔案狀態修改,md5sum檢視hash是否匹配,如果要修復,將正常檔案複製回來即可。2.hook系統呼叫,在呼叫鏈中修改惡意庫,造成惡意呼叫實現隱藏。查詢此類 通過sysdig proc.name ps檢視ps的呼叫 找到惡意的動態庫即可。也可以檢視環境變數ld p...

Linux程序隱藏問題 顯示隱藏程序

阿里云云監控到有兩台redis伺服器cpu被某程序消耗400 cpu資源 系統檢視top 情況並未找到高消耗程序x7但cpu100 ni netstat 查詢到了一些異常請求,初步判斷出元件被提權入侵了 嘗試查詢異常程序x7關聯的檔案,排查還在 etc hosts發現增加了如下異常對映,檢視相關異常...

linux 隱藏程序 crux實現

本文在不修改ps或top命令的任何 與採用將程序號置0的方法的前提下,實現隱藏程序,本程式在crux 2.2上實現 1 原理 linux中,可以通過 proc檔案系統訪問到許多核心的內部資訊。proc檔案系統最初的設計也是用於方便地訪問程序相關的資訊,因此命名為proc。現在這個檔案系統已用於反映系...