应急响应之Linux下进程隐藏

应急响应之Linux下进程隐藏当黑客获取系统 root 权限时 为了实现持久化控制往往会创建隐藏恶意进程 这给应急响应人员取证的时候带来了难度 隐藏进程的方法分为两类 一类是用户态隐藏 另一类是内核态隐藏

大家好,欢迎来到IT知识分享网。

概述

当黑客获取系统 root 权限时,为了实现持久化控制往往会创建隐藏恶意进程,这给应急响应人员取证的时候带来了难度,隐藏进程的方法分为两类,一类是用户态隐藏,另一类是内核态隐藏。用户态常使用的方法有很多,例如劫持预加载动态链接库,一般通过设置环境变量 LD_PRELOAD 或者 /etc/ld.so.preload,过滤 /proc/pid 目录、修改进程 PID 等等。内核态隐藏进程一般是加载恶意的内核模块实现进程隐藏,本文抛砖引玉,介绍应急响应场景中遇到过的 Linux 操作系统进程隐藏的手段以及检测方法。

应急响应之Linux下进程隐藏 

劫持预加载动态链接库 LD_PRELOAD

查看 Linux 操作系统正在运行的进程,一般会使用系统命令 ps、top 等,像 ps 这样的命令通常是读取了 /proc/ 目录下文件。Linux 操作系统上的 /proc 目录存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关操作系统硬件和当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。/proc 目录中包含许多以数字命名的子目录,这些数字代表操作系统当前正在运行进程的进程号(pid),每个数字文件夹里面包含对应进程的多个信息文件。

应急响应之Linux下进程隐藏

LD_PRELOAD 是 Linux 操作系统的一个环境变量,它允许定义在程序运行前优先加载的动态链接库,设置完成后立即生效。劫持预加载动态链接库的进程隐藏方式往往是过滤ps等命令从 /proc/ 获取的结果,而不是针对 /proc/ 文件系统生成本身。在应急的时候一般可以通过 strace 命令调试 ps 命令的所有系统调用以及这个进程所接收到的所有的信号量。当系统未设置了 ld.so.preload,ps 命令读取 /etc/ld.so.preload,返回值为-1,说明文件不存在。

应急响应之Linux下进程隐藏

当系统设置了 ld.so.preload,ps 命令读取 /etc/ld.so.preload,返回值为 0,说明文件存在。

比如,我们要隐藏进程 threat.py,可以借助 libprocesshider 项目,通过修改 static const char* processtofilter = “threat.py”,隐藏指定进程。

应急响应之Linux下进程隐藏

编译后将生成的 .so 文件路径写入 /etc/ld.so.preload。运行该进程后可以看到 ps 命令未检测到隐藏进程。但是使用 busybox 可以看到隐藏进程的相关信息,那是因为 busybox ps 命令直接读取了 proc 目录的数字,不调用系统预加载库。

应急响应之Linux下进程隐藏

测试使用的脚本名为 processhider.c,下载地址如下:

https://github.com/gianlucaborello/libprocesshider/

劫持预加载动态链接库 LD_AUDIT

上面介绍了劫持 LDPRELOAD 隐藏进程,黑客往往常用这个技术拦截系统调用执行恶意代码。正如文档 ld.so 中内容,LDPRELOAD 在所有其他对象(附加的、用户指定、ELF 共享对象)之前加载,但实际上 LDPRELOAD 并非真的是首先加载,通过利用 LDAUDIT 环境变量可以实现优先于 LD_PRELOAD 加载。

应急响应之Linux下进程隐藏

首先我们验证下 LDPRELOAD、LDAUDIT 的加载顺序。

应急响应之Linux下进程隐藏

编译 preloadlib.c、auditlib.c。

应急响应之Linux下进程隐藏

从执行 whoami 的结果可以看到 LDAUDIT 优先于 LDPRELOAD。

应急响应之Linux下进程隐藏

还以 libprocesshider 项目为例,我们想要隐藏运行的脚本 threat.py,如果直接编译使用 LD_AUDIT 加载 so 文件,可以发现并没有隐藏进程。

应急响应之Linux下进程隐藏

通过查询 rtld-audit (https://man7.org/linux/man-pages/man7/rtld-audit.7.html) 文档,可以看到调用该库需要两个函数 laobjopen 和 lasymbind64,当加载器找到并加载一个库时,将调用 rtld-audit 中的 laobjopen 函数,struct linkmap 指向要加载的库,cookie 声明一个指针指向该对象标识符,并传给 lasymbind64,lasymbind64 函数不仅可以提供信息,还可以修改程序行为。故可以在 libprocesshider.c 追加以下代码:

应急响应之Linux下进程隐藏

重新编译后,可以看已经隐藏进程。

应急响应之Linux下进程隐藏

修改进程 pid

通过查看 linux 内核源码,在 include/linux/threads.h 文件中可以看到 pid 最大值的为变量 PIDMAXDEFAULT,相关代码如下:

应急响应之Linux下进程隐藏

如果编译内核时设置了 CONFIGBASESMALL 选项,则pid的最大值是 0x1000,即 4096 个,否则最大值是 0x8000,即 32768 个。pid 的最大值是可以修改的,但是可以修改的最大值是多少,这个是通过 PIDMAXLIMIT 限定的,从代码可知,如果编译内核时设置了 CONFIGBASESMALL 选项,则最大值就是  8 * PAGESIZE 个大小,否则就看 long 的大小,如果大于 4,也就是最大可以设置 4*1024*1024 个,也即是 个,否则最大只能设置 PIDMAX_DEFAULT 个了。

用户可以通过查看 /proc/sys/kernel/pid_max 文件获取当前操作系统的 pid 的最大值,例如 centos7 默认可以有 个 pid。

应急响应之Linux下进程隐藏

当前进程创建后,获取其 pid 注册 proc 目录下,然后遍历 tasklist 以其 pid 作为主键来显示 proc 目录。从上面知道 centos7 下最多有 个 pid 号。故我们通过内核模块修改进程 pid,然后用户空间由于权限的限制无法读取内核配置的 pid 外的数据实现隐藏。代码如下:

应急响应之Linux下进程隐藏

执行恶意进程,获取其进程 pid 为 2895,运行脚本后可以看到进程已经被隐藏了。

应急响应之Linux下进程隐藏

安装 stap 后默认会在路径 /usr/share/systemtap/examples/ 下存储一些非常实用的脚本。例如 network- 目录下脚本主要查看系统中每个进程的网络传输情况,io 目录下的脚本主要查看进程对磁盘的读写情况。

应急响应之Linux下进程隐藏

虽然隐藏了进程,但是还存在网络连接。故可以通过 network 目录的脚本从内核层面检测当前操作系统的网络连接获取隐藏进程。

应急响应之Linux下进程隐藏

另外大多数情况下,我们只使用 kill 命令来杀死一个进程,实际上 kill 命令只是向进程发送一个信号,可以到 https://github.com/torvalds/linux/blob/master/arch/x86/include/uapi/asm/signal.h 查看每个信号对应的功能,信号 20 表示停止进程的运行, 但该信号可以被处理和忽略。在 Linux 下,我们 kill 一个不存在的进程会返 “No such process”,kill 一个存在的进程返回结果为空,故通过信号也可以获取隐藏进程 pid。

应急响应之Linux下进程隐藏

伪造内核模块隐藏进程

在 Linux 上,有许多内核进程被创建来帮助完成系统任务。这些进程可用于调度、磁盘 I/O 等。当使用像 ps 之类的命令显示当前运行的进程时,内核进程的周围有[括号],普通进程通常不会显示带方括号的进程。Linux 恶意软件使用各种技术来隐藏检测。其中一种为让进程名显示 [] 来模拟内核线程。

(1) /proc/maps 通常用来查看进程的虚拟地址空间是如何使用的。正常的内核进程 maps 内容为空的,伪装的内核进程是有内容标识的。如下 pid 为 2120 为系统正常的内核进程,pid 为 3195 是伪造的内核进程。

应急响应之Linux下进程隐藏

(2) /proc/exe 指向运行进程的二进制程序链接,正常内核进程没有相应的二进制文件,恶意的内核进程有对应的二进制文件。

应急响应之Linux下进程隐藏

总结

安全的本质是对抗,只有熟悉了黑灰产常用的攻击方式,才能做到遇事不慌。Linux 下进程隐藏的方式远远不止以上几种

题外话

初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:

  • 2023届全国高校毕业生预计达到1158万人,就业形势严峻;
  • 国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。

一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。

6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。

2022届大学毕业生月收入较高的前10个专业

本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。

具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。

应急响应之Linux下进程隐藏

 “没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。 

网络安全行业特点

1、就业薪资非常高,涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!

应急响应之Linux下进程隐藏

 2、人才缺口大,就业机会多

2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。

应急响应之Linux下进程隐藏

 行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

 1.学习路线图 应急响应之Linux下进程隐藏

 攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

应急响应之Linux下进程隐藏

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

应急响应之Linux下进程隐藏

 应急响应之Linux下进程隐藏

 (都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

应急响应之Linux下进程隐藏

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。 

应急响应之Linux下进程隐藏

 因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

应急响应之Linux下进程隐藏

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。 

应急响应之Linux下进程隐藏

 还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取

应急响应之Linux下进程隐藏

 最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

应急响应之Linux下进程隐藏

 因篇幅有限,仅展示部分资料,需要保存下方图片,微信扫码即可前往获取 

应急响应之Linux下进程隐藏

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/113227.html

(0)
上一篇 2025-12-16 08:00
下一篇 2025-12-16 08:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信