【原创】伪造酷狗音乐程序的木马分析

0x1.查看程序背景

基本信息

简单查一下Proteug10  发现是一款专业电路仿真软件

Server.exe无数字签名,仿冒其他软件,可以猜测这是一个木马了

资源未见敏感信息

0x2.行为分析

 

对文件进行监视并运行程序,分析监视数据

分析行为监控,发现程序将自己复制到了CMicrosoft Plarsb目录下,并且创建了服务来达到自启目的

并且程序对 121.18.238.56:8080142.4.105.65:9090端口有网络访问

前者已关机(或防ping),后者存活

 

经查为美国服务器

端口扫描结果:

 

0x3.逆向分析

 

程序开始获取InternetOpenA函数地址,推测可能会下载网络文件

遇到一串字符串

F6616FC73090D751AFD98A6194A14358

像是一个32HASH

在这里开始大量出现程序内所用到的字符串

发现一段密文

xepdy0Q/xlU4bgAmDBixsFQS1PVMwfwe4WfV0HkKVyhpPH+3PqGW0ugVvJ2UpqFD1mNQiNw8SFRK1EULt7q/BhA4ejT/BEVY6sU8CNeuKdHmUAsM766VbK1zVougYQWvTJ9kczqMSSMody1B39rGDSj5iqw76x4BjPPnq3BEOrT7Ptkw3HqNHs5ghFvuH7q5kWUbjQ0bmISMRlPZ2N1BXkfBv+XOWuPz+EBQwSXU2AIYVeEkd/9JaUjmyOsHzGxEGypoU9Spv7a4eKJEdgMEfug1g/9uUyGTElb2IFALYaAZbHGNOA8XkUMmB56zQvlxcVB6L7W0XwDbjGkYobD//6QSmNEyVZKPk83fuF+ZzstmxA2z0SSS4dAEGG2/m++k+K8ycWu5ucIsuUzAdx6D+ZJEr/PekcHMP5H3PeQGM3+lVC7NDscisDc4q4MjIX/KqZNFiWAipvBgOYQEN3BpN7K9cFKUhj2e/j/2CJfTAs+vWutmrT+IgSm4jm+RA2Qau1Y4GIQgocYTyQ==

根据密文形式猜测,很有可能是AES/DES加密,根据1234567812345678admins尝试解密失败

这里出现了默认分组的字样,2010字样,并且在IP138查询了外网地址,猜测可能是GH0ST变种

提权

创建了以“傻逼360”命名的事件对象,可以确定不是正常程序

确认目标路径存不存在

创建相应文件夹

将自己拷贝至目标路径内

运行拷贝过去的文件

结束

OD加载动态分析 

创建堆并申请堆内存

 

然后获取程序启动信息路径和程序自身的信息

之后获取系统启动信息:硬件型号,系统版本,系统环境变量

开始申请内存大小,载入数据

释放触新的文件

 

通过loadPE查看加载的DLL只有一个,但在内存中动态使用loadLibrary去加载其他系统DLL来躲避查杀软件检测

至此,程序一阶段执行完毕,大概行为:

  1. 提权
  2. 确认C盘目标目录是否存在
  3. 创建目标目录并复制
  4. 启动复制后的文件
  5. 一堆加密的代码
  6. 退出

第二阶段运行分析

程序启动(C:\Program Files\Microsoft Plarsb\Nlwxaoc.exe):

 

再次出现这段密文,有必要在lstrlenA函数下断点跟一下

在二次运行阶段第一次通过注册表创建了服务

删除C:\Picture.exe,下载http://121.18.238.56:8080/aaa.exe并再次通过API创建服务

    第二阶段退出

 

第三阶段

开始连接此IP

并且打开网址

http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=12345678

由于人人网接口失效,无法判断此网址作用

现在还有一个疑点,就是那段加密数据是做什么的

VirtualAlloc下断,发现其动态申请了一段指定起始地址为10000000的内存

根据之前的信息进行推测这里应该还是一个模块,在10000000处下硬件写入断点看看是什么时候写入的数据:

向上逆向追踪esi地址,发现了一段经过UPX加壳的PE数据:

根据MZ头位置确定PE_HEADER:(0x0047005C+0x0128 = 0x00470184)

找到了NT头,找0B01,确定OPTIONAL_HEADER位置:

SizeOfHeaders:0x1000

NumberOfSections:3

继续向下找节表,节表如图所示,共3个节,

第一个节名:UPX0,SizeofRawData:0

第一个节名:UPX1,SizeofRawData:00051400

第三个节名:rsrc,SizeofRawData:00001C00

故整个PE文件实际大小:SizeOfHeaders(0x1000)+ UPX0(0)+ UPX0(00051400)+ rsrc(00001C00) = 0x54000

    MZ头所在内存起始地址加上计算出来的整个文件的大小:

0x47005C + 0x54000 = 4C405C

所以现在可以确定这个PE文件在内存里边的整段位置为: 

0x47005C – 0x4C405C,在x32dbg中选中这段内存,右键保存为二进制数据,得到一个dll:

查看文件信息可得知,此文件伪装成酷狗音乐DLL文件运作

加了UPX

ESP定律进行脱壳VC++。

DLL导出表

导入表中大多是一些之前简单分析的函数:

截屏函数

路由相关

添加用户

下载文件:

至此。这个木马最终会加载这个DLL0x10000000并且进入这个模块继续执行,无非就是一些木马的常用功能。

 

by:九月;badboy

 【请尊重作者转载注明出处】

 

posted @ 2018-09-10 23:05  blck  阅读(520)  评论(0编辑  收藏  举报