专栏首页Java进阶指南没想到竟是因为它!让我的服务器变成了别人的挖矿工具

没想到竟是因为它!让我的服务器变成了别人的挖矿工具

前言

服务器好端端的竟然中了挖矿病毒!!!

可怜我那 1 核 2 G 的服务器,又弱又小,却还免除不了被拉去当矿工的命运,实在是惨啊惨。

事情原来是这样的。。。

就在今天下午,我准备登陆自己的远程服务器搞点东西的时候,突然发现 ssh 登陆不上了。

如上,提示被拒绝。这个问题很明显就是服务器没有我的公钥,或者不识别我的公钥,然后拒绝登录。

这就很难办了,我确定我的公钥是一直没有变动过的,不应该会出现这种情况啊。

还有让我头疼的是,我当初为了安全起见,设置过此台服务器只能通过 ssh 的方式免密登录。而且禁止了密码直接登录,这样也防止了别人通过破解我的密码而登录服务器。

当前,只有我这个 mac 还有家里的 win 两台电脑有 ssh 权限。(其实,当时我也想到了这种情况,就怕万一有一天某台电脑登录不上,另外一台还能做备选。嘿嘿,我是不是很机智!)

那么,目前的解决办法,就是要么等着下班回家,用另外一个电脑操作,把当前这个电脑的公钥加到服务器的authorized_keys 文件里。要么,就只能把服务器重装了。

但是,好奇心驱使我去探究一下,到底是什么原因导致了服务器连接不上,而不是直接重装服务器。那样的话,就太没意思了。

通过 VNC 方式登录服务器

因为我用的是腾讯云服务器嘛,于是,就登录到了腾讯云的控制台,想看一下是否还有其它“走后门”的方式,让我绕过 ssh 或者不受密码登录的限制。

没想到,还真的有方法。如下图,可以通过 VNC 的方式进去,然后输入账号密码就可以直接登录,不受限制。

可以看到已经进入服务器了。上一次登录时间是昨天下午,这个时间点没错。

发现问题

当然,正常来讲,我应该先去 authorized_keys 文件检查一下我的公钥是否有问题。但是,习惯性的操作让我 top 了一下,却发现了另外一个问题。

等等,这是什么鬼!有一个 sysupdate 进程占用了 CPU 51.2%,另外还有一个进程 networkservice 占用了 47.8% 。这两个加起来,就已经占用了 99% 了。

实际上,在腾讯云后台也能监控到服务器的实时状况。

很明显,这两个进程是比较异常的。而且,之前也没有见过这种名字。于是,习惯性的,我就在网上搜了一下 sysupdate。直接,就出来了一堆结果,挖矿病毒。

我去,听这名字,难不成就是传说中的比特币挖矿?不管那么多了,先解决当前的问题吧。

解决问题

1、确认病毒位置

先通过 systemctl status {进程号} 查看一下它的状态信息,以及有没有相关联的进程。以 sysupdate 进程号 16142为例。

可以发现它是从昨天晚上九点开始运行起来的。怪不得,昨天下午下班前还能用,今天就不能用了。

还可以通过 ls -l proc/{进程号}/exe 命令查看它具体的位置。最后发现都在 /etc 目录下。

如上图,这五个都是“挖矿病毒所用到的文件”。哼哼,从颜色上就能看出来他们是一伙的。

然而,我并没有着急把它们清除掉,却突然脑子一抽,想研究一下它们的脚本。因为我看到有一个 update.sh ,里边肯定写了一些病毒执行相关的命令。

我把他们全部都复制到了我自己的目录下 /root/test/。然后打开了 update.sh 脚本,看里边写了些什么。

我估计,能看着服务器都被病毒攻击了,还有闲情研究人家是怎么制作病毒的,我是第一个吧。。

虽然菜鸡我对 linux 不熟,但是大概可以看出来一些东西,如SELINUX 系统被关闭了,我的 authorized_keys 文件也被改动了,竟然无耻的还把 wget、curl 等命令改了名字。

下边,还可以看到病毒脚本的网络路径。难不成是从这个地址下载下来的?

2、删除定时任务

看一下有没有定时任务,因为有可能它会跑一个定时任务,定时的执行脚本,生成病毒文件和进程等。

可以进入 /var/spool/cron/ 目录查看定时任务。也可以通过 crontab -l查看。

没想到却都没有发现。

**如果有的话,**删除 /var/spoool/cron/目录下的所有文件。或者执行crontab -r命令,清空任务列表。

3、杀掉进程,删除病毒文件

kill -9 {进程号} 把上边的两个进程都杀掉,然后删除 /etc 目录下的那五个文件。

注意删除文件时,直接用普通的 rm -rf 不能行。因为病毒文件被锁定了,需要通过 chattr -i {文件名} 解锁之后,再删除。

4、删除 authorized_keys 文件

这个文件里记录了可以通过 ssh 免密登录的所有终端的公钥。路径在 ~/.ssh/authorized_keys 。通过 vi 命令打开。

可以看到文件里已经被改动了,多了两个未知的公钥,这肯定就是攻击者的公钥。前面的三个都是我自己的公钥。

可以直接删除此文件,等稍后再修复为自己的公钥。

5、恢复 wget 和 curl 命令

从 update.sh 文件中可以看到这两个命令名称被改了,对于习惯了这样使用的人来说肯定不爽,那就改回来就好了。

如下为可选的的命令。我这里就需要前两行就行了,因为 which cur 之后发现,只存在 /bin下,/usr/bin/不存在

mv /bin/wge /bin/wget
mv /bin/cur /bin/curl
mv /usr/bin/wge /usr/bin/wget
mv /usr/bin/cur /usr/bin/curl

6、修复 SELINUX

SELinux 是 linux 的一个安全子系统。可以通过命令 getenforce 查看服务状态。

其实从 update.sh 文件中也可以看到此服务被关闭了。

修改 /etc/selinux/config 文件,将 SELINUX=disabled 修改为 SELINUX=enforcing。

修改完成后,需要重启服务器才能生效。

找到原因

其实,以上步骤搞完,还差一步。

你总不能被攻击的不明不白吧,为什么别人会攻击到你的服务器呢。

后来,从网上找到了一篇介绍,说:

挖矿病毒,利用Redis的未授权访问漏洞进行攻击。Redis 默认配置为6379端口无密码访问,如果redis以root用户启动,攻击者可以通过公网直接链接redis,向root账户写入SSH公钥文件,以此获取服务器权限注入病毒

我去,看完之后,感觉这个描述简直不能太准了。

因为,昨天下午,我就是因为要测试通过 redis 的 zset 来实现延时队列的一个功能。用本地代码连接了服务器的 redis 。当时就在防火墙中把 6379 端口打开了。

谁曾想,一晚上的功夫,就被人家攻击了。

我想,挖矿人肯定也是找大量的机器来实验,看能否通过这些漏洞(肯定不限于只有 redis),操纵对方的服务器。于是,我就幸运的成为了那个倒霉蛋。

最后,我粗暴的把 redis 服务关了,并且去掉了 6379 的端口。

额,其实有更温柔的方案可选,比如更改 redis 的默认端口号,或者给 redis 添加密码。

最后

感觉整篇下来,好像除了知道 redis 的这个漏洞外,就没有其他收获了。主要是,我的安全意识还是比较薄弱吧。

毕竟,服务器只是拿来玩玩用的。最后实在不行也可以重装系统,完事又是一条好汉。

公司的服务器肯定不会这样的,都有专门的运维人员来做这些安全工作。如果是线上服务器被人家拉去挖矿,好歹能拿我这篇文章吹牛逼了。。。

本文分享自微信公众号 - 烟雨星空(mistyskys),作者:烟雨星空

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 24小时挖矿实验

    关于加密货币,我并不是这方面的专家,而且我了解这方面也比较晚。我也没有资格告诉你比特币是你能做的最好的投资,事实上,我对此持保留态度。我知道加密货币是“去中心化...

    Hans He
  • 想要“挖矿”致富?小心这些方式让你被挖矿,让别人致富!

    镁客网
  • 24 小时加密货币挖矿实验

    原文地址:https://hackernoon.com/24-hours-of-crypto-mining-experiment-d9300f0ec0ac

    Tnecesoc
  • 以太坊经典被攻击之后, 国外大神用矿池让51%攻击者付出代价|干货

    前段时间,以太坊经典( ETC )区块链遭受了51%算力攻击,这引起了我深深的思考。

    区块链大本营
  • 一文告诉你究竟什么是传输证明!

    如果你身处加密领域,那么你应该会知道工作量证明(Proof of Work)或“PoW”,它是比特币区块链的共识算法。或许你也了解过权益证明(Proof of ...

    区块链大本营
  • 海豚扒问IPFS中国区布道人董天一:IPFS为什么可以超越HTTP

    亲爱的粉丝们,今天又到了【海豚扒问】的深扒时间啦。萌主我一直很感谢大家一路对海豚区块链全新推出的【海豚扒问】栏目的支持,这一次我们请来最重量的嘉宾,他是谁?他为...

    海豚区块链
  • 挖矿恶意程序纪实分析之 Windows 篇

    近期接到客户反馈,其网络中有部分 Windows 系统终端机器异常,安全团队经过分析,发现其仍旧是一起网络挖矿事件。

    FB客服
  • “挖矿2.0”:资本方不是只能割区块链的韭菜

    BCH 大战后,比特币价格一路暴跌,业已逼近其 200 星期平均值的心理关口。受此影响,矿工们的好日子是过到了头,微博上一条“矿机按斤甩卖”的视频甚至登上热搜,...

    区块链大本营
  • 这都是比特币的错?矿工玩比特币到底害了谁

    【PConline 杂谈】关于比特币这个词,大家在近两年已经相当熟悉了。作为一种区块链数字货币,比特币的数量和生成速度由P2P算法保证,不受任何中央机构的控制,...

    企鹅号小编
  • 比特币和区块链是什么?看完这篇文章不再懵

    实际上全球各种虚拟货币已经超过了1300种,其中市值排名前几名的除了比特币还有下面的这几种虚拟货币。

    進无尽
  • 关于区块链,你绝不能忽视的4个安全问题和5招应对方法!

    区块链大本营
  • 快速了解区块链背后的三项基本技术

    ? 作者 Thijs Maas 编译 Mika 本文为 CDA 数据分析师原创作品,转载需授权 如果问十个人"什么是区块链技术?",你可能会得到十种不同的...

    CDA数据分析师
  • 用人产生的能量发电然后挖矿,这件事真的可行么?

    设计一个使用人所产生的能量来进行加密货币挖矿的装置真的可行么? ? 一个位于荷兰的技术公司,Speculative.Captical现在正牵头研究一个项目,这个...

    企鹅号小编
  • 以太坊挖矿的利润究竟有多大?

    区块链大本营
  • 数字资产管理平台靠谱盘点,能否解决行业痛点

    近期领域里发生了很多云算力平台或是是云挖矿平台等数字资产管理平台,许多盆友针对这种平台欠缺掌握,造成了许多疑惑,自己有效过2个平台,以自身的一些工作经验,简易说...

    清风明月渝满天
  • 逆水之“寒”,比特大陆的AI自救之路

    据推特网友爆料,比特大陆第三季度亏损7.4亿美元。而若再加上因算力大战投入的资金,这一数字只会更高。

    镁客网
  • 用python从0开始创建一个区块链,从代码深入理解区块链

    本文主要内容翻译自Learn Blockchains by Building One 作者认为最快的学习区块链的方式是自己创建一个,本文就跟随作者用Python...

    沉默的白面书生
  • 剖析DeFi借贷产品之Compound:延伸篇

    关于 DeFi 借贷产品之 Compound,前面我们已经讲了很多。从概述篇开始,讲述了 DeFi 和借贷的一些现状,并介绍了 Compound 的核心概念、利...

    Keegan小钢
  • 比特币解密

    截至我写这篇文章的时刻,1个比特币价值14194.26美元,也就是人民币91704.85元,这个世界上没有一个国家的流通货币拥有如此高的价值。 比特币到底是个什...

    用户1608022

扫码关注云+社区

领取腾讯云代金券