前言
昨天半夜收到短信提醒,说我的服务器遭受了恶意挖矿程序攻击:


中午有空打开后台,一看 CPU 占用率居然怎么高了!

赶紧登陆看看情况

精彩推荐
- 🔥🔥🔥MCP TypeScript SDK 初体验:挑战快速搭建一个 AI 应用!
- 💎这么做,cursor 生成的代码更懂你!💎
- VsCode Colipot 🚗 + MCP Tools ✈️ = 让你的编程体验直接起飞 🚀🚀🚀
- 更多精彩文章欢迎关注我的公众号:萌萌哒草头将军
正文
追因溯源
先确认是否有异常 CPU 或内存使用情况:
bash
top -c

COMMAND 是 perfctl:这个名字看起来像是在伪装系统性能控制命令,但实际上 CentOS 或其他主流 Linux 发行版并没有叫 perfctl 的标准程序。
占用 CPU 高达 99%:明显异常,这基本可以确认是挖矿程序伪装的。
bash
ps -o pid,ppid,cmd -p 27519
bash
ps -fp 19226

握草,居然是熟悉的 PostgreSQL
,之前的文章里介绍过它,因为安装了Konga
部署过网关!

文件藏在 /tmp/.perf.c/ 并带有 隐藏目录名(点号开头),是典型的恶意行为
bash
ls -l /proc/27519/exe
lrwxrwxrwx 1 polkitd input 0 Apr 21 13:25 /proc/27519/exe -> /tmp/.perf.c/perfctl (deleted)
它的父进程是 postgres(PID 19226),但运行用户是 polkitd,极不寻常;
bash
Docker shim (容器进程)
└── postgres (polkitd 身份运行)
└── perfctl (后门)
处理
杀掉恶意进程:
bash
kill -9 27519
检查可疑文件
bash
ls -alh /tmp
ls -alh /dev/shm
ls -alh /var/tmp

没发现可疑文件,已经运行之后就删除了文件,
停止进程:
bash
docker stop c70e5c3e6045
删除容器:
bash
docker rm 027ccf656dc1
删除镜像:
bash
docker rmi 027ccf656dc1
总结

回头看,攻击提醒里居然已经定位到了问题在哪了!真的太厉害了,呼吁各位不要像我一样,折腾这么多新玩意,太容易中招了!
最后发现这个漏洞一直存在
注意!PostgreSQL 存在安全漏洞,请及时更新版本或者停用删除相关服务,防止中招!
