起因
一早起来就收到了阿里云的紧急安全事件:挖矿病毒的短信,马上开始排查
(此时我还没意识到事情的严重性[其实也不严重],我想着被打进来了,刚好趁这次来简单熟悉一下应急响应来着,因此没直接杀进程)
查看CPU占用
占用了99.9%,肯定不正常,是普通用户admin
(阿里云默认用户)
命令名字是kswapd0
,通过浏览器搜索得到的第一个结果: kswapd0 是系统的虚拟内存管理程序,但占用了99.9%的CPU,肯定不正常,猜测和搜索到的不是同一个东西.
(阿里云安全平台将这次攻击定义为挖矿病毒,见后面)
在网上查证发现,这种病毒早在18年就发现了
排查kswapd0
的进程
ps aux |grep kswapd0
root 90 0.0 0.0 0 0 ? S 03:57 0:07 [kswapd0]
root 8008 92.4 0.0 40568 6820 ? Ssl 06:29 0:29 ./kswapd0
admin 8023 0.0 0.0 6432 668 pts/0 S+ 06:30 0:00 grep --color=auto kswapd
确实有一个同名的,这个应该是真的
来自Bard AI:[kswapd0]
表示该进程是kswapd0
守护进程。kswapd0
是 Linux 内核中的内存交换守护进程,负责将内存中不常使用的部分交换到磁盘上,以腾出内存空间供其他进程使用。
(此时机器已经很卡了,但还不想杀进程...)
查看网络连接
netstat -antlp|grep kswapd0
通过 IP查询到这是一个米兰的IP
分析到这里的时候就服务器就卡死了...
重启-关机-开机都不行(服务器配置新加坡-2核1G)
因为磁盘I/O读写不正常,ssh死活是连不上.
折腾了好几个小时终于可以再次连接了(差点就重置操作系统了)
使用阿里云的命令助手插件执行反弹shell的命令得到如下shell
这时候就怕再次卡死,于是就杀了./kswapd0
的进程
通过这样也可以查看文件所在
root@ziion-sec554 /h/a/.c/a# ps aux --sort=-%cpu | head -n 3
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
admin 278289 189 0.1 2439876 9104 ? Ssl 09:02 1:08 ./kswapd0
ziion 276764 2.8 4.1 3295300 336340 ? Sl 08:45 0:29 /usr/lib/firefox/firefox http://www.minpop.com/sk12pack/names.php
root@ziion-sec554 /h/a/.c/a# ls -l /proc/278289/exe # 显示进程 278289 的执行文件的名称和权限
lrwxrwxrwx 1 admin admin 0 Jan 30 09:02 /proc/278289/exe -> /home/admin/.configrc5/a/kswapd0*
处理
将这个进程杀掉,删除定时任务,删除文件就可以了
具体操作如下
# 删除定时任务,以防死灰复燃
crontab -r -u admin
# 杀死进程
kill -9 1068
# 将挖矿病毒备个份 :)
zip -r kswapd0.zip .
# 删除病毒文件
rm -rf /home/admin/.configgrc5
在应急响应过程中,发现了/home/admin/.ssh/authorized_keys
文件被加入了rsa公钥,将其删除
echo '' > /home/admin/.ssh/authorized_keys
关掉不常用的用户的ssh远程连接
root@koi ~# vim /usr/ssh/ssh_config
DenyUsers admin # 添加
阿里云盾里的报警
总结
此次事件的起因是我为了方便,将阿里云默认用户admin改成了弱口令(图方便),不知道怎么就被扫到了,虽然是29号凌晨三天才发的告警,通过查看/var/log/auth.log
中的连接记录可以知道在28号就有不断地ssh暴力破解
爆破时间挺长的,但是没在日志里面找到admin用户ssh连接成功的日志:(.
样本链接 提取码:mars (仅供学习研究,请勿非法传播)