日前一台服务器被黑,被搞成了矿机,这里记录一下解决过程:
照例用htop查看一台服务器运行情况,发现了可疑进程,cpu占用700%之多,这台服务器基本上是闲置的,肯定不正常
可以看到进程名为minerd
首先看进程pid,查找进程占用文件
除了看到占用文件外,还看到一个实时的向外的TCP连接,首先禁止掉这个连接
剩下的就是一一揪出可疑的文件了
找到/lib/firmware/目录下存在yam文件夹
bin后缀名不正常,删掉
/home/目录下存在非正常可执行文件,名字就叫做minerd
拿到root权限后如果想要登录,一般是添加公钥了,查看.ssh目录
一切正常,不应该啊,回想起前几天进入.ssh目录发现一个可疑的文件,记录着一段公钥,编码不太正常,部分乱码,当时隐隐觉得有问题,但只是隐隐觉得,没多想随手删掉了,现在想想当时真机智,查看历史命令记录果真没记错
为防止再生查看crontab
果真发现了可疑任务,这段也是前几天查看crontab注释掉的,再次为自己的机智点赞。
然后killall minerd查看是否再生,两天了进程没有再现,由此得知服务器安全了。
事实上阿里云盾在侵入后已经提示了非法登陆,只不过谁没事登陆阿里云账号呢,其他人也没注意就过去了。
剩下的就是慢慢收尾了,查看一些配置文件是否被修改了。
看来入侵的人技术还不太高,若甩出个ssh后门,chattr锁定系统文件什么的就更麻烦了。
至于入侵,估计是Redis 未授权访问缺陷的原因,目前临时禁止redis的对外链接,下周优化下防火墙规则和redis安全。
[更新]
优化了一下防火墙规则,阿里云服务器有两个网卡,外网与内网各一个,针对不同网卡指定不同的规则,redis走外网也通过IP白名单,基本上安全了
[附]
修复 redis 的后门,
- 配置bind选项, 限定可以连接Redis服务器的IP, 并修改redis的默认端口6379.
- 配置AUTH, 设置密码, 密码会以明文方式保存在redis配置文件中.
- 配置rename-command CONFIG “RENAME_CONFIG”, 这样即使存在未授权访问, 也能够给攻击者使用config指令加大难度
- 好消息是Redis作者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如conf