一文洞察攻防演练期间的钓鱼木马手法
从趋势可以大致看出:
自攻防演练当天,微步云沙箱S Web样本提交量陡增,达到了近几日的高峰,可能说明攻击队自攻防演练开始就大范围使用钓鱼/社工攻击进行攻击,因此被防守方捕获并提交到S进行自动化分析,在随后的几天中,分别于28号、31号出现了两个小高峰。 攻防演练开始前一周微步云沙箱S就开始收到少量的相关样本提交,这可能说明除了日常样本提交之外,还有不少攻击队通过提交微步云沙箱S进行免杀测试。
对样本名称进行简单统计发现,其中XX表、XX通知、简历、大学、薪资、举报、工具等关键字出现的频率最高。
为了使可执行文件更像是文档,红队会将可执行文件的图标替换成文档文件的图标,如Word、Excel、PDF等,并对文件后缀或目录结构进行特殊处理。比如使用双重后缀.docx.exe,使用超长文件名隐藏真实后缀,使用RLO控制字符翻转后缀,使用LNK文件启动隐藏文件的方式执行等。
同时为了防止用户在点击后察觉异常,钓鱼样本在执行后会释放并打开同名的诱饵文档。
并且执行后会向/yozo/yumkids.bmp URI路径发起网络请求。
然而样本为可执行文件,却伪装成文档,说明有极大概率为木马程序,这些特征只是为了逃避检测,掩人耳目。通过存留在样本中的版本信息找到原始的永中office程序,二者比对后发现:该样本与原始文件绝大多数代码相同,只有部分代码被篡改,用于执行恶意代码。
在原始程序执行流的前段,会有一个被篡改的call调用,跳入事先patch好的恶意代码中执行。
通过这一特性,我们发现一批使用相同手法的样本,均伪装成文档进行钓鱼攻击。样本patch所依托的载体有搜狗输入法组件,7-zip组件,微软反病毒组件,迅雷卸载程序,QQ音乐下载器,Everything主程序等。
2、**2022年第三季度在招岗位.zip——控制流平坦化混淆
该样本在到达受害者主机时,受害者只会看到伪装成Word文档的LNK文件。
双击LNK文件会启动执行__MACOSX隐藏目录下的aomhost64.exe白文件,从而侧加载恶意动态库DllSafeCheck64.dll。
在分析恶意动态库时发现,该样本使用控制流平坦化对恶意代码进行混淆,使得原本简单的逻辑变得非常复杂,拖慢安全人员的分析进度,从而给自己的木马争取更长的存活时间。这种混淆方法虽然不是新的技术手段,但在攻防演练的样本中还是比较少见的。
然而奇怪的是,样本在控制流方面使用了复杂的混淆方法,却在样本里留下了大量未混淆的日志信息字符串。从日志信息可以简单判断出,这是一款名为”Loki”的木马,负责下载执行其他的载荷,并通过添加计划任务的方式完成驻留。
3、2022Q3待发债券清单.xlsx.exe——Hook改变Beacon C2
配置静态解析是很多流行沙箱都具备的功能,通过这个特性可以快速的得到具体家族样本的关键信息。但当解析这个样本加载的Beacon载荷时发现,解析得到的C2地址为111.111.111.111。但这个IP为DNS服务器的地址,显然不能作为C2使用。
将内部的载荷单独执行发现确实会与111.111.111.111通信,但原始文件执行时却会连接到一个完全不同的IP地址。经过一番排查后发现,加载器通过导入表hook在不改变原始载荷的情况下改变了C2地址。首先加载器加载内层载荷时,会将GetProcAddress函数hook为GetProcAddress_hook_func。
同样在hook的代码中对InternetConnectA函数进行过滤, 当内层的Beacon进行反射注入时,会调用GetProcAddress_hook_func动态获取InternetConnectA函数,这时hook代码将其定位到自己实现的InternetConnectA_hook_func函数上。
因此在加载完成后的Beacon中, InternetConnectA_hook_func取代了原有InternetConnectA函数,从而可以忽略由配置解析得到的原始IP地址,连接到指定的地址上。
因此无需重新生成内部的CS Beacon载荷, 只需要将存储在加载器.data节中的地址数据改为其他的IP或者域名即可更换木马的C2。
下面是两个比较典型的攻防演练CS木马:
1、域前置CS木马——Google.exe
样本外层为使用C#编写的加载器,执行后会开辟内存空间,使用AES解密CS Beacon载荷,修改内存可执行属性后直接调用执行。
Beacon模块反射加载执行后,会以”Host: mail.***.com”连接域名mail.***.com.dsa.dnsv1.com.cn所指向的CDN主机,以此为中转完成木马连接。从而避免与C2直接进行网络通信,达到隐藏C2的目的。
2、云函数转发CS木马——修复补丁.exe
样本外层为使用C/C++编写的加载器,执行后会使用AES算法解密CS stager载荷,并调用ZwQueueApcThread创建apc线程执行。
CS stager木马执行后会连接腾讯云函数地址service-272xl1r7-1312629461.bj.apigw.tencentcs.com,并以此为中转完成木马通信,从而隐藏真正的C2服务器。
根据微步云沙箱的统计分析结果,攻防演练期间出现的钓鱼木马绝大多数为CobaltStrike木马,并且大多数都使用域前置和云函数转发服务对真正的C2服务器进行隐藏。我们根据CobaltStrike木马的通信机制以及对应的资产特征,提供如下专项建议:
木马连接的CDN IP
木马用于获取CDN IP的白域名
木马用于获取CDN IP的CNAME域名
公众号内回复“85”,可获取附录IOC文档
第一时间为您推送最新威胁情报