从你给出的检查结果来看,ps 命令没有被别名/函数/路径劫持,但 /bin/ps 的文件大小(2011136 字节,约 2mb)远大于正常 centos 系统的 ps(正常约 100kb),且 md5 值异常,核心结论是:
ps 二进制文件被恶意替换了。我帮你一步步修复并验证。
一、结果分析(关键异常点)
| 检查项 | 你的结果 | 正常 centos 7 参考值 | 结论 |
|---|---|---|---|
| 文件大小 | 2011136 字节(2mb) | ~108kb(108880 字节) | 文件被替换 |
| md5 值 | e1fa11d4542d72f062b7669f74130fa5 | 0f9b9968a8b6f997(示例,不同版本略有差异) | md5 异常 |
| 路径/别名 | /bin/ps,无别名 | /bin/ps,无别名 | 正常 |
| type -a | /bin/ps、/usr/bin/ps | 仅 /bin/ps(/usr/bin/ps 是软链接) | 次要异常(无影响) |
二、立即修复:恢复原始ps二进制文件
步骤1:备份被篡改的ps(留痕排查)
mv /bin/ps /bin/ps.malicious # 重命名恶意文件,避免直接覆盖
步骤2:重装procps-ng包(恢复正版ps)
# 强制重装 procps-ng(包含 ps/top 等工具) yum reinstall -y procps-ng # 若提示包损坏/无法下载,先清理缓存再重装 yum clean all && yum makecache && yum reinstall -y procps-ng
步骤3:验证修复后的ps(核心)
# 1. 检查文件大小(应恢复到 ~100kb) ls -l /bin/ps # 2. 检查 md5(恢复正常) md5sum /bin/ps # 3. 检查 type -a(正常应为 /bin/ps,/usr/bin/ps 是软链接) type -a ps # 4. 测试 ps 功能(只输出目标进程,无多余内容) ps -ef | grep 'efl-server.jar' | grep -v grep
三、修复后正常结果参考
# ls -l /bin/ps 正常输出 -rwxr-xr-x. 1 root root 108880 6月 10 2024 /bin/ps # type -a ps 正常输出 ps is /bin/ps ps is /usr/bin/ps # /usr/bin/ps 是软链接,属于正常 # ps 测试正常输出(仅显示 efl-server.jar 进程) root 14823 0.7 2.9 23063456 1921232 ? sl 09:50 0:08 java -jar ... efl-server.jar
四、额外清理:消除/usr/bin/ps重复项(可选)
# 检查 /usr/bin/ps 是否为软链接(正常应为指向 /bin/ps) ls -l /usr/bin/ps # 若不是软链接,删除后重建 rm -f /usr/bin/ps ln -s /bin/ps /usr/bin/ps # 验证 type -a ps
五、修复后验证核心需求
执行你之前的目标命令,确认无多余内容:
# 精准查找 efl-server.jar 进程(只输出目标,无系统进程) ps -ef | grep 'efl-server.jar' | grep -v grep # 批量终止进程(恢复正常功能) pgrep -f 'efl-server.jar' | xargs kill -9
总结
- 核心问题:
ps二进制文件被恶意替换(大小/md5 异常),导致输出大量无关内容; - 修复关键:
yum reinstall -y procps-ng重装系统正版ps; - 验证标准:修复后
ps -ef | grep 关键词 | grep -v grep只输出目标进程,文件大小恢复到 ~100kb。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论