某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.exe
是AVAST杀毒软件的签名程序
,经分析该白程序,会调用同目录下的wsc.dll
名为[email protected]
的导出函数
释放的wsc.dll
是gh0st远控客户端
,并且还会添加计划任务来达到持久化,每五分钟运行一次`。
自己在尝试构造这个白利用Demo时,发现导出函数定义不成[email protected]这样的名字,后经查询资料发现,原来是调用约定的问题,使用__stdcall
就可以了
C语言编译器函数名称修饰规则
__stdcall:编译后,函数名被修饰为“[email protected]”。
__cdecl:编译后,函数名被修饰为“_functionname”。
__fastcall:编译后,函数名给修饰为“@[email protected]”。
注:“functionname”为函数名,“number”为参数字节数。
下面是测试时导出函数声明的例子
EXTERN_C __declspec(dllexport) void _stdcall run(char* commandline)
{
WinExec("calc.exe",SW_SHOW);
}
运行wsc_proxy.exe时加载并调用wsc.dll的[email protected]函数