近期毒霸安全团队在日常威胁狩猎过程中发现”银狐“组织正利用搜索引擎推广广告页投递远控后门,该团伙在投放落地页时异常狡猾,这些下载页面只会在特定时间,特定ip地域才会激活,其它时候无法打开或下载都是正常投放的推广包,且下载地址和页面域名基本每天都在更换,躲避审查和防止安全人员追踪分析。以下为其中一个投放页面。
下载后样本多以 "安装包_xxx.exe","SETUP_xxx.exe"命名,文件版本信息伪装多个知名软件信息且附加了无效的数字签名。在分析中发现该样本具备高度的隐蔽性、对抗性和复杂性,内部多层次内存加载,涉及各类模块和shellcode接近20个,且多个模块使用vmp加壳并对入口点和导出函数使用指令虚拟化保护,阻止安全人员分析。同时在杀软的特征扫描,模拟引擎,云查,主动防御方面都有规避措施,在技术上相较于先前的银狐样本又有了新的提升。下图为样本的整个攻击流程。
母体样本经过膨胀,大小在10~15M之间,膨胀方式有文件末尾附加数据填充0字节或”.data“区段填充
母体主要代码是分配可执行内存,执行内嵌的一段自解密shellcode。在shellcode中会使用多种方式检查自身是否运行在真实环境,并对ETW NtTraceEvent函数和AMSI AmsiScanBuffer函数进行patch。反调试方面使用GetTickCount64 和_rdtsc指令检查执行时间。以上检测到异常则退出运行。以下是对模拟环境或沙盒的检测部分。
检测通过后会判断是否存在360相关杀软进程和窗口类名,如果存在则尝试投递线程消息关闭窗口,如果无法关闭会继续下载一组反杀软组件,针对国内主流的杀软。再无法关闭就会弹出窗口诱骗用户退出杀软。最后会下载后门远控组件运行。
首先需要获取一份组件下载链接配置表 ”https[:]//557o.oss-cn-hangzhou.aliyuncs[.]com/i.dat“ 解密后得到后续需要下载文件的链接,如下图,这些存储链接有效期只有2~3天,新的链接会随着新样本的更新而更新。
下载这些文件具有特殊的结构,并且落地的文件会在特定偏移处填充随机值修改hash,这样每个用户每次下载的文件hash值都不一致。在这些下载文件中大部分会使用如下两种加密文件格式,由文件头+加密payload+解密偏移+解密key组成,或搜索特定起始标记确定payload位置。解密方式使用末尾的key循环异或或者RC4算法。
文件下载完成后需要另外一个组件添加到计划任务执行。下载地址"https[:]//557o.oss-cn-hangzhou.aliyuncs[.]com/s.jpg"。“s.jpg”解密出一段shellcode,shellcode内嵌一个压缩后的PE模块,解压后在内存中加载,调用导出函数”RegisterTask“添加计划任务
与普通COM方式添加计划任务不同,此处通过RPC命名管道”ncacn_np:[\\pipe\\atsvc]“,再构建出需要添加计划任务的xml,直接调用底层API"NdrClientCall3" 发起调用添加计划任务,绕过一些AV或EDR对计划任务的拦截。计划任务在添加后立即执行,并且每分钟触发一次。被添加的反杀软组件是一组白+黑 但是exe和dll以及后续payload被分开在两个目录存放,所以在计划任务中设置工作目录在Pictures目录。
计划任务启动后会加载"KOBDrvAPIIFFax.dll"模块,该模块使用VMP加壳保护,并对入口点和导出函数使用指令虚拟化。模块加载后会读取“1.gif”并搜索特征“0x96 0x3B 0x47 0x5f 0x66”确定payload起始,使用RC4算法解密,key为:0xAFCDA6C9E7A22EAB。解密后的payload会覆盖当前主进程从OEP开始往下的代码,这样当模块全部加载完成后主进程的OEP得到执行时机。
执行覆盖后的shellcode继续解密"2.jpg",解出模块后内存加载并调用导出函数“run”执行,该模块依然是VMP保护,模块内部导出dll名“bp360.dll”,核心功能就是结束杀软进程。
方式1:下载驱动结束杀软。源于github项目“TrueSightKiller”,这是国外一款反恶意软件工具驱动,可以在内核结束指定pid的进程。由于没有有效的鉴权导致被滥用。下载地址“https[:]//557o.oss-cn-hangzhou.aliyuncs.com/s.dat”,解密后存放到"C:\Windows\System32\drivers\torpl.sys"路径下。驱动加载后会循环检测如下图杀软进程,发送控制码结束对应的进程。
方式2:在应用层实现,通过NtQuerySystemInformation枚举全局进程句柄寻找指定杀软进程的EPROCESS对象指针,判断拥有该指针的句柄的进程是否有进程读写权限,如果找到则构建一段shellcode注入指定进程(一般为系统关键进程),并创建远程线程执行。这段shellcode在目标进程内用高权限打开杀软进程并调用TerminateProcess结束进程。
在上步完成后开始下载后门组件,与前面一致先下载一份配置表 ”https[:]//3o6.oss-cn-beijing.aliyuncs[.]com/f.dat",解密后得到后续需要下载文件的链接,如下图,与上文一致下载文件落地全部会更改hash。
dPE4LV.exe 和hpbcfgui.dll是一组白+黑利用,其中dPE4LV.exe是惠普某打印机驱动组件,具有有效数字签名,hpbcfgui.dll被vmp壳保护。为了保证文件填充随机数后数字签名仍然有效,数字签名区段被扩充,随机值被填充在此区域。证书区段设置了一个标记“0xFB 0xAD 0xFC 0xEF 0xFE 0xCF 0xDA 0xBF” 此标记前两字节填充随机数,此标记后的数据是隐藏的加密shellcode。hpbcfgui.dll被加载后会解密该区域的shellcode执行,加密算法RC4密钥:"9`MGQm6NNijRond"。
shellcode执行后继续解密“log.src”文件,解密出的模块依然是vmp保护模块,该模块内部导出dll名“S.dll”。内存加载后调用导出函数CLRCreateInstance执行。
“S.dll”模块中包含上文中的绝大部分反杀软功能,此外还包括注册表禁用UAC,添加到Windows Defend排除目录,拷贝自身目录文件添加计划任务和利用重启管理器结束“360tray.exe”进程。
最后解密“utils.vcxproj” 文件,解密出的模块是Gh0st变种远控后门,并在内存中加载调用导出函数edge执行。与使用主控端直接在生成后门时填充地址不同的是,此处把上线地址配置化了,读取“utils.vcxproj” 文件头部中指定偏移处的C2填充到远控中特定位置。使用IP+域名双上线方式, "47.76.172.225:7000" 和"rasewx[.]net:7073"
在本次深入分析中,我们全面揭示了该黑产组织的攻击策略、规避手段及其对抗杀毒软件的能力。显然该组织在技术层面已经展现出与高级持续性威胁(APT)相当的攻击能力。从搜索页面SEM投放直至攻击行为,以及对抗杀毒软件的全过程,均显示出背后有专业技术支持团队。在攻防战中“知己知彼,百战不殆”,安全厂商与该组织的较量也将会长期持续。我们强烈建议广大用户和企业提高网络安全意识,通过官方渠道下载应用,避免运行未知程序,从而保护自身数据安全。
df2f4aad13fb6d08332e09fd47cd0c98
f1b23b111e25b07d395e489c52eeeb40
https[:]//557o.oss-cn-hangzhou.aliyuncs[.]com
https[:]//3o6.oss-cn-beijing.aliyuncs[.]com
47.76.172.225
103.207.167.4
rasewx.net