首页/安全/应急响应速查/busybox 静态工具应急排查

busybox 静态工具应急排查

系统自带命令被替换或损坏时,用静态编译的 busybox 提供 ps、netstat、find 等基础能力,绕过被劫持的 PATH。

应急响应速查安全更新于 2026-10-13

busybox 是什么

busybox 把上百个常用命令编译进一个静态链接的二进制里,靠参数或软链接决定执行哪个子命令(busybox ps 等价于 ps)。它在应急排查里的价值不在功能多,而在不依赖目标主机的动态库、PATH 与命令文件本身:宿主机的 ps、find 被替换或删掉时,从只读介质拷一个 busybox 过来就能拿到一套可信视图。

基本信息

适用平台Linux 各发行版(常见静态编译版)
调用方式./busybox <子命令>
常用子命令ps / netstat / find / ifconfig / vi / sh
权限要求root(才能看到全部进程与连接)
体积单文件、静态链接,无 glibc 依赖
局限字段少于原生命令,仅作交叉验证

典型使用场景

  • 系统自带 ps、netstat 被替换或删除,需要可信工具获得进程与连接视图
  • PATH 被指向假命令目录,用绝对路径绕开被劫持的命令解析
  • 离线主机没有可用包管理器,从 U 盘拷单个文件即可上手
  • 给救援介质(救援 U 盘、PXE 镜像)准备一套最小可用命令集
  • 与原生命令交叉比对,两套输出不一致本身就是线索

绕过可疑环境调用

绕过可疑环境调用
chmod +x ./busybox                     # 从只读介质拷来先补执行位
./busybox --list | head -n 30          # 看编译进去的子命令清单
./busybox ps -ef | head -n 20          # 不依赖系统 ps 的进程列表
./busybox netstat -antp | grep ESTAB   # 已建立连接,含 pid
./busybox find / -name 'ld.so.preload' 2>/dev/null  # 用不依赖系统的 find
/path/to/busybox sh                    # 起干净 shell,再逐条排查

与原生工具的取舍

对比项系统原生命令busybox
字段完整度完整:含 lstart、wchan 等精简:多为基础列
可信前提依赖动态库与文件本身未被替换静态单文件,可自带
适用阶段环境正常时的日常与取证环境不可信时的交叉验证
输出解析脚本解析已成惯例列名有差异,脚本要适配
busybox 的 ps 不带启动时间与等待通道,netstat 的进程信息也有限:靠它定位到可疑 PID 后,仍要回 /proc/<PID>/ 看 cmdline、exe、environ、lstart 补细节。
/tmp、/dev/shm 常被挂载为 noexec:拷进去会直接被拒执行。先看 mount 输出确认挂载选项,必要时换到 /var/tmp 或改用可执行介质。

易错点

  • 系统 ps 已被替换还照常敲 ps:看到的是攻击者给的假数据,整份判断作废;先用绝对路径或 busybox 交叉验证
  • 拷到 /tmp 却忘了 chmod +x 或用相对路径调用:报 Permission denied 或跑到了别处,统一用绝对路径
  • 只信 busybox 的结论:字段精简容易漏掉启动时间等关键判据,必须回 /proc 补齐
  • 把 busybox 装进系统 PATH 覆盖原生命令:制造新的混乱,还会破坏后续取证的可信度

数据来源与参考

  • busybox 官方文档(busybox.net)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌