zoukankan      html  css  js  c++  java
  • redis中毒

    黑客用我们服务器挖矿了

    新的一天的开始

    周五早上刚到公司,同事来问我系统为啥打不开了?我第一反应就是肯定 Nginx 服务器挂了呗,立马就去登录服务器看看,但此时发现已经完全远程登录不上这台部署了 Nginx 和 Redis 的服务器了,此刻心理活动如下:

    难道服务器欠费了?
    难道服务器到期了?
    都不对阿,一起买的一堆服务器就单单这一台有问题,肯定是这台服务器挂了吧?

    同事马上登录美团云管理后台看了下,当时我们也猜测估计是什么软件占用了系统大量内存或CPU,果然在管理后台发现这台机器 CPU 使用率巨高。

    cpu_full

    在完全远程登录不上服务器的情况下,此刻是无法做任何操作的,除了通过管理后台重启这一条路可走之外,所以我们选择重启了服务器。重启完各种软件后并没发现没有任何异常,这时候我们部门不仅人美技术也牛的花姐说了一句这么开玩笑的话,大家都哈哈一笑后就开开心的去吃中午饭了。
    hua

    中午睡了一觉后

    吃完中午饭,我睡了一会儿,梦里好像看到黑客在对我笑,醒来看到花姐说的那个 gpg-agentd 进程比较高后,就随手搜了一下这个进程,卧槽,流弊阿...

    gpg_agentd

    baidu

    看到这个后,我丢在了群里后,大家震惊了,原来服务器真的在用来挖矿了。随后就和不仅开车 666 修 bug 也是老司机的 Jack 一起与挖矿脚本进行了斗争,我们首先在网络上找了一篇类似的文章:记一次Redis数据库漏洞被入侵现象,这哥们儿和我们遇到的是同一个被黑的套路,简单总结具体黑客操作如下:

    利用了 redis 特性可以把缓存内容写入本地文件的漏洞,他就可以随便在服务器的 /root/.ssh/authorized_keys
    文件中写入公钥,在用本地的私钥去登陆被写入公钥的服务器,就无需密码就可以登陆,登录之后就开始定期执行计划任务,下载脚本,更牛逼的是,他还可以利用
    masscan 进行全网扫描redis 服务器 6379 的端口,寻找下一个个肉鸡,如果你的 redis
    端口是默认6379,并且还没有密码保护,很容易就被攻破解,最后也就是说这个脚本会迅速在全网裂变式增加。

    那么问题来了,我们的服务器 redis 是有密码的,到底是怎么在 authorized_keys 写入公钥的?

    首先猜到的肯定就是密码泄漏了呗,看了眼我们密码,大小写加数字随机生成的,不容易破解阿,暴力破解?敲了个 lastb 命令看了一眼后,被扫了五十万次次次,我们信了这个暴力破解暴力破解暴力破解 。。。
    lastb

    黑客到底是怎么黑进来的?

    找到了原因,但还没清楚黑客到底是怎么黑进来的?入侵后具体都做了什么事,下面就大概还原下黑客视角入侵全过程,首先看到的就是多了个定时任务。

    crontab

    然后,curl 命令请求下这个地址后,发现这个脚本(这个脚本简直 666 )全内容如下:

    ash

    第一步,先在/root/.ssh/authorized_keys文件中生成ssh公钥,黑客以后无需密码就可以登录了,简直给自己铺路搭桥666;

    第二步,建立定时任务,作用是每20分钟去他们服务器再次下载这个脚本,然后执行,这一步简直就是让自己杀不死;

    第三步,开机启动项也加入下载脚本命令,也就是你重启后会自动下载,fuck...

    接下来,又改了 hosts、limits 限制,最重要的是这个脚本还记得去清除上述所有操作,不留下痕迹,佩服!!!

    这个脚本执行完,后面再去执行其他三个脚本,把这个几个脚本都下载下来后,我们接着分析

    pgp

    这个脚本,只有一个作用,就是去下载真正的挖矿文件,也就是占用 CPU 居高的那个 gpg-agentd,操作也是很流弊的,删除所有操作记录和文件,这个黑客也是处女座?不留下一丝痕迹。

    正常人来干这挖矿这件事的话,应该到这一步就可以打完收工了,因为已经安装成功挖矿软件了。那你要这么想、这么做,你不适合当黑客。更流弊的操作来了!!!

    ins1
    ins2

    第三个脚本,这里他就是贴心的给你安装、升级 gcc、libpcap 和 apt-get 等软件命令,他真的这么好么?其实他是为了顺手下载了一个名字叫 masscan 的软件,然后装了上去,同时也顺手做了处理现场操作,在下佩服!!

    那这个 masscan 是干嘛的呢?

    据说 masscan 是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。

    rsh

    第四个脚本来了,这个脚本就是用masscan来扫redis 的 6379端口,对redis进行配置,利用了redis把缓存内容写入本地文件的漏洞,在/root/.ssh/authorized_keys文件中写入公钥,登录之后就开始定期执行计划任务,下载脚本。

    总结一下

    看完整个脚本操作,最后也就是说黑客不仅仅是用了你电脑挖矿这一件事,还把你电脑作为攻击者,去寻找另外的服务器,所以这个脚本会迅速在全网裂变式让服务器中招,这波操作也更 666 了...
    最近在学习区块链相关知识,感兴趣可以关注下我自己的号。

  • 相关阅读:
    mysql高级查询
    RabbitMq应用一的补充(RabbitMQ的应用场景)
    LNMP的并发配置和资源分配
    大神教你Nginx常用基础配置方案
    案例:配置apache和nginx的SSL加密传输协议
    Nginx配置服务器静态文件支持跨域访问
    菜鸟学习计划浅谈之Linux系统
    细述:nginx http内核模块提供的变量和解释
    如何在Linux中使用Firejail运行应用程序
    一款用于对 WiFi 接入点安全进行渗透测试的工具
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/8707257.html
Copyright © 2011-2022 走看看