样本信息
样本名 | SHA1 |
---|---|
Impact of US and NATO Withdrawal from Afghanistan.doc | ccc402845b46285d04d1d45db964f3c1a0df51d5 |
详细分析
该样本使用 RTF 远程模板注入.
使用如下脚本解密后得到模板地址 hxxp://designerzebra.com/services/check1
,该文件为使用CVE-2017-11882
漏洞的 RTF 文档.
1 | s=r"\u-65432?\u-65420?\u-65420?\u-65424?\u-65478?\u-65489?\u-65489?\u-65436?\u-65435?\u-65421?\u-65431?\u-65433?\u-65426?\u-65435?\u-65422?\u-65414?\u-65435?\u-65438?\u-65422?\u-65439?\u-65490?\u-65437?\u-65425?\u-65427?\u-65489?\u-65421?\u-65435?\u-65422?\u-65418?\u-65431?\u-65437?\u-65435?\u-65421?\u-65489?\u-65437?\u-65432?\u-65435?\u-65437?\u-65429?\u-65487?" |
为了方便调试shellcode,设置镜像劫持
打开该文档后会触发OD调试器,在漏洞触发点的地址0x411658
下断然后运行
可以发现返回地址被覆盖成0x402114,
0x402114
为retn指令,此时栈上返回地址为0x18f354
,刚好为shellcode开始地址
shellcode会从 hxxp://designerzebra.com/update/sync1
下载另一段shellcode
异或解密sync1,直到匹配到0xEE2B4C5,
检测相关文件判断是否存在杀毒软件.
文件名 | 所属杀毒软件 |
---|---|
kilf.sys | Kaspersky |
aswsp.sys | avast |
ehdrv.sys | ESET NOD32 |
mfehidk.sys | McAfee |
360AvFlt.sys | 360 |
从hxxp://[designerzebra.com/confirm/file1
下载文件保存到%AppData%\wingui.exe.并且wingui.exe文件PE头被抹去,调用WriteFile
往头部写入0x905a4d
.
从http://designerzebra.com/mscheck/hello.doc1
下载诱饵文档 创建计划任务,每隔3分钟执行一次wingui.exe
1 | schtasks.exe /create /tn MsUpdate /tr "C:\Users\Administrator\AppData\Roaming\wingui.exe" /f /sc minute /mo 3 |
结束word程序并打开诱饵文档迷惑用户.
wingui.exe分析
比较不同时间段前台窗口标题是否相同,如果相同则处于沙箱环境内。
检测snxhk.dll
是否存在,如果存在则设置定时器每120秒执行一次并进入消息循环,当接收到的消息类型是WM_QUIT
或者WM_TIMER
则退出消息循环
从hxxp://realworld.sytes.net/free/pics/hi-jump.jpg
下载shellcode并创建线程执行.
该shellcode主要功能是解密core.dll
文件 ,并执行dllmain函数.
core.dll分析
如果core.dll
由rundll32.dll
启动,则将区段_code
数据保存为%AppData%\\Driver\\opendriver64.dll
,并创建快捷方式执行其导出函数IntRun.
创建互斥量dacd53bbf745acbefaf254a6dd32aede
,防止重复运行.
收集信息,保存为临时文件nnp[四位随机].tmp.
文件内容如下:
随后读取该文件并删除,在头部加入如下信息作为发送的数据.
与C2C服务器采用 multipart/form-data 请求格式
post数据使用base64加密
发送的数据使用如下格式
name | 数据内容 |
---|---|
m | p1为上传数据操作,p2为执行指令操作 |
id | 机器标识,内容为 机器名_用户名 的base64编码 |
data | 要上传的数据 |
接收不同的指令进行不同的操作
c2c指令 | 功能 |
---|---|
103 | 下载文件保存为%temp%/jv[4位随机数].tmp 并调用cmd.exe /q /c start 执行 |
105 | 下载shellcode映射到内存,调用CreateThread函数执行 |
115 | 执行任意cmd命令 |
117 | 删除OneDriveUpdate.lnk |
120 | 下载文件执行,然后删除OneDriveUpdate.lnk |
各个功能具体实现
103
105
117和120
115
最后更新: 2023年10月17日 15:57:54
本文链接: http://shxi.cc/post/ccd8a0ac.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!