怎么隐藏Linux进程

46次阅读
没有评论

共计 1190 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下怎么隐藏 Linux 进程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

总有朋友问隐藏 Linux 进程的方法,我说你想隐藏到什么程度,是大隐于内核,还是小隐于用户。网上通篇论述的无外乎 hook 掉 procfs   或者类似的用户态方案,也都难免长篇大论,我说,这些场面都太大了,太复杂了。对于希望马上看到效果的而言,看到这么一堆复杂的东西,大概率望而却步。

将 Linux 进程小隐于用户的非常规方法,仅仅一行代码:

修改掉进程的 pid 即可。

注意是小隐,所以,不值得反制,逗一下高级会议工程师搞个恶作剧玩玩得了。

target- pid = 0x7fffffff;

完整的脚本如下:

#!/usr/bin/stap -g # hide.stp global pid; function hide(who:long) %{ struct task_struct *target; target = pid_task(find_vpid(STAP_ARG_who), PIDTYPE_PID); target- pid = 0x7fffffff; %} probe begin { pid = $1 hide(pid); exit(); } ff;

来来来,试一下:

[root@localhost system]# ./tohide   [1] 403 [root@localhost system]# ./hide.stp [root@localhost system]#

用下面的命令可以检测所有可显示进程的二进制文件:

for pid in $(ls /proc|awk  /^[0-9]+/{print $1}  do ls -l /proc/$pid/exe; done

procfs 里没了,ps 当然就检测不到了。

如果你觉得 guru 模式的 stap 怪怪的,那么你完全可以编写自己独立的 Linux kernel module,采用修改完即退的方法:

target- pid = xxxx;

return -1; 是不是比各种 hook 法简单多了,所谓的动数据而不要动代码! 是不是比各种 hook 法简单多了,所谓的动数据而不要动代码!

简单的说一下原理:

task 被创建的时候,根据其 pid 注册 procfs 目录结构。

展示 procfs 目录结构的时候,遍历 task list 以其 pid 作为 key 来查找 procfs 目录结构。

0x7fffffff(或者任何其它合理的值) 根本没有注册过,当然无法显示。

以上是“怎么隐藏 Linux 进程”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-07发表,共计1190字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)