无意中的发现
4月9日18:30,我如同往常一般,打开我的阿里云服务器控制台看看流量用了多少,却发现CPU占用率很高。于是我立即连上了SSH,通过htop查看是谁占用了这么高。
我立刻搜索了xmrig,得知这是一个用于挖矿的程序。我尝试kill进程,但是kill了之后立马重新启动了。于是我直接删掉了 /root/.cache/xmrig 可执行文件再 kill,才让它停下来。
斩草除根
随后查询CPU占用率,发现是从15:45开始挖矿的。
检查了阿里云的安全中心,发现在15:45有一条“异常登录-ECS在非常用地登录”的记录。
翻查了系统日志也确认了这一点。
在/root/.cache/目录下,除了XMRig挖矿程序之外,还有两个配置文件以及miner.sh——一个启动挖矿的脚本。我尝试修改该脚本以定位挖矿程序的唤起者,但服务器重启后该脚本并没有执行。
继续翻查系统日志并查询他人经历,发现了有一个名为“moneroocean.service”的服务启动,并且因为删除了挖矿程序而报错,随即禁用并删除了该服务。
至此,挖矿程序已彻底移除。
提权疑云
服务器的另一使用者发现root账户下多了一条SSH秘钥,可见攻击者正是利用这条秘钥登录我的服务器并安置挖矿程序的。
但是,我的服务器从未使用SSH登录root账户,root账户也没有设置密码。这条秘钥是怎么创建的,算是一个未解之谜——可能利用了某些软件的漏洞创建的。
为了防止下次攻击,我将SSH配置文件的“PermitRootLogin”设置为“no”,禁止使用root账户直接登录服务器。另外,也删除了攻击者创建的root账户秘钥,删除过程中发现该秘钥有禁止删除的标记。
阿里云服务器提供的系统镜像默认启用了root登录,网页控制台也有引导设置root账户密码。
一些建议
不要直接使用root账户登录你的服务器,并禁止服务器SSH的root登录。
请创建一个普通账户并将其加入sudoers。需要用root权限执行命令时,请在命令前加上“sudo ”;非必要不要直接使用root shell执行命令。
- root shell容易因操作失误对服务器造成破坏——“root敢死队”
- 他人通过某些方式创建了root账户秘钥后可以登录服务器安置恶意程序或造成其他破坏。
怎么说呢,即使你禁止 SSH 使用 root 账户直接登录服务器,用其他账户“sudo -i”一下就进 root 了
这东西真的就靠自己定时查毒了,即使不用 root 权限有时候也能干很多事情了,所以阿里不改更改密码的逻辑无可厚非,因为有些人就是习惯 root
但是腾讯云装 Ubuntu 默认就是把 root 给锁了,其他系统就是默认 root