记录一次服务器被入侵的解决方法
一:问题说明
1、我的服务器是使用的阿里云的CentOS,收到的阿里云发来的提示邮件如下
然后我查看了运行的进程情况(top
命令),看到一个名为minerd的进程占用了99.5%的CPU
2、minerd是个挖矿程序,什么是“挖矿”,特此百度了一下,
所谓“挖矿”实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性。比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为赏金,奖励获得答案的人。
比特币的本质其实就是一堆复杂算法所生成的特解。特解是指方程组所能得到无限个(其实比特币是有限个)解中的一组。而每一个特解都能解开方程并且是唯一的。[8] 以人民币来比喻的话,比特币就是人民币的序列号,你知道了某张钞票上的序列号,你就拥有了这张钞票。而挖矿的过程就是通过庞大的计算量不断的去寻求这个方程组的特解,这个方程组被设计成了只有 2100 万个特解,所以比特币的上限就是 2100 万。[8]
所以才会这么占CPU。
二:解决方法
1、网上看到有人遇到了同样的问题,链接地址:
http://blog.csdn.net/hu_wen/article/details/51908597
文中使用了StackExchange上一个回答的解决方法:
http://security.stackexchange.com/questions/129448/how-can-i-kill-minerd-malware-on-an-aws-ec2-instance
尝试使用上述步骤解决:
(1)关闭访问挖矿服务器的访问 iptables -A INPUT -s xmr.crypto-pool.fr -j DROP
和iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
(2)删除/usr/local/etc
下root文件中的内容
(3)删除yam
文件(我的yam文件不是在上面说的/opt
目录下的,使用find
命令查找,然后删除)
(4)删除 /root/.ssh/KHK75NEOiq
(5)删除/opt/minerd
和 /opt/KHK75NEOiq33
(6)杀死minerd进程,pkill minerd
或者kill -9 进程Id
(7)前面步骤没有问题,到这里我是没有lady
这个服务的,杀死minerd
进程后过大约5分钟左右minerd
进程又出现了。
问题没有解决。
2、然后看到如下一个解决方法
http://www.cnblogs.com/zhouto/p/5680594.html
(1)同1中的第一步
(2)chmod -x minerd
,取消掉执行权限
(3)杀死进程 pkill minerd
(4)然后运行一段时间发现minerd没有出现了
问题解决。
三:总结
因为我CentOS上安装了Redis,看网上说是黑客利用Redis的漏洞获得了服务器的访问权限。http://blog.jobbole.com/94518/
上周末,更新易云盘的时候,发现阿里云服务器CPU很高,执行 top 一看,有个进程minerd尽然占用了90%多的CPU, 赶紧百度一下,查到几篇文章都有人遇到同样问题
Hu_Wen遇到的和我最相似,下边是他的解决办法
http://blog.csdn.net/hu_wen/article/details/51908597
但我去查看启动的服务,尽然没有 lady 这个服务。 找不到始作俑者,那个minerd进程删掉就又起来了,后来想了个临时办法,先停掉了挖矿的进程
1. 关闭访问挖矿服务器的访问 iptables -A INPUT -s xmr.crypto-pool.fr -j DROP
and iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
.
2. chmod -x minerd ,取消掉执行权限, 在没有找到根源前,千万不要删除 minerd,因为删除了,过一回会自动有生成一个。
3. pkill minerd ,杀掉进程
4. service stop crond 或者 crontab -r 删除所有的执行计划
5. 执行top,查看了一会,没有再发现minerd 进程了。
解决minerd并不是最终的目的,主要是要查找问题根源,我的服务器问题出在了redis服务了,黑客利用了redis的一个漏洞获得了服务器的访问权限,
http://blog.jobbole.com/94518/
然后就注入了病毒
下面是解决办法和清除工作
1. 修复 redis 的后门,
- 配置bind选项, 限定可以连接Redis服务器的IP, 并修改redis的默认端口6379.
- 配置AUTH, 设置密码, 密码会以明文方式保存在redis配置文件中.
- 配置rename-command CONFIG “RENAME_CONFIG”, 这样即使存在未授权访问, 也能够给攻击者使用config指令加大难度
- 好消息是Redis作者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如conf
2. 打开 ~/.ssh/authorized_keys, 删除你不认识的账号
3. 查看你的用户列表,是不是有你不认识的用户添加进来。 如果有就删除掉.
易云盘 免费在线企业云盘,支持文件加密,权限设定.