如何识别 Linux 中的隐藏进程?一篇讲解黑客常用手法与检测手段

admin 2025年6月12日09:36:12评论6 views字数 2422阅读8分4秒阅读模式

在网络安全领域,攻击者为了隐蔽其恶意行为,常常采用多种技术隐藏进程。本文结合实际案例和公开资料,从黑客如何隐藏进程及如何发现隐藏进程两个方面进行深入分析。



一、黑客常用进程隐藏技术揭秘

(一)工具篡改与替换攻击

1. 函数钩子注入(Hook 技术)

   攻击者通过注入自定义函数,劫持系统调用(如 readdir(), getdents()等),过滤掉恶意进程信息,使其不被 ps、ls 等工具显示。如Kaiji木马病毒检测与清除实战

2. 系统工具动态库或二进制文件篡改

   通过修改 ps、ls等系统工具的动态链接库或二进制文件,注入过滤逻辑,隐藏恶意进程。

3. 系统工具替换  

   将系统原生工具(如 ps、top、netstat、lsof 等)替换为恶意版本,使这些工具自动忽略恶意进程。例如,用伪造的 ps 覆盖真实文件,隐藏指定进程。

(二)无文件进程攻击

无文件型恶意软件不依赖磁盘上的可执行文件,而是通过注入合法进程或内存驻留技术运行,导致传统基于文件的检测失效。

(三)内核级隐藏:模块劫持与驱动攻击

1. 恶意内核模块(LKM)

   黑客加载自定义内核模块,修改内核进程链表,从内核层过滤进程信息,实现深度隐藏。

2. 文件系统挂载点劫持

    修改 /proc、/sys 等虚拟文件系统的挂载信息,伪造进程列表。攻击者可能通过 mount -o remount 篡改挂载选项,或使用 chroot 隔离环境隐藏进程。

3. 内核模块的对抗性隐藏

    部分高级 rootkit 会通过自定义信号(如 kill -41  发送的非标准信号)控制恶意内核模块,使其临时从内核模块列表中移除或篡改检测工具的输出结果,规避 lsmod 等命令的排查。

(四)进程残留与文件删除攻击

攻击者删除恶意文件后,若进程仍在运行,文件句柄仍保留在内存中,但进程依然存在并消耗资源。例如:一场与挖矿病毒的攻防实录:当常规手段全部失效后文件被删除,但进程持续运行,隐藏恶意行为。



二、如何发现隐藏进程

(一)基础工具校验:识破工具篡改

1. 校验工具完整性 

   - 使用 type命令检查系统工具路径,确认是否为原生路径,防止调用被替换的恶意工具。  

    type ps

   - 使用 md5sum 校验文件哈希值,与官方值对比。  

     md5sum $(which ps)  

   - 从可信的渠道(如软件包的官方文档、原始安装介质等)获取到了正确的 MD5 值。

建议操作:可借助 BusyBox 轻量工具箱:在CentOS 7中快速安装BusyBox等独立工具集执行命令,对比系统原生工具输出。BusyBox 内置精简版 psls 等命令,其二进制文件独立于系统工具链,可规避被篡改的风险。

2. 包管理器验证

   - 在 RPM 系统(如 CentOS/RHEL)中,使用 rpm -V检查文件是否被修改。  

     rpm -V procps-ng #若正常则无输出
如何识别 Linux 中的隐藏进程?一篇讲解黑客常用手法与检测手段

- 校验结果符号含义:

符号

含义

S

文件大小与数据库记录不一致   

5

文件校验和不一致(可能被修改)

T

文件修改时间与数据库记录不一致

M

文件模式或权限与数据库记录不一致


3. 常见命令及所属包

命令 

所属 RPM 包

用途  

find

findutils

文件搜索工具

ls

coreutils

文件列表显示

netstat

net-tools

网络连接和端口查看 

ps

procps-ng

进程查看工具  

top

procps-ng

系统资源监控

df/du

coreutils

磁盘空间统计

ifconfig

net-tools

网络接口配置

ping

iputils

网络连通性测试   

ssh

openssh-clients

SSH 客户端 

systemctl

systemd

系统服务管理(CentOS 7+)


4. 异常处理

   若发现命令被篡改(rpm -V 有输出),可通过以下方式恢复:

# 恢复被篡改的 procps-ng 包yum reinstall procps-ng -y# 恢复所有被修改的包(谨慎使用)yum reinstall $(rpm -Va | awk '{print $NF}' | xargs rpm -qf | sort -u) -y
如何识别 Linux 中的隐藏进程?一篇讲解黑客常用手法与检测手段

(二)无文件进程检测

1. 使用 unhide 工具  

   unhide是专门检测隐藏进程的开源工具,支持多种检测技术。  

   unhide proc

   该命令扫描 /proc文件系统,识别未被常规工具列出的进程。

2. 检查已删除但仍运行的文件  

   使用 lsof 查找被删除但仍被进程打开的文件:  

   lsof | grep deleted

   这类文件可能是无文件攻击的一部分。

3. 恢复被删除的文件

   通过 /proc/<pid>/fd/<fd>恢复文件:  

   cp /proc/<pid>/fd/<fd> /tmp/recovered_file

   方便取证和分析恶意代码。

(三)内核级威胁排查

1. 检测恶意内核模块

   - 使用 lsmod 查看已加载模块,过滤系统必需模块,排查可疑模块:  

     lsmod | grep -vE "loop|virtio|scsi"

   - 若需移除可疑模块,执行:  

 rmmod suspicious_module

   - 若模块被隐藏,可尝试发送特定信号:  

 kill -53 0  ##-53 0 切换当前终端所有内核驱动的可见状态,该操作依赖内核模块的信号处理逻辑,非通用检测方

   - 结合 dmesg查看内核日志,发现异常加载信息。

2. 挂载点与文件系统检查  

   - 查看当前挂载点,排查非标准文件系统:  

mount | grep -vE "ext4|xfs|tmpfs"

   - 强制卸载可疑挂载点:  

umount /path/to/mountpoint -l


参考链接

https://research.qianxin.com/archives/1898

https://forum.butian.net/share/3970



-End-


如果觉得我的分享有用

[点赞+分享+关注]

原文始发于微信公众号(网络个人修炼):如何识别 Linux 中的隐藏进程?一篇讲解黑客常用手法与检测手段

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月12日09:36:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何识别 Linux 中的隐藏进程?一篇讲解黑客常用手法与检测手段https://cn-sec.com/archives/4157280.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息