在近两年的网络安全攻防演练中,无文件PowerShell在攻防实战中越来越多地被攻击者使用。攻击者可以使用PowerShell在内存中执行命令,从而绕过传统防护工具对恶意软件的哈希分析和检测,通过这种方式,恶意攻击者可以降低被检测到的风险,增加成功达到目的的几率。1、为什么攻击者选择PowerShell?使用PowerShell使攻击者更容易将系统暴露在勒索软件、无文件恶意软件和恶意代码注入内存等威胁中,大大增加了安全风险。此外,PowerShell还具有以下特点:(1)规模和范围PowerShell是WindowsXP及更高版本的Windows操作系统的内置功能。同时,它是一个开源的、跨平台的框架,可以运行在Linux上。(2)合法使用PowerShell本身并没有恶意,它实际上是一个合法的工具。但它的使用和误用可能会模糊用于恶意攻击或感染系统与用于完成IT/系统管理任务之间的界限。(3)易于编写和运行对于许多IT/系统管理员、信息安全专业人员、渗透测试人员和黑帽黑客来说,编写和运行PowerShell脚本是相对容易的。(4)易于混淆PowerShell脚本不仅易于编写,而且PowerShell的灵活性和第三方模块的可用性使得混淆变得相对简单。(5)功能特性PowerShell可以虚拟访问大量应用程序编程接口(API)来执行重要功能,例如VirtualAlloc、VirtualProtect和CreateThread,这些都可以被攻击者滥用。图PowerShell攻击链通常情况下,PowerShell默认受到限制以减少其滥用。但我们仍然可以看到一些携带PowerShell脚本的恶意软件使用技术绕过PowerShell的默认执行策略,例如将恶意代码作为命令行参数运行。由于以上特点,攻击者越来越倾向于使用PowerShell进行无文件攻击来完成威胁。2、无文件攻击的注入形式一般来说,注入攻击不仅可以在不知道用户名和密码的情况下登录应用程序,还可以暴露隐私、机密或敏感信息,甚至劫持整个服务器。无文件攻击的注入是在内存层进行的,包括以下四种形式:(1)反射自注入反射加载是指从内存而不是磁盘加载可移植的可执行文件(PE)。精心设计的函数/脚本可以反射性地加载可移植的可执行文件,而无需在进程中注册为已加载的模块,因此可以不留痕迹地执行操作。PowerShell是用于执行这些精心编写的脚本的最广泛使用的应用程序之一。此事件表示无文件攻击,其中PowerShell脚本试图将PE注入PowerShell进程本身。(2)反射式EXE自注入反射式加载是指从内存而不是磁盘加载PE。精心设计的函数/脚本可以反射性地加载可执行文件(EXE)而无需将进程注册为已加载的模块,从而执行操作而不会留下痕迹。PowerShell是用于执行这些精心编写的脚本的最广泛使用的应用程序之一。此事件表示无文件攻击,其中PowerShell脚本试图将EXE注入PowerShell进程本身。(3)反射DLL远程注入反射加载是指从内存而不是磁盘加载PE。精心设计的函数/脚本可以反射性地加载DLL而无需将进程注册为已加载的模块,从而执行操作而不会留下痕迹。PowerShell是用于执行这些精心编写的脚本的最广泛使用的应用程序之一。此事件表示PowerShell脚本试图将DLL注入远程进程的无文件攻击。(4)利用DotNetToJScript技术执行恶意代码该事件表示试图利用CACTUSTORCH等流行的无文件攻击所使用的DotNetToJScript技术执行恶意Shellcode。DotNetToJScript攻击向量允许加载和执行恶意程序。NET程序集(DLL、EXE等),借助于通过COM公开网络库,直接从内存中获取。与任何其他典型的无文件攻击技术一样,DotNetToJScript不会在您的计算机硬盘驱动器上写入恶意文件。netDLL或EXE的任何部分。3、无文件攻击的危害无文件攻击往往不会在磁盘上存储文件,因此基于文件的检测、监控和防御自然无用,但这些攻击在攻击过程中会有一些危险动作,可以通过以下方式检测和识别行为分析模块此外,传统病毒和特洛伊木马威胁的数量仍在增长。基于行为分析的识别技术是目前最重要的检测识别技术(该技术被称为下一代反病毒技术NGAV)。除了系统提供的接口之外,还必须在操作系统上安装大量的钩子,这样才能监控到足够多的行为。有了足够多且多样化的行为数据,基于行为分析的检测识别技术可以识别出更多的威胁攻击。而且误报率可以足够低,但是现在的操作系统越来越封闭(比如64位Windows操作系统),不再允许hooking,势必会大大削弱这种方法的检测效果,这是目前非常重要和主流的病毒和木马威胁检测方法。因此,无文件攻击成功的概率会增加,对很多企事业单位的威胁也会增加,后果不堪设想。4、破解内存保护的方法PowerShell框架提供的便利使得系统管理任务变得更加容易,但也为网络犯罪分子和黑客组织提供了较大的攻击面。尽管如此,尽管使用PowerShell的无文件威胁可能不像传统的恶意软件和攻击那样明显,但它们并非不可阻挡。基于内存保护技术开发设计的智能内容保护系统被认为是目前有效的应对方式。智能内存保护系统可以通过硬件虚拟化监控CPU执行的指令集。通过监控一些敏感指令,结合操作系统的上下文,可以知道操作系统中正在运行的进程执行了哪些动作,从而打破了操作系统的一些限制,收集更多的程序行为,可以大大提高威胁识别率,大大降低误报率。基于硬件虚拟化技术的智能内存保护系统的端点安全技术,可以突破操作系统的局限,实现对程序行为的细粒度监控,可以很好地解决以往无法解决的大问题:内存的读取、写入和执行行为监控。随着新兴技术的发展,无文件攻击、复杂威胁等威胁逐渐出现并被利用,应对和防范瞬息万变的环境成为众多企业面临的挑战。有针对性地选择解决方案可以很好地解决此类威胁。【本文为专栏作者“安安牛”原创文章,转载请通过安安牛(微信公众号id:gooann-sectv)获得授权】点此查看作者更多好文
