欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

负载恶意软件HawkEye的VB Inject样本分析

来源:本站整理 作者:Macc 时间:2018-10-17 TAG: 我要投稿

0×01 概述
恶意软件HawkEye的利用大多都是通过钓鱼邮件分发,利用office直接启动HawkEye主体或者一些经过加密的程序,本文中的VB Inject属于后者,也把重心放在了调试这个VB程序上。
文件基本信息如下:


PEID
VB
MD5
3e3cec381975a0c4a3a2333370ca0799
大小
684KB
修改日期
2018/6/13
VirusTotal上的该样本信息:

病毒名大多为VBKrypt或者VBInject。
0×02 行为监控

将自身复制到C:\User\user\AppData\Romaing\WindowsUpdate.exe,创建C:\User\user\AppData\Romaing\pid.txt,C:\User\user\AppData\Romaing\pidloc.txt,并将WindowsUpdate.exe加入自启动项。
用wireshark抓网络行为,发现该样本会访问http://whatismyipaddress.com/,并与yandex邮件服务器建立连接。

0×03 反调试
因为是个VB程序,首先就想到用VB decompile反编译。效果如下:

似乎是没不能看出什么,于是来调试一下。

步过这个call之后,会跳转到一个错误指令:

想到可能是因为反调试导致的,所以步入0x4012A1的call,然而里面的代码都是模块msvbvm60的,一个比较快能定位到主程序的办法就是通过VB decompile中显示的地址。于是我在0x4A07D6、0x4A0BC8下断。Form_Load中没有什么有用的信息,直接断到Form_Paint。

这里做了一些字符串的操作,直接自动步过,然后来到下面这个call:

回车进去看到有调用DllFunctionCall,这里会调用RtlMoveMemory很多次,复制一段内存:

在循环结束的地方F4:

单步之后发现程序会在下图位置运行起来,进入错误指令:

跟进后,又来到下面的call(因为其他的call都有函数名__vbaxxx),回车进入后发现这个call也调用了DllFuncitonCall:


调用了EnumWindows,这个函数一个参数是回调函数,所以需要留意。
函数原型:
BOOL EnumWindows( WNDENUMPROC lpEnumFunc, LPARAM lParam );
lpEnumFunc是指向回调函数的指针,lParam是传递给回调函数的参数。

看此时栈的状态,第一个参数位于0x12F4D8,在该处下断。
然后F8->执行到用户代码,断到该处::

单步到后面的jmp之后跳到下面的地址:

这里call edx之后,跳到错误地址,该地址正确编码后的指令是:

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载