记一次服务器被挖矿的处理解决

问题发现:

docker最近总是莫名其妙的下载镜像启动容器,且并没有其他镜像是需要下载ubuntu作为底层包的。有意思的是每隔两个小时左右启动一个容器,没有将cpu资源完全消耗,保持可用。

开始排查

命令查看陌生容器的日志 docker logs -f containerId,发现典型kinsing挖矿病毒 !

last 命令查看登录记录

last命令 last 列出当前和曾经登入系统的用户信息> 它默认读取的是/var/log/wtmp文件的信息> 输出的内容包括:用户名、终端位置、登录源信息、开始时间、结束时间、持续时间。> 注意最后一行输出的是wtmp文件起始记录的时间。> 当然也可以通过 last -f 参数指定读取文件,可以是/var/log/btmp、/var/run/utmp

[root@ls ~]# last
root     pts/0        112.***.24.78  Fri Mar  4 20:14   still logged in
root     pts/0        106.***.60.63     Fri Mar  4 19:00 - 19:02(00:02)
root     pts/0        113.***.202.122Fri Mar  4 17:16 - 17:17(00:01)
root     pts/0        117.***.117.234   Fri Mar  4 16:47 - 16:51(00:04) 

IP 查询,如若未发现异常,推断应该是:攻击者清除了登录记录日志导致的。

last -f btmp 查看记录错误的登录尝试日志

btmp 文件 /var/log/btmp 用于记录错误的登录尝试> /var/log/btmp 文件过大形成原因:可能存在暴力破解登录所致> 文件过大的解决方法:

  • 初步清理该文件 echo > /var/log/btmp
  • 更换远程登录端口
  • lastb 查看具体信息,查找出现次数较多的,封IP
# 查找恶意登录的前十个IP,查询其归属地如下:
[root@centos log]# lastb | awk '{ print $3}' | awk '{++S[$NF]} END {for(a in S) print a, S[a]}' | sort -rk2 |head
177.124.99.182 99   巴西圣卡塔琳娜
163.44.197.129 98   泰国曼谷
155.94.194.111 98   美国 加利福尼亚
154.83.17.188 98  美国 加利福尼亚
202.159.24.66 97  印度尼西亚 大雅加达 雅加达
185.110.243.137 97土耳其
181.199.122.86 97   厄瓜多尔
178.128.215.16 97   新加坡
103.84.236.222 97   印度 北阿坎德
179.43.156.214 96   瑞士 Zurich
# 查看Linux 文件系统磁盘的使用情况
df -h
#封禁ip
[root@centos ~]# iptables -I INPUT -s ***.***.***.***-j DROP 

再查看一下 root 用户执行的命令的历史记录

一般病毒会挟持root权限,如果没被清除记录,可以用此命令查询记录> 初步判断应该是被字典暴力破解从外部攻入。

[root@ls log]# history 500 

查看是否存在奇怪的定时任务

#这种病毒一般都会有定时任务存在
cd /var/spool/cron
#在此目录下,ll 一下可以看到定时任务列表,cat 看一下,存在陌生定时任务,将他删除 

top 命令查看CPU 占用

[root@ls log]# top 

可以发现 CPU 占用极高,其中 PID 921605这个进程 CPU 占用率极大。关键词:kdevtmpfsi, 看来我是中了两个挖矿病毒啊 👏

解决:

PS:通过 ps -ef 命令查出 kdevtmpfsi 进程号,直接 kill -9 进程号并删除 /tmp/kdevtmpfsi 执行文件。但没有过1分钟进程又运行了,这时就能想到,kdevtmpfsi 有守护程序或者有计划任务。通过 crontab -l 查看是否有可疑的计划任务。

#查看 kdevtmpfsi 进程
[root@centos ~]# ps -ef | grep kdevtmpfsi
root      921603 4101736  0 14:20 ?        00:00:00 [kdevtmpfsi] <defunct>
root      921605 4101736 89 14:20 ?        00:26:08 /tmp/kdevtmpfsi
root     2049891  837107  0 14:49 pts/0    00:00:00 grep --color=auto kdevtmpfsi
[root@centos ~]# crontab -l #查找可疑定时
no crontab for root
[root@centos ~]# systemctl status 837107       #根据第一步知道 kdevtmpfsi 进程号是 837107,使用 systemctl status 837107 发现 kdevtmpfsi 有守护进程
● session-22.scope - Session 22 of user root
   Loaded: loaded (/run/systemd/transient/session-22.scope; transient)
Transient: yes
   Active: active (running) since Tue 2022-06-28 14:18:33 CST; 31min ago
  Tasks: 9
   Memory: 368.0M
   CGroup: /user.slice/user-0.slice/session-22.scope
           ├─ 836189 sshd: root [priv]
           ├─ 836969 sshd: root@pts/0,pts/1
           ├─ 837107 -bash
           ├─ 837202 -bash
           ├─ 839365 top
           ├─2055827 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;echo finalshell_separator;uptime;echo finalshell_separator;cat /proc/net/dev;echo finalshell_separator;df;echo finalshell_separ>
           ├─2055858 sleep 1
           ├─2056021 systemctl status 837107
           └─2056026 less
​
Jun 28 14:18:33 centos systemd[1]: Started Session 22 of user root.
​ 

至此,我们已经找到了病毒的相关进程,kill 掉 kdevtmpfsi 守护进程 kill -9 PID,再 killall -9 kdevtmpfsi 挖矿病毒,最后删除 kdevtmpfsi 执行程序 rm -f /tmp/kdevtmpfsi

事后检查&预防

检查 root 用户 .ssh 目录下 authorized_keys 是否被配置了后门的 ssh 的 key

修改SSH端口

vim /etc/ssh/sshd_config 

开启防火墙,只开放必须开放的端口,或者绑定ip访问

补充

登录相关

last命令,对应的日志文件/var/log/wtmp; 成功登录用户
lastb命令,对应的日志文件/var/log/btmp; 尝试登录信息
lastlog命令,对应的日志文件/var/log/lastlog; 显示最近登录信息 

清除登陆系统成功的记录

[root@localhost root]#echo > /var/log/wtmp//此文件默认打开时乱码,可查到ip等信息
[root@localhost root]#last//此时即查不到用户登录信息 

清除登陆系统失败的记录

[root@localhost root]# echo > /var/log/btmp//此文件默认打开时乱码,可查到登陆失败信息
[root@localhost root]#lastb//查不到登陆失败信息 

Bash历史相关

<空格>command //在执行命令时,指定Bash不保存执行历史
history -r //清除当前登录session的历史
history -cw //清除所有历史 

清除历史执行命令

[root@localhost root]# history -c //清空历史执行命令
[root@localhost root]# echo > ./.bash_history//或清空用户目录下的这个文件即可 

参考:【2022-03-04】记一次服务器被挖矿的处理过程Linux 服务器上有挖矿病毒 kdevtmpfsi 如何处理?# 学习计划安排

我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值