从你给出的检查结果来看,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(留痕排查)
|
1
|
mv /bin/ps /bin/ps.malicious # 重命名恶意文件,避免直接覆盖
|
步骤2:重装procps-ng包(恢复正版ps)
|
1
2
3
4
5
|
# 强制重装 procps-ng(包含 ps/top 等工具)
yum reinstall -y procps-ng
# 若提示包损坏/无法下载,先清理缓存再重装
yum clean all && yum makecache && yum reinstall -y procps-ng
|
步骤3:验证修复后的ps(核心)
|
1
2
3
4
5
6
7
8
9
10
11
|
# 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
|
三、修复后正常结果参考
|
1
2
3
4
5
6
7
8
9
|
# 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重复项(可选)
|
1
2
3
4
5
6
7
8
9
|
# 检查 /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
|
五、修复后验证核心需求
执行你之前的目标命令,确认无多余内容:
|
1
2
3
4
5
|
# 精准查找 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。
|