昨天收到阿里云的安全邮件,主机被挖矿程序入侵
linux
有必要了解一下挖矿,百度搜索结果redis
所谓“挖矿”实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记帐系统的一致性。比特币网络会自动调整数学问题的难度,让整个网络约每10分钟获得一个合格答案。随后比特币网络会新生成必定量的比特币做为赏金,奖励得到答案的人。
比特币的本质其实就是一堆复杂算法所生成的特解。特解是指方程组所能获得无限个(其实比特币是有限个)解中的一组。而每个特解都能解开方程而且是惟一的。[8] 以人民币来比喻的话,比特币就是人民币的序列号,你知道了某张钞票上的序列号,你就拥有了这张钞票。而挖矿的过程就是经过庞大的计算量不断的去寻求这个方程组的特解,这个方程组被设计成了只有 2100 万个特解,因此比特币的上限就是 2100 万。算法
使用top命令查看了一下, wbew
这个进程占用了99%的CPU,不能忍,着手找解决方案,百度呗,果真有小伙伴和我遇到了相同的问题
论坛上提供的解决思路,关于minerdshell
首先按照正常思路vim
top
命令或者 ps-ef |grep wbew
(这个须要知道是哪一个程序,能够先top一下) 查看程序的pid 而后kill -9 [pid]
,过了没有多久 ,又启动了,果真没有这么简单centos
而后 删除程序的路径(这个阿里云日志已经指出来了) rm /etc/wbew
,否则能够先find一下安全
通过上面的操做,发现程序在关闭一会以后依然会自动起来,烦死我的服务器
iptables -A INPUT -s xmr.crypto-pool.fr -j DROP 和iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
网上说要这么操做,我感受不太行,由于我是centos7的防火墙操做已经变了,可是死马当活马医吧再删除/usr/local/etc
下root文件中的内容 ,个人这个机器没有,根据程序的表现来看应该是有个计划任务,下面着手来操做计划任务网络
/var/spool/cron/root
,/var/spool/cron/crontabs/root.
,/etc/cron.d/root
从这些计划任务文件中入手 移除恶意脚本的计划任务,你可能会遇到没法写入问题,参考下面的解决方案
chattr -isa /var/spool/cron/root
先去除isa
属性,在使用vim编辑删除恶意计划crontab -l
查看计划任务service stop crond
或者crontab -r
删除全部的执行计划,你会发现根本没用,呵呵chmod -x minerd
,取消掉执行权限 个人是chmod -x /etc/wbew
,根据实际状况来ssh
rm /etc/wbew
删除 ,kill -9 [pid]
而后kill掉进程
而后按照阿里云的提示 /tmp/crloger1
删掉 ,由于脚本下载的程序都/tmp目录
作完这些 ,我也觉得解决了,其实否则,放弃,放弃,睡觉,睡觉,命要紧已经很晚了,服务器关掉吧,反正其余程序被干扰没法运行
次日打开服务器,解决了,再也没有出现 ,发现关键就两个地方,第一个恶意计划,第二个,以前没有说也就是本事件的根源
毕竟解决这个问题不是目的,而是事情的根源redis
服务 ,我不就是偷了个懒,为了统一测试环境 ,将 redis 开放了外网访问,而且没有设置密码,还使用的默认端口,好吧,我活该
登陆服务器后用top命令查看CPU利用率并不高,感受不必定真是挖矿程序在做怪,或挖矿还没启动。用ps -ef命令列出进程,发现一个名为“httpdz”的可疑进程,杀死进程后,这个httpdz又当即启动。
查阅/etc/crontab、/etc/cron.d和/var/spool/cron,后两个目录下的名为root的文件被写入了三个任务计划,是下载一个shell文件并执行。经过查看这个shell文件,程序又从网站下载了一个可执行文件crloger1到/tmp,其属性被置为+ia。
用pstree命令又发现了一个名为migrations的异常进程,文件位于/etc,注意不是migration,也是杀死以后又从新启动。
处理步骤:
修改root密码;
~/.ssh/出现了不认识的authorized_keys,改属性后删除。
删除链接网站下载文件的任务计划;
执行chattr -ia chloger1;
杀死httpdz和migrations,删除/etc/httpdz、/etc/migrations和/tmp/crloger1。
系统没有设置redis密码。设置redis密码, 限定能够链接redis的IP, 改redis默认端口6379。若是不用redis,干脆停掉也行。
观察了24小时,阿里云没有再推送警告。
配置bind选项, 限定能够链接Redis服务器的IP, 并修改redis的默认端口6379.
配置AUTH, 设置密码, 密码会以明文方式保存在redis配置文件中.
配置rename-command CONFIG “RENAME_CONFIG”, 这样即便存在未受权访问, 也可以给攻击者使用config指令加大难度
好消息是Redis做者表示将会开发”real user”,区分普通用户和admin权限,普通用户将会被禁止运行某些命令,如conf
打开 ~/.ssh/authorized_keys
删除你不认识的帐号
查看你的用户列表,是否是有你不认识的用户添加进来。 若是有就删除掉.
防范技巧
requirepass
设置密码;查看定时任务:vim /etc/crontab
列出全部的定时任务:crontab -l
删除全部用户定时任务:crontab -r
cat /etc/rc.d/rc.local
查看恶意操做脚本开机就执行的
近段时间公司的一台服务器被恶意添加了一些定时器任务到crond的配置文件"/var/spool/cron/root"里,本想着只要简单使用crontab -e命令把该恶意的任务去除掉就能够了,但修改后发现不管我怎么努力也保存不了,直接修改文件“/var/spool/cron/root”也不行,我苦思是什么力量让这个拥有至高无上权力的root用户都没法对该文件进行更改和删除。后来经一资深Linux的朋友点拔一下才知道,文件除了有读写执行权限控制外还有更底层的文件属性,这里汲及到的两个查看和更改文件属性的命令是lsattr和chattr。
使用 lsattr /var/spool/cron/root
一看才知道该文件被添加了sia属性:s---ia------- /var/spool/cron/root
,而后使用:chattr -isa /var/spool/cron/root
把这三个属性去除,便可对该文件进行修改了,成功地把该恶意任务去除。
每一丝灵感都值得被记录,每一笔记录都是成长,每一点成长都值得欢呼
博主我的站: www.imisty.cn
CSDN博客: https://blog.csdn.net/lookinthefog
博客园 :https://imist.cnblogs.com/
但愿可以认识一些热爱技术的小伙伴,欢迎友连接哟