近日,微步OneSEC EDR再次捕获到银狐木马的新变种,中招机器上有恶意进程加载Shellcode。 不就是银狐吗,隔离发起线程创建的进程、删除木马文件就完事,但处置完以后,奇怪的事情出现了:Shellcode还在加载,而且外连C2还在告警!
打开一看,明明已经被关闭的恶意进程runtime.exe与winnt.exe又被拉起来了。
微步终端安全检测团队发现,这次的银狐新变种不仅全程免杀,而且常规检测手段很难追溯到威胁根因,就算溯源到了,处置清理也非常难。本文将会分析攻击者的三大隐藏与对抗技巧和三大对抗清理技巧。
该变种的执行流程示意图如下所示。
最初的木马源文件来自于钓鱼网站,很可能是用户在寻找软件资源时踩中钓鱼网站。源文件是一个压缩文件,解压后会释放一个携带恶意DLL的MSI安装包。
当双击运行MSI安装包时,隐藏其中的恶意DLL就会被执行,同时创建母体进程MsiExec.exe。在这种情况下,DLL文件不会落在磁盘上,进程链上也看不到DLL运行的有关信息。
该样本利用临时服务来创建计划任务进行持久化。
可是当我们追溯该计划任务的创建源头时,发现服务执行的进程源头是具备微软签名的services.exe,并非MsiExec.exe。攻击者巧妙通过服务实现了断链。
该样本在临时服务启动后,会安装有漏洞的驱动CleverSoar,利用漏洞提升至内核权限,用于搜寻并关闭主流杀软进程。
MsiExec.exe会创建两个临时计划任务PayloadTask1与PayloadTask2,用于启动真正和C2通信的子进程,分别为winnt.exe与runtime.exe。
一旦这两个进程被关闭,MsiExec.exe就会再次创建临时计划任务从而重启进程,于是出现了文章开头提到的反复关闭、反复重启的那一幕。
更令人感到头疼的是,临时计划任务同样会在执行后自动删除,即使意识到背后存在持久化利用手段,在排查过程中也很难找到是谁在反复重启这两个进程。
该变种会修改母体计划任务kafanbbs的对应的注册表键值,这会导致安全软件无法使用常规API的方式去查看该计划任务,因此也无法通过该方式删除,从而确保DLL可以开机自启动,保持持久化运行。
以下是使用OneSEC老版本用户中进行清理,发现找不到计划任务的情况:
该变种会通过MsiExec.exe会创建一个自签名的RootKit即Nidhogg,来监控和拦截对自身进程的关闭操作,确保母体进程即使被发现也很难被关闭。
微步终端EDR平台OneSEC利用完善的串链技术,将会给用户提供最完整攻击链路,让攻击者的隐藏和对抗都能被清晰呈现。
此外,针对计划任务隐藏导致清理失败的情况,微步OneSEC也第一时间完善产品能力,提供最全面的清理处置能力。
微步终端检测团队发现,随着银狐木马新变种的不断出现与对抗技巧的不断精进,不仅仅样本检测变得越来越困难,还会因为杀软对抗、进程保护、计划任务隐藏等手法的使用,即便在发现木马活动的情况下,也难以全面消除木马活动造成的影响。
立即体验
微步安全产品及服务