威胁快报

2023-11-15

一、背景

近日阿里云安全团队发现了一起利用多个流行漏洞传播的蠕虫事件。黑客首先利用ThinkPHP远程命令执行等多个热门漏洞控制大量主机,并将其中一台“肉鸡”作为蠕虫脚本的下载源。其余受控主机下载并运行此蠕虫脚本后,继续进行大规模漏洞扫描和弱口令爆破攻击,从而实现横向传播。涉及的漏洞除了ThinkPHP远程命令执行漏洞,还有JBoss、Weblogic、Redis等产品的漏洞。

因为该蠕虫最初植入的恶意脚本名为ibus,所以命名为ibus蠕虫。本篇文章主要介绍了阿里云安全对此类蠕虫入侵的各个阶段的检测、防御和隔离,保障阿里云用户的资产安全。希望读者通过本篇文章,可以意识到当前网络安全的风险与日俱增,安全漏洞无处不在,黑客通过简单、自动化的手段就可以对用户利益造成极大的损害。

目前阿里云安全团队对网络进行了实时监控,并帮助云上用户修复潜在风险,如果漏洞依然存在,建议请尽快对自身进行检查,或者参考文末的安全建议。

二、蠕虫主要特点及结构

基于阿里云态势感知的大数据平台,我们对该黑客组织进行了追踪和详细分析,该黑客通过ThinkPHP漏洞和蠕虫脚本获取了大量的肉鸡进行牟利。阿里云安全团队详细分析了此蠕虫的主要特点,包括:

使用多种漏洞进行传播,以web代码执行漏洞为主;

  • 恶意脚本的名字及路径具有迷惑性,且多份拷贝存放于不同的目录下;
  • 主要代码perl实现,具备功能完备的C&C通信模块;
  • C&C通信使用http协议,通信内容加密;
  • 通过挖掘门罗币进行获利。

蠕虫的功能结构由恶意脚本、传播模块、C&C模块、挖矿模块等组成。

黑客首先利用ThinkPHP v5 远程命令执行漏洞攻击了大量主机,并将ip为67.209.177.163的服务器作为蠕虫脚本的下载源。

之后攻击者控制其他被入侵主机从67.209.177.163下载ibus脚本并执行。该脚本用perl语言写成,主要功能是解码、写入并执行C&C (Command and Control)模块。

攻击者进而通过向C&C模块发送命令,下载包含多种攻击payload的传播模块,以及由下载器、配置文件和挖矿程序组成的挖矿模块,挖矿从而获取利润。传播模块则继续攻击未被入侵主机,横向传播。

黑客入侵的各个阶段如下图所示:

​三、蠕虫模块分析

1.攻击及恶意脚本植入

对大多数被入侵主机,攻击者最初是利用ThinkPHP v5 远程代码执行漏洞,通过如下payload植入恶意脚本

_

可以看到这里从http://67.209.177.163/ibus下载并运行了ibus。分析后发现ibus是一个perl脚本,该脚本会从Linux根目录开始遍历所有目录(最大深度为6),找出当前账号有写权限的所有文件夹,存入列表。

之后对列表中的目录进行打分,取分数最高的三个目录。打分标准例如完整路径以"/bin"开头的目录分数最高,"/usr/bin"其次,以此类推。

在最后挑选出来的三个目录中,写入同样的C&C模块脚本(脚本分析见后文),并分别命名为nmi, nbus和.dbus。这三个都是系统程序的名字,定时执行时还会打印出“These are for bus-kernl-daemon service”,非常具有迷惑性。

​ibus脚本最后进行定时任务添加和脚本自删除操作。

​2.传播模块

下图为攻击函数列表,可以看出此蠕虫代码利用了多种漏洞进行横向传播,包括java反序列化漏洞、Weblogic WLS组件RCE漏洞(CVE-2017-10271)、WebLogic 任意文件上传漏洞(CVE-2018-2894)、redis 未授权访问漏洞等。

以下是部分攻击代码:

1)对JBoss用户名、密码暴力破解

涉及的部分用户名和弱口令列表:

​2)使用weblogic漏洞上传Webshell

3)redis 未授权访问漏洞

3.C&C模块

该部分的内容是由ibus中的$encnde解码后得到,相同内容被写入三个不同的文件夹,难以被彻底清理。

C&C模块也是一个perl脚本,它实现了完整的控制功能:

脚本包含的核心函数/模块:

  • newsocketto:实现socket通信
  • GetCommand、PostCommand:实现基本的http get/post功能
  • SendBackResult、SendBackState:返回c&c指令的执行结果和执行状态
  • register:c&c上线注册
  • check_relay:检测主c&c是否可用
  • Knock_Knock:获取C&C指令,会返回needregr、newtask、notasks、newreconfig四种指令
  • Update_Config_File、Load_Config_File:更新和加载配置文件
  • DownLoadExec、DownLoadExecPar:下载文件并执行,DownLoadExecPar可带参数执行
  • Updateme:更新
  • scanme:扫描目录
  • getrelfromblog、getrelfromblog1、srel:备用c&c
  • crntabvalidator:修改crontabs属性,后面会循环执行,防止定时任务被删除
  • UUID Management :为每个肉鸡生成uuid
  • MAIN Function:cc模块主函数

C&C模块的功能:

MAIN Function通过Knock_Knock获取c&c指令,实现如下功能

  • Command Execution :命令执行(实际并未实现执行功能)
  • Download Execute:下载文件执行
  • Download Execute W Params:下载文件带参数执行
  • Uninstall:卸载自身
  • killcycle:终止运行
  • Update Me:更新

C&C服务器是speakupomaha.com:

下图为控制主机执行GetCommand的部分代码:

四、影响范围

由配置文件可知,ibus蠕虫对应的钱包地址为4An3Radh69LgcTHJf1U3awa9ffej4b6DcUmEv8wirsDm8zRMSjifrwybH2AzHdEsW8eew3rFtk4QbGJMxqitfxmZJhABxpT。其影响范围从攻击者收益和挖矿规模的角度来看,由于该钱包地址在http://minexmr.com/#worker_stats 对应的挖矿速率(HashRate)约为167KH/s,据此粗略估计,全网约有1万台的主机被这种蠕虫感染,黑客因此每天能牟利30.86美元(925.74美元 每月)。

​而从攻击时间上看,1月4号和12号是黑客攻击的高峰,且蠕虫攻击仍在蔓延。

五、安全建议

针对此次ibus蠕虫攻击,阿里云安全向用户提供以下安全建议:

  1. 互联网上扫描和攻击无处不在,web漏洞、弱密码、服务器存在未授权访问,都可能导致主机被挖矿,应尽量避免使用弱密码,此外可以选择购买阿里云的云防火墙和态势感知实现威胁检测、主机防御和安全隔离。
  2. 对于已感染的客户,可以通过购买阿里云安全管家服务,在安全专家的指导下进行病毒清理和安全加固。

IOC

从virustotal查询发现,9b6c1672fc9d5721af5ae6ac9d053b34 这个恶意脚本IoC,目前市面上大多数引擎检测不出来。

而阿里云态势感知基于深度学习和规则引擎的模型可以对大部分的恶意脚本进行识别。态势感知告警如下图所示,

钱包地址:4An3Radh69LgcTHJf1U3awa9ffej4b6DcUmEv8wirsDm8zRMSjifrwybH2AzHdEsW8eew3rFtk4QbGJMxqitfxmZJhABxpT

恶意Host:

67.209.177.163

190.2.147.11

C&C 服务器:

http://speakupomaha.com

备用C&C服务器:

linuxservers.000webhostapp.com

linuxsrv134.xp3.biz

5.196.70.86

矿池地址:

http://minexmr.com


#阿里云开年Hi购季#幸运抽好礼!
点此抽奖:https://www.aliyun.com/acts/product-section-2019/yq-lottery?utm_content=g_1000042901

原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

威胁快报 的相关文章

  • mysql 字段类型 负数_MySQL字段类型详解

    MySQL支持大量的列类型 它可以被分为3类 数字类型 日期和时间类型以及字符串 字符 类型 本节首先给出可用类型的一个概述 并且总结每个列类型的存储需求 然后提供每个类中的类型性质的更详细的描述 概述有意简化 更详细的说明应该考虑到有关特
  • UNIX环境高级编程 学习笔记 第四章 文件和目录

    4个stat函数 stat函数返回名为参数pathname的文件有关的信息结构 fstat函数获得已经在描述符fd上打开的文件的信息 lstat函数的参数pathname如果是一个符号链接文件 它返回符号链接的有关信息 而非该符号链接引用的
  • 解除BitLocker加密

    问题描述 硬盘设置BitLocker加密后 系统异常时必须输入BitLocker恢复密钥 才能使用windows高级功能进行修复 启用BitLocker硬盘加密后一定要保存好BitLocker密钥 加密状态下windows密码无法强制破解
  • Xilinx ISE 14.7 设置编辑器字体大小

    左上角 edit preference
  • 2013年5月23日(7-9ddraw裁剪器)

    进行裁剪步骤有4个 1 创建ddraw裁减器对象 CreateClipper 0 LPDIRECTDRAWCLIPPER NULL 2 创建裁剪队列 即RECT结构的矩形列表 blitter硬件只绘制裁剪区内的内容 其余的都剪掉 裁剪队列需
  • MATLAB对原始光斑进行运算

    clc clear all close all I imread ban jpg figure 1 subplot 1 3 1 imshow I 显示原始光斑 title 原始光斑 I1 imadjust I 0 2 0 6 subplot
  • liunx,centos7 下安装部署 Jenkins 持续集成工具,war包方式安装Jenkins

    Jenkins是一个开源软件项目 是基于Java开发的一种持续集成工具 用于监控持续重复的工作 旨在提供一个开放易用的软件平台 使软件的持续集成变成可能 下载地址 https bitnami com stack jenkins instal
  • QT:通过按钮调用qpaintEvent事件实现自定义绘图

    摘要 最近碰到了一个需要在qt中完成二维图像变换的作业 想到刚接触qt时学过qpainter来进行绘画操作 立马就着手码起来 作为一个小白 马上就发现了相应的问题 由于qt内部机制 绘画事件 paintEvent 仅允许在绘画事件下进行 比
  • 数据挖掘实战(以kaggle为例)

    第一课 第1课 机器学习算法 工具与流程概述 主要分为以下内容进行讲述 机器学习工业应用领域 机器学习常用算法 机器学习常用工具 解决问题流程 数据的处理比模型更为重要 老师的博客 内容很详细 数据预处理 有时候可以一个feature一个f
  • PCL中点云分割算法简析

    文章目录 前言 一 点云分割算法简介 1 1 基于RANSAC的点云分割 1 2 基于聚类的点云分割 1 2 1 欧式聚类分割 1 3 基于深度学习的点云分割 二 算法示例 2 1 基于RANSAC的平面分割 2 2 欧式聚类 2 3 基于
  • Linux 开源的高性能稳定服务器操作系统入门

    我们研发项目 写代码时 使用的一般都是windows或者是MAC的操作系统 作为本地的用户使用系统 而Linux一般都是放在服务器上运行的一种高效稳定的服务器系统 我们还是无法完全避免对于Linux的接触和使用 尤其是在一些中小型企业 一个
  • 设计模式:(三)原型、建造者、适配器、桥接模式

    一 原型模式 Prototype 1 概述 1 定义 用原型实例指定了要创建对象的种类 并且通过拷贝这些原型 创建新的对象 原型模式是一种创建型设计模式 允许一个对象再创建另外一个可定制的对象 无需知道如何创建的细节 2 工作原理 通过将一
  • c++ 14.0下载地址

    http go microsoft com fwlink LinkId 691126 fixForIE exe 转载于 https www cnblogs com louzi p 10552573 html
  • Loadrunner 第一个场景设计Controller

    参考书籍 软件测试 黑马程序员编著 场景设置 2 场景编辑 选中一行 点击编辑操作 3 场景执行 运行后报错Loadrunner无法创建vuser 参考文章解决 参考文章 loadrunner controller无法创建vuser 信而为
  • STM32关于USB控制端点4的问题

    解释如下 define BTABLE ADDRESS 0x00 说明端点描述符表从0x00开始 每个端点描述符会占用4个uint32 t型 即16个字节 如果使用到端点4 需要将 define ENDP0 RXADDR 0x18 defin
  • 数据库系统原理练习题(十二)

    1 要建立一个约束 保证用户表 user 中年龄 age 必须在16岁以上 下面语句正确的是 A alter table user add constraint df age DEFAULT 16 B alter table user ad
  • 外卖点餐系统

    傻瓜式外卖点餐系统 无数据库 tips 菜品类 菜品id 菜品名 菜品类型 上架时间 单价 月销售 总数量 管理员类 管理员id 账号 密码 客户类 客户id 客户名 性别 密码 送餐地址 手机号 创建时间 订单类 订单号 订单创建时间 菜
  • DNS域名服务器详解

    一 DNS DNS Domain Name System 是域名系统的英文缩写 是一种组织成域层次结构的计算机和网络服务命名系统 用于 TCP IP 网络 二 域名系统DNS的作用 通常我们有两种方式识别主机 通过主机名或者 IP 地址 人
  • Java 内存区域和GC机制

    Java垃圾回收概况 Java GC Garbage Collection 垃圾收集 垃圾回收 机制 是Java与C C的主要区别之一 作为Java开发者 一般不需要专门编写内存回收和垃圾清理代码 对内存泄露和溢出的问题 也不需要像C程序员
  • JS中的delete

    delete 操作符用于删除对象的某个属性 如果没有指向这个属性的引用 那它最终会被释放 语法 delete expression expression 的计算结果应该是某个属性的引用 例如 delete object property d

随机推荐

  • 网络协议、socket、webSocket

    分享一下我老师大神的人工智能教程 零基础 通俗易懂 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 造福人民 实现我们中华民族伟大复兴 一 网络协议 网络协议为 计算机网络中进行数据交换而建
  • ckeditor粘贴word图片且图片文件自动上传插件

    如何做到 ueditor批量上传word图片 1 前端引用代码
  • C语言编译随机抽数字小游戏

    C语言随机猜数字游戏编写 所用函数类型 rand函数 1 含义 随机生成一个伪随机值 但是只能生成一个固定的随机值 因为它是根据一个固定的 种子 来生成的 仅是自我理解 如有错误或者补充 请帮我指出谢谢 2 使用这个函数时需要搭配 incl
  • 调节pycharm字体大小

    1 打开PyCharm 单击 File 2 然后 选择Settings 会打开一个弹窗 3 接着选中弹窗中的Editor 4 然后 选中Font 5 改变Size值的大小 就可以调节字体大小了
  • apache启服务命令_Linux系统重启apache服务命令详解

    Linux系统中apache是重要的一个服务 掌握基本操作尤其重要 下面由学习啦小编为大家整理了Linux系统重启apache服务命令详解 希望对大家有帮助 Linux系统重启apache服务命令详解 基本的操作方法 本文假设你的apahc
  • [Python图像处理] 三十一.图像点运算处理两万字详细总结(灰度化处理、阈值化处理)

    该系列文章是讲解Python OpenCV图像处理知识 前期主要讲解图像入门 OpenCV基础用法 中期讲解图像处理的各种算法 包括图像锐化算子 图像增强技术 图像分割等 后期结合深度学习研究图像识别 图像分类应用 希望文章对您有所帮助 如
  • 常见软硬件交互放方案

    列举遇到的软硬件交互需求及解决方案 1 照片墙 解决内容 照片排版 位置 大小 样式 默认滚动 多人交互 分区 无限循环 便捷替换照片 点赞功能 2 人脸融合 解决内容 API接入 原始照片 保存 展示 3 AR识别讲解 解决内容 AR识别
  • bugku where is flag 4杂项

    1 base64解码 下载压缩包下来解压打开 发现里面是base64加密 在kali中解码 去掉所有换行符 用winhex打开 发现十六进制的奇数位正好可以构成zip的文件头 504b 2 脚本编写 写个python脚本提取奇数位 str1
  • RHEL7 中配置 IPv6 练习

    试验环境 RHCE Server 虚拟机 以配置好 视频中配套的所有环境 包含View Server View Desktop 等 视频中的示例一般是在 server0 主机上做 登陆命令为 ssh X root server0 重置 se
  • Java教程:Javadoc(文档注释)详解

    本篇文章由 泉州SEO www 234yp com 整理发布 Java教程 www 234yp com Article 198092 html 谢谢合作 Java教程Java 支持 3 种注释 分别是单行注释 多行注释和文档注释 文档注释以
  • js基础语句

    一 if else 条件判断语句 var num 1 if num 1 console log 壹 else if num 2 console log 贰 else num 3 console log 参 输出 壹 二 switch cas
  • Dockerfile自定义镜像 - 基于 java:8-alpine 镜像,将一个Java项目构建为镜像

    目录 一 前置知识 1 镜像结构 2 Dockerfile是什么 二 自定义一个 java 项目镜像 1 创建一个空目录 在这个空目录中创建一个文件 命名为 DockerFile 最后将 java 项目打包成 jar 包 放到这个目录中 2
  • Python 绘画excel分组柱状图(懒人学习)

    1 excel案例如截图 很简单大家自己照着做一个就可以了 2 完整代码如下 import pandas as pd import matplotlib pyplot as plt students pd read excel H Pyth
  • Python视觉摄像头检测有趣项目(一)(重点)

    转载自就是这个七 https blog csdn net qq 42633819 article details 81191308 利用python tensorflow opencv实现人脸识别 对于环境安装就是在Win10上对于Tens
  • C# 实现预览dwg文件完整源代码(无需autocad环境)

    using System using System Drawing using System Collections using System ComponentModel using System Windows Forms using
  • C++ 多态与虚函数

    多态性与虚函数 多态性 虚函数 多态性 多态性是面向对象程序设计的关键技术之一 若程序设计语言不支持多态性 不能称为面向对象的语言 利用多态性技术 可以调用同一个函数名的函数 实现完全不同的功能 在C 中有两种多态性 编译时的多态 通过函数
  • Qt 5中文乱码问题完美解决方案

    乱码问题概述 使用Qt的时候 时常会遇到中文乱码问题 qDebug打印日志乱码 或者Widget界面乱码等等 原因呢 大多是因为使用MSVC编译器问题导致 而Qt 自带的MinGW一般不会出现乱码问题 核心原因呢 是因为编码问题 即UTF
  • 入职字节外包一个月,我还是选择了离职!

    有一种打工人的羡慕 叫做 大厂 真是年少不知大厂香 错把青春插稻秧 但是 在深圳有一群比大厂员工更庞大的群体 他们顶着大厂的 名 做着大厂的工作 还可以享受大厂的伙食 却没有大厂的 命 他们就是大厂的 外包员工 什么都做了 和什么都没做其实
  • Tomcat闪退的解决方法

    Tomcat闪退 在Tomcat的bin目录中的startup bat中 添加 set JAVA HOME E Program Files Java jdk 8 set CATALINA HOME E Users a eclipse Tom
  • 威胁快报

    一 背景 近日阿里云安全团队发现了一起利用多个流行漏洞传播的蠕虫事件 黑客首先利用ThinkPHP远程命令执行等多个热门漏洞控制大量主机 并将其中一台 肉鸡 作为蠕虫脚本的下载源 其余受控主机下载并运行此蠕虫脚本后 继续进行大规模漏洞扫描和