PowerShell无文件持久化技术与常用的防御绕过技术

目前为止,PowerShell仍然是网络安全专家进行防御和黑客进行攻击的首选工具。原因很简单,PowerShell具有很好的可扩展性,支持能力以及适应各种编程语言。如PowerShell Empire,PowerSploit等,都被安全研究人员以及黑客所使用。

这两天,就有安全平台检测出了有恶意软件利用PowerShell所进行的攻击,该攻击可以进行持久性攻击并绕过传统安全防护的检测。恶意软件会诱骗用户对网站上的Adobe Flash浏览器插件进行更新,然后使用一个称为mshta.exe的HTA攻击方法。 MSHTA.exe是一个合法的Microsoft二进制文件,可以在任何浏览器中被调用,用于执行.HTA文件。不过在大多数情况下,对MSHTA.exe的扩展都属于恶意扩展,所以我们建议开启防火墙里所有阻止HTA扩展的功能。

目前利用MSHTA.exe进行攻击的方法已经被列入社会工程学攻击包(SET)多年了:

如果被MSHTA.exe攻击了,就会发生上图所列的那些情况。黑客可能是利用了VBS下载器,PowerShell,一个被下载和执行的二进制文件等等来执行的MSHTA.exe攻击。

目前,在大多数情况下,这种钓鱼网络攻击都能够被检测到,如下图所示, 一旦网页启动了恶意HTA ,就能被立即检测到。

一旦发生这种情况,PowerShell命令就会被执行,因为这个HTA会触发了多个危险提示。通常,恶意HTA会触发SYSWOW64降级攻击,将进程降级为32位进程,从而给目标设备注入shellcode。

在我们对攻击日志进行分析时,我们发现Invoke-Expression(IEX)是一种常用的攻击技术,利用这种技术可以提取特定的注册表项,并实现持久化的挂钩( hook)。PowerShell攻击是通过Invoke-Expression(IEX)调用.Net Web Client下载功能来下载浏览器上的PowerShell代码并执行。不过,提取的注册表项的名称和持久性挂钩都会在初始PowerShell调用中经过混淆处理。

在这个由Invoke-Expression引起的攻击中,攻击者会在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("HKCUsoftwarebkzlqzsdnhepyzs"); 
  4. eval(Registry_Key_Value); 
  5. </script> 

 

这一系列过程,就是我们本文所说的无文件攻击技术,也称为有效载荷传递攻击技术,因为该攻击技术不是直接将特定的有效载荷写入文件的,而是通过运行注册表项来在目标设备中实现持久化注入。

在文件攻击技术中,mshta.exe会使用WScript.shell来调用嵌入了PowerShell命令的注册表项。目前,这种无文件攻击至今还无法被检测到。不过,“无文件”并不是真的没有文件的意思,而是指的有效载荷,关于什么是无文件恶意软件,请点击这里进行详细了解。

使用目标设备的PowerShell和mshta,攻击者可以使用传统的攻击技术来对目标设备进行恶意文件的下载及后门的安装。通常黑客会使用Invoke-Expression(IEX)来进行绕过并使用PowerShell的“EncodedCommand”参数以躲避安全软件的检测。

最近,安全研究员Vincent Yiu就展示了一种通过PowerShell来绕过传统检测的方法,该方法没有调用任何IEX和EncodedCommand。目前这种方法已开始被广泛使用了,比如下图这个例子,就是利用了“.”来调用calc.exe的。在这个例子中,由于没有调用其他代码,所以无需使用该代码来分配变量。

那么,在这种情况下,网站的TXT将记录下载PowerShell的命令,并通过nslookup在系统上执行该命令。这意味着我们可以把命令代码注入到DNS中的TXT记录中,并启动PowerShell命令。

开头我们所提到的那家安全平台就可以就可以通过这种PowerShell的运行,来检测出恶意运行。

如果检测到nslookup以及通过nslookup提取代码的行为,则该平台就能立马检测到这种恶意行为,因为PowerShell内部使用的nslookup以及在txt记录中的代码都是恶意的。另外,上面例子中的“.”只能执行文件,而不是执行代码本身。因此,我们还需要另一个命令,来执行从nslookup txt记录中提取的代码。

安全研究专家Daniel Bohannon给出了一种实现办法,不过仍然需要用到IEX:

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

以下是在该平台所识别出的一种特定攻击模式:

预防措施

对于那些还没有使用该平台进行防护的组织来说,我们可以推荐一些方法来检测PowerShell的这种无文件持久化行为,其实这种恶意行为并不仅限于某种特定的模式,例如IEX。下面我们就为你列出一些预防措施,让你做到心中有数:

  • 注意PowerShell命令的字符长度必要过大;
  • 注意将PowerShell置于约束语言模式下的行为;
  • 启用增强的PowerShell日志记录,例如脚本块日志记录;
  • 经常对设备进行安全检测;
  • 注意minesweeper.exe的出现;
  • 监控诸如IEX,EncodedCommand等的使用;
  • 利用Sysmon等工具提高记录功能,并检测可能由可疑进程(PowerShell)引发的流程注入,
  • 审查DNS日志并寻找可疑的控制命令和DNS请求;
  • 查找不是源自powershell.exe和powershell_ise.exe的System.Management.Automation.dll和System.Management.Automation.ni.dll;
  • 在正常情况下禁止普通用户执行PowerShell命令(AppLocker +Device Guard可以防止普通用户使用PowerShell)。

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

(0)
管理的头像管理
上一篇2025-02-25 23:04
下一篇 2025-02-25 23:06

相关推荐

  • 站群服务器和普通服务器到底哪个更适合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

发表回复

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