APT战争中脚本攻击的兵法之道

 

孙子曰:“兵者,国之大事,死生之地,存亡之道,不可不察也。”尽管处于和平年代,网络世界却硝烟弥漫。请你回答以下360安全大脑提供的自测题,看看你能在这场“战争”中“幸存”吗?

以上问题,如果你有一个以上的回答是“是”的话,那么360安全大脑强烈建议你认真学习本文!

有一天,安妹儿做了一个可怕的梦……

这是一起由FIN7组织发起的APT攻击。APT-C-11(Carbanak、FIN7)攻击组织是一个跨国网络犯罪团伙。2013年起,该犯罪团伙总计向全球约30个国家和地区的100家银行、电子支付系统和其他金融机构发动了攻击。

此次攻击中,攻击者把OLE对象图标设置为透明并放置到诱导图片对象的上层,当用户双击图片实际点击的是vbs脚本图标!此诡计正是《孙子兵法》中所言:无形,则深间不能窥,智者不能谋。

安妹儿一下从梦中惊醒,“还好是一场梦呀,但是这样的攻击每天都在发生……”

曾今

  • APT-C-35组织利用vba宏脚本,使用完整的诱饵文档诱骗目标,导致多个商务人士办公设备沦陷。
  • APT-C-06组织利用vbs脚本漏洞触发shellcode,使用powershell脚本安装后门,导致某机构中招。
  • APT-C-12组织在LNK文件中设下圈套,利用powershell脚本窃取电脑敏感文件。

… … 等等

360安全大脑发现越来越多的黑客更加倾向于在APT(Advanced Persistent Threat)攻击中利用可执行脚本进行恶意攻击。

 

【脚本攻击特点】

可执行脚本(主要包括但不限于vbs、js、powershell、vba、bat等类型)为何被APT组织频繁使用呢?

  1. 环境适应性强。

APT攻击中利用的脚本一般不需要考虑环境、版本差异,基本可以依赖宿主系统自带的组件执行。比如vbs脚本,系统默认会调用wscript组件解析执行。

  1. 隐蔽性高。

攻击脚本能够以非磁盘文件的方式在系统中驻留,增强了自身的隐蔽性。比如APT29攻击组织曾使用系统提供的WMI(Windows Management Instrumentation)功能和powershell脚本相结合的方式来实现本地无文件的持久化后门。

  1. 脚本语言灵活性高,功能多样,静态检测难度大。

脚本语言类型众多且灵活性高,既能实现跟PE一样的各种功能,比如文件下载、RAT等,又能叠加复杂的加密、混淆,导致杀毒引擎的静态查杀难度大。

  1. 脚本开发成本和周期短,开源项目的利用门槛低。

脚本文件可读性高,开源攻击脚本项目众多,有些只需要更改脚本的远控C&C,混淆后就可以投递。摩柯草组织就曾使用过开源的Invoke-Shellcode.ps1脚本进行攻击。

  1. 攻击脚本投放形式多样。

攻击脚本(js、vbs、powershell)既可以直接运行,也可以嵌入网页、lnk文件、Office文档载体中运行。APT攻击者特别喜欢将vba宏代码嵌入Office文档中,再精心构造文档名,结合鱼叉或水坑等攻击方式进行传播,极具欺骗性,很多用户中招。

  1. 用户对脚本攻击的防范意识差。

用户通常对可执行程序的防范意识较强,但是对于脚本攻击却知之甚少。在运行诸如sct、ps1等恶意脚本时,用户往往不会产生警惕心理,很容易中招。

孙子曰:“知己知彼,百战不殆”。鉴于越来越多的APT组织选择脚本来作为攻击载荷,360安全大脑总结出几种APT战争中使用脚本的经典“兵法”。

 

【攻守相辅,进退自如】

APT-C-17攻击行动最早可以追溯到2013年1月,主要针对航空航天领域,目的是窃取目标用户敏感数据信息。

下图为APT-C-17攻击行动中下载的某个脚本文件的部分内容:

其实下载的完整脚本主要包括两部分类型,一是js脚本,内容为加密后的PE;二是vbs脚本,这部分内容主要是通过解密js脚本中的数据写入注册表,后调用powershell解密为数据文件cmpbk32.dll、cliconfig32,然后通过系统程序cmdl32.exe加载cmpbk32.dll,该dll会加载cliconfig32,最终加载的cliconfig32为蠕虫病毒。

脚本文件除了攻击动作以外,还实现了防御功能。其在调用powershell执行解密操作时,会检测是否存在”360Tray”进程,比较有意思的是,它只检测了360,没有检测其他杀软了。

 

【攻其无备,出其不意】

黄金鼠组织(APT-C-27)从2014年11月开始针对叙利亚进行了长时间的攻击,在攻击后期使用了大量的vbs/js脚本,并且脚本经过大量混淆,需要多次进行解密。下图为其中一个vbs脚本的部分代码。

将代码去混淆解密后,得到主要代码。

该vbs脚本主要功能是与C&C进行通信,不再是简单的下载文件,而是具备完整的后门功能。PE文件的执行权限被杀毒软件严防死守,采用纯脚本实现与PE一样的远控功能,独辟蹊径,出其不意。

 

【兵贵神速,以快制胜】

海莲花(APT-C-00)组织主要针对中国政府、科研院所和海事机构等重要领域发起攻击。相关攻击行动最早可以追溯到2011年,期间不仅针对中国,同时还针对其他国家发起攻击。该组织大量使用水坑式攻击和鱼叉式钓鱼邮件攻击,攻击不限于Windows系统,还针对其他非Windows操作系统,相关攻击至今还非常活跃。该组织也善于使用powershell代码。

该组织使用的某powershell代码是开源的项目DKMC的一部分exec-sc.ps1。

该脚本利用powershell提供的机制调用Win32 API来完成shellcode的加载执行。

①首先获取Microsoft.Win32.UnsafeNativeMethods类,通过该类的GetMethod方法获取GetProcAddress函数并进一步获取特定Dll中的特定函数。

②通过System.Runtime.InteropServices调用通过①获取的Win32函数来实现shellcode的加载及执行。

而且该脚本根据指针大小为4还是8来判断操作系统是32位还是64位,方便进行适配。

只需替换该项目的shellcode,然后混淆进行投递即可。兵贵神速,开源脚本项目经过简单的修改就可以投入使用,从而大大缩短攻击样本的开发成本和周期,可以快速出击,借势成事。

 

【兵无常势,因敌而变】

APT-C-20组织,又称Pawn Storm、Sofacy、Sednit、FancyBear和Strontium(中文通常会翻译成魔幻熊)。该组织相关攻击时间最早可以追溯到2007年,主要目标包括国防工业、军队、政府组织和媒体,被怀疑和俄罗斯政府有关,在APT 28攻击过程中,会使用大量0day漏洞,其所使用的恶意代码除了针对Windows、Linux等PC操作系统,还会针对苹果iOS等移动设备操作系统。近年来,该组织也常使用加密vba宏代码进行攻击。

如下是APT-C-20组织利用恶意vba脚本进行攻击,通过钓鱼邮件携带附件的方式进行传播。打开附件会看到宏代码被禁用(这里每个用户设置不一样会有所区别),如若点击选项中的“启用此内容”,电脑就会执行宏代码。

但是分析宏代码时,发现宏代码会加密保护,如下图所示:

加密保护的宏代码,可以使用开源软件OLEtools目录中的OLEvba3进行解密。

解密后脚本的主要功能是从表格中取出加密的PE文件,然后加载执行最终的RAT载荷。

特别需要注意的是Office软件的宏功能在macOS上也能良好运作。360安全大脑曾捕获到跨平台攻击样本“双子星”,该样本使用宏内建的预定义语法兼容了Windows和macOS两种操作系统。相较于直接执行各类脚本进行攻击,将脚本嵌入载体投放的攻击方式则更具变化性的和欺骗性。依据攻击目标,选取不同的载体,不同的脚本,不同的场景,千变万化,防不胜防。

 

【防御建议】

道路千万条,安全第一条。防御不到位,亲人两行泪。

面对有高深谋略的APT脚本攻击,广大用户除了需要提高对脚本攻击的防御意识,更要掌握好360安全大脑给出的几条实用“锦囊妙计”:

第一计:不要随便打开陌生人发来的邮件中的文档;

第二计:安装360安全卫士;

第三计:及时更新系统和浏览器补丁;

第四计:文件显示后缀(具体步骤:我的电脑→“组织”菜单下拉选项→“文件夹和搜索”选项→“查看”选项卡→取消勾选“隐藏已知文件类型的扩展名”);

第五计:Outlook软件关闭附件预览功能;

第六计:Office不要设置默认允许所有宏代码执行。

(完)