编辑: 飞鸟 | 2016-09-01 |
7 月18 日发 布的 nssock2.dll 模块中被植入了恶意代码,直接影响到使用该系 列软件的用户. 技术分析 受害者在安装,启动了带有后门的客户端后,nssock2.dll 模块中 的攻击代码会以 Shellcode 形式在后台被调用解密执行. 该Shellcode 分为多加密块,基于插件模型架构,各模块之间负 责不同功能且协调工作、相互调用,实际分析后发现中间存在大量 对抗设计,隐秘性较强,该后门还包含了如下几个特点: ・无自启动项,无独立落地文件 ・存在花指令和部分加密函数设计 ・多种通信协议的远程控制 ・主动发送受害主机基本信息 ・通过特定的 DGA( 域名生成算法 ) 产生的 DNS 域名传送 至远程命令控制服务器 ・C&
C 服务器可动态下发任意代码至用户机器执行
5 整体流程如下图所示: 后门的整体流程大致分为以下
9 个步骤: 1.Xshell 启动后会加载动态链接库 nssock2.dll. 2. 在DllMain 执行前由全局对象构造启动引子代码. 3. 引子代码主要功能就是解密 shellcode1 并跳转到入口处执 行. 4.shellcode1(loader) 加载 shellcode2. 5.shellcode2 中将搜集用户信息构造 DNS TXT 包传送至 根据年份和月份生成的 DGA 域名,同时接收解密 shellcode3 的key 并写入注册表,一旦注册表中查询到对应的值随即解密 shellcode3 并执行. 6.Shellcode3(loader) 主要负责加载 Root 模块并跳转到入 口处执行. 7.Root 被加载后接着分别加载 Plugin,Config,Install, Online 和DNS 模块. 8.Install 模块会创建 svchost.exe 并把 Root 模块注入,实 现持久化运行. 9.Online 模块会根据其配置初始化网络相关资源,向指定服 务地址发送信息,并等待云端动态下发代码进行下一步攻击.
6 Shellcode1(Loader) 该后门是基于插件模式开发的,Root 模块提供了插件的基本框架, 各插件之间会相互调用,而在各个插件加载时都会多次用到同一个 loader,loader 中的代码中加入了化指令进行干扰,具体实现细 节为如下
8 个步骤 : Shellcode2 主要作用就是将搜集的数据传出,并接收服务端传来的 key 解密 shellcode3,执行后门的核心部分,Shellcode2 实现细节如下: 1.Shellcode2 首先创建工作线程. 2. 工作线程首先获取 VolumeSerialNumber 值并且异或 0xD592FC92 这个值用来创建注册表项. 3. 创建注册表项, 位置为HKEY_CURRENT_USER\ SOFTWARE\-[0-9]( 步骤
2 生成的数值 ). 4. 通过RegQueryValueExA 查询步骤3创建注册表中Data 键的值. 5. 如果注册表Data 已经存放key 会直接用key 解密shellcode3 并执行. 6. 不存在 key 则继续执行下面的循环,当不满足时间条件时 循环每隔
10 秒获取一次时间, 满足时间条件时进入主流程执行步 骤7.
7 此外,通过对
12 个域名分析 NS 解析情况后发现,
7 月 开始被注册解析到 qhoster.net 的NS Server 上,所以猜测这 个恶意代码事件至少是从
7 月开始的. 7. 主流程首先根据当前时间生成 DGA 域名 ,当前
8 月时间为 nylalobghyhirgh.com 部分年份 - 月份生成的域名对应关系如下:
2017 年01 月tgpupqtylejgb.com
2017 年02 月psdghsbujex.com
2017 年03 月lenszqjmdilgdoz.com
2017 年04 月huxerorebmzir.com
2017 年05 月dghqjqzavqn.com
2017 年06 月vwrcbohspufip.com
2017 年07 月ribotqtonut.com
2017 年08 月nylalobghyhirgh.com
2017 年09 月jkvmdmjyfcvkf.com
2017 年10 月bafyvoruzgjitwr.com
2017 年11 月xmponmzmxkxkh.com