起因
postgreSQL我做错了这几件事情
- 开启了全部IP登陆权限
- postgreSQL用的是默认用户名和密码
- 用户postgres也没有设置密码,直接用su - postgres就能登陆
不知道是什么原理,反正服务器被侵入,并且注入了病毒文件
1. 基本信息排查
linux服务器被挖矿的解决办法
记一次公网postgresql数据库服务器被入侵为矿机的定位过程
服务器被黑客用来挖矿?怎么办?
挖矿入侵Linux系统排查步骤
使用top定位程序,以及查看程序的脚本
首先使用top命令,发现占用内存最高的程序
来自ChatGPT的回答
如果你已经确定了某个进程或者命令的 PID,那么可以使用以下命令反向定位是哪条指令对应着该进程或命令:
cat /proc/<PID>/cmdline
发现该命令在/tmp目录下
检查host是否被篡改
使用cat /etc/hosts
,发现host被篡改,删除即可
检查定时任务
这一部分可以具体参考https://blog.csdn.net/JAVA88866/article/details/124767688
输入crontab -e
查看定时任务
注意:我用root账号登陆的时候,执行该指令没有任何东西。但是当我su - postgres
的时候再执行,就发现了这个定时任务
删除定时任务,如果不放心,可以停止定时任务
2. 删除挖矿任务
由于该挖矿任务是个常见任务,因此网上很多教程,我参考的是
kdevtmpfsi挖矿病毒,反复启动,守护进程kinsing害人不浅,一次彻底删除
1.首先,
top
系统进程
2.接着输入命令
systemctl status 12625
,查看具体进程
也可以分别用以下两个命令查看进程
ps -aux | grep kinsing
ps -aux | grep kdevtmpfsi
3.分别kill 掉这两个进程,一定要两个都kill掉,刚开始处理的时候只kill了主进行,没有处理守护进程,导致一会又挖矿机器> 又启动开始工作,cpu 又跑到100%
kill -9 5140 -9是彻底结束这个进程
kill -9 12625
4.删除两个进行的执行文件
rm -rf /tmp/kinsing
rm -r /tmp/kdevtmpfsi
服务器不同,可能路径不同,可以直接用命令查找
find / -name kdevtmpfsi
find / -name kinsing
找到后按照路径直接删除
5.查看kdevtmpfsi文件存在/tmp目录下,这边已将kdevtmpfsi文件权限取消,并结束进程
6.使用lsof查看该进程存在异常IP连接,比如:45.129.2.107,在服务器安全组中将该IP禁用,并重启服务器
7.最后,一定要重置系统上的所有用户密码,检查服务安全组,尤其是远程端口!!!
top
systemctl status PID
ps -aux | grep kinsing
ps -aux | grep kdevtmpfsi
kill -9 PID
kill -9 18534
rm -rf kdevtmpfsi
rm -rf /var/tmp/kinsing 这个守护进程的文件一定要干掉,也可以用这个命令
find / -name kdevtmpfsi
find / -name kinsing