首页 > 系统相关 >一行代码如何隐藏Linux进程?

一行代码如何隐藏Linux进程?

时间:2022-11-23 17:32:21浏览次数:45  
标签:task hide target 代码 pid Linux 隐藏 procfs

总有朋友问隐藏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(或者任何其它合理的值)根本没有注册过,当然无法显示。

不多说。

再次声明,不要试图对本文所描述的方法进行反制,因为这么简单的东西根本不值得反制

标签:task,hide,target,代码,pid,Linux,隐藏,procfs
From: https://blog.51cto.com/u_14573321/5881535

相关文章

  • spark代码优化
    Spark代码优化RDD、DataFrame、DataStream、DataSet四者的区别?1、RDD是分布式的Java对象的集合。DataFrame是分布式的Row对象的集合。2、DataFrame除了提供了比RDD更......
  • 使用git克隆代码与上传代码
    一、安装git登陆git官网:https://git-scm.com/window国内镜像下载:https://registry.npmmirror.com/binary.html?path=git-for-windows/二、下载gitinitgitclone+地址......
  • 【Web安全攻防从入门到精通】代码基础
    代码基础HTML基础HTML结构<!DOCTYPEhtml><!--声明为HTML5文档--><html><!--元素是HTML页面的根元素--><!--元素包含了文档的元(meta)数据<body>......
  • ntp同步Linux服务器时间
    1.当前环境服务端:192.168.1.100 客户端:192.168.1.101客户端:192.168.1.102系统都为CentOS7 2.服务端操作检查是否安装ntprpm-qntp安装ntp服务yum-yinst......
  • 文件和文件夹属性(Linux)
    文件和文件夹属性(Linux)我们在使用Linux时,经常出现文件或文件夹没有权限操作,这是因为每个文件或文件夹涉及到文件所有者的权限、文件所属用户组的权限、其他人的权限,权......
  • C++ 判断闰年简单代码
    闰年闰年分为普通闰年和世纪闰年1582年以来的置闰规则:普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。世纪闰年:公历年份是整百数的......
  • 手机装liunx系统;上次用Linux Deploy 本次用termux
    如果手机不方便操作,直接AnLink小软件强大投屏(usb连接开发模式)。1.下载: F-Droid:https://f-droid.org/packages/com.termux/ (访问速度慢,请耐心等待)或者直接用下载链接:h......
  • linux常见指令
    1.常用命令——数据流、管道数据流:输入流输出流标准的错误输出流重定向:改变数据的流向(一般重定向到文件中)>重定向>>以追加的方式重定向管道:一个命令的输出作为另一个命令......
  • linux初识
    操作系统:对上提供软件运行支持,对下控制硬件的运行服务器:对外提供服务的一台特殊的计算机操作系统分类:桌面(Windows)、服务器(Linux)、嵌入式(Linux)、移动设备操作系统(IOS、Andr......
  • Linux远程服务器免密登录
    1)先需要知道远程服务器id,如172.21.18.1832)打开终端,输入ssh root@172.21.18.183进入【远程服务器环境】3)cd~/.ssh进入ssh目录【待添加机器环境】4)ls查看ssh目录存在auth......