某APT组织利用AVAST杀软的白利用针对越南司法部投放恶意文档

在推特上刷到这条推文
在这里插入图片描述

推文中的博客链接提到这是针对越南司法部的APT攻击,并提供了样本文件Hash

rtf样本文件sha1:
41f0757ca4367f22b0aece325208799135c96ebe1dcafcd752d3f3c8dd4a5ccf

该样本文件运行后会释放两个文件到用户temp目录:

C:\Users\admin\AppData\Local\Temp\wsc.dll
4e88f8a3c3be45e0a59a8868f2b2ace51754fcdbfa9ab618e3d9d0e17831990f

C:\Users\admin\AppData\Local\Temp\wsc_proxy.exe
1948bb0df11f768d6dd30ae7ecec5550db7c817d09cb31b5e2cee9b86a4047da

在这里插入图片描述
其中wsc_proxy.exeAVAST杀毒软件的签名程序,经分析该白程序,会调用同目录下的wsc.dll名为_run@4的导出函数
在这里插入图片描述
释放的wsc.dllgh0st远控客户端,并且还会添加计划任务来达到持久化,每五分钟运行一次`。
在这里插入图片描述

自己在尝试构造这个白利用Demo时,发现导出函数定义不成_run@4这样的名字,后经查询资料发现,原来是调用约定的问题,使用__stdcall就可以了

C语言编译器函数名称修饰规则
__stdcall:编译后,函数名被修饰为“_functionname@number”。
__cdecl:编译后,函数名被修饰为“_functionname”。
__fastcall:编译后,函数名给修饰为“@functionname@nmuber”。
注:“functionname”为函数名,“number”为参数字节数。

下面是测试时导出函数声明的例子

EXTERN_C __declspec(dllexport) void _stdcall run(char* commandline)
{
	WinExec("calc.exe",SW_SHOW);
}

运行wsc_proxy.exe时加载并调用wsc.dll的_run@4函数
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cssxn/article/details/90206180