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

短信提醒

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

CPU 使用率
赶紧登录看看情况,

卡住了进不去
先确认是否有异常 CPU 或内存使用情况:
top -c

polkitd
COMMAND 是 perfctl:这个名字看起来像是在伪装系统性能控制命令,但实际上 CentOS 或其他主流 Linux 发行版并没有叫 perfctl 的标准程序。
占用 CPU 高达 99%:明显异常,这基本可以确认是挖矿程序伪装的。
ps -o pid,ppid,cmd -p 27519ps -fp 19226
查找父进程
握草,居然是熟悉的 PostgreSQL,之前的文章里介绍过它,因为安装了Konga部署过网关!

Docker 部署过 PostgreSQL
文件藏在 /tmp/.perf.c/ 并带有 隐藏目录名(点号开头),是典型的恶意行为
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,极不寻常;
Docker shim (容器进程)
└── postgres (polkitd 身份运行)
└── perfctl (后门)
杀掉恶意进程:
kill -9 27519
检查可疑文件
ls -alh /tmp
ls -alh /dev/shm
ls -alh /var/tmp

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

攻击提醒
回头看,攻击提醒里居然已经定位到了问题在哪了!真的太厉害了,呼吁各位不要像我一样,折腾这么多新玩意,太容易中招了!
最后发现这个漏洞一直存在

江南大学的预警提示