必须通过文件访问行为反推勒索进程pid:用inotifywait捕获首个被加密文件,再结合lsof、/proc/pid/fd句柄分析、cmdline与exe路径校验,识别批量操作目标文件且 cmdline异常或exe指向/tmp/.logd等可疑路径的进程,警惕ebpf隐藏场景。

直接查不到“勒索进程”的PID,因为真正在加密的进程往往不是启动者,而是被它 fork 出来的子进程或加载的动态库——必须从文件访问行为反推源头。
用 inotifywait 实时捕获首个被加密的文件路径
勒索软件一启动就会批量 open()、read()、write()、rename() 文件,inotify 是唯一能抢在加密完成前拿到“第一个受害者文件”的手段:
- 先安装:yum install -y inotify-tools(CentOS)或 apt install -y inotify-tools(Ubuntu)
- 监控关键目录(如 /home、/var/www、/data):
inotifywait -m -e create,open_write,moved_to,attrib /home 2>/dev/null | head -n 1 - 一旦触发,立刻执行:
lsof +D /home 2>/dev/null | awk '$9 ~ /^\/home/ {print $2}' | sort -u,得到所有正在操作该目录的 PID - 注意:不要用
inotifywait -r递归监控大目录,会卡死;优先盯住业务数据目录,而非全盘
查 /proc/[PID]/fd 下是否批量持有 .docx/.xlsx/.pdf 等目标文件句柄
真实勒索进程不会只开 1–2 个文件,它会在内存中批量 hold 住数百个待加密文件的 fd —— 这是比 CPU 占用更可靠的特征:
- 对每个可疑 PID 执行:
ls -l /proc/<code>PID/fd 2>/dev/null | grep -E '\.(docx|xlsx|pdf|sql|bak|zip)$' | head -n 5 - 如果输出里出现大量
-> /home/user/xxx.docx且路径集中、扩展名高度一致,基本可锁定 - 避免误判:正常备份进程(如 rsync)也会打开多文件,但它的
cmdline里必含rsync或tar,而勒索进程 cmdline 往往为空、含随机字符串,或指向/tmp/.logd类路径
用 ss -tunlp 和 lsof 交叉验证外连控制端口是否匹配加密进程
绝大多数勒索软件需连接 C2 下发密钥或上传加密日志,但这个连接常由主进程建立,而加密动作由子进程执行——必须把网络和文件行为串起来:
- 运行:
ss -tunlp | awk '$7 ~ /pid=/ {gsub(/.*pid=/,"",$7); gsub(/,.*/,"",$7); print $7}' | sort -u,提取所有带进程信息的监听/连接 PID - 再对这些 PID 执行:
cat /proc/<code>PID/cmdline 2>/dev/null | tr '\0' ' ',看是否含可疑参数(如--key-server=、-c 192.168.31.197:60065) - 重点检查 cmdline 为空或只含
/lib64/ld-linux-x86-64.so.2的 PID:这说明它可能是通过 dlopen 加载恶意 so 后 fork 出的子进程,真正的加密逻辑不在主二进制里
别信 ps aux 里的进程名,直接读 /proc/[PID]/exe 的真实路径
勒索进程常把自己重命名成 [kthreadd] 或 [irq/0] 来躲过 ps 检查,但 /proc/PID/exe 是内核硬链接,无法伪造:
- 对高可疑 PID 执行:
ls -l /proc/<code>PID/exe 2>/dev/null - 若显示
-> /tmp/.X11-unix/ssh、-> /dev/shm/.logd或(deleted),100% 是恶意进程 - 若显示
-> /usr/bin/python3,别急着放过——继续查:lsof -p <code>PID| grep cwd,看工作目录是否为/tmp或/dev/shm;再查cat /proc/<code>PID/environ 2>/dev/null | tr '\0' '\n' | grep -i preload,确认是否用了 LD_PRELOAD 注入
最易被忽略的一点:勒索进程可能根本没有“PID”——它用 eBPF 或内核模块直接 hook sys_openat 等系统调用,在用户态进程列表里完全不可见。此时 inotifywait 仍有效,但 ps、top、lsof 全部失效,必须切到离线取证或用 eBPF 工具(如 bpftrace)抓 syscall 行为。











