返回介绍

7.9 没有 PowerShell 的 PowerShell

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

您最终在一个设备上获得远程代码执行权限,但您发现无法运行 PowerShell.exe 或者公司正在监视 PowerShell.exe 命令。您有什么办法让 PowerShell 静荷或者命令和控制代理在主机系统上运行?

1.NoPowerShell(NPS)

我喜欢 NoPowerShell(NPS)的概念。NPS 是一个 Windows 二进制文件,它通过.NET 执行 PowerShell,而不是直接调用 PowerShell.exe。虽然目前杀毒软件通常会对操作行为进行标记,但是我们可以使用相同的思路创建二进制文件,直接执行 PowerShell 恶意软件,无须运行 PowerShell.exe。由于 Ben0xA 提供了源代码,因此可以尝试对二进制文件进行混淆处理,从而规避杀毒软件。

另外一个使用 NPS 原理的是 TrustedSec 工具,它利用了通过 MSBuild.exe 执行代码的优势。此工具将 PowerShell 静荷生成到 msbuild_nps.xml 文件中,该文件在调用时执行。XML 文件可以通过以下方式调用。

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exeC:\<pathto_msbuild nps.xml>。

2.SharpPick

SharpPick 是 PowerPick 的一个组件,它是一个值得推荐的工具,允许调用 PowerShell 功能,而无须使用 PowerShell.exe 二进制文件。在 SharpPick 中,RunPS 函数使用 System.Management.Automation 函数在 PowerShell 运行空间中执行脚本,无须启动 PowerShell 进程。

下载 SharpPick 后,您可以使用 PowerShell Empire 静荷,创建二进制文件。

有时可能无法在主机系统上放置二进制文件。在这些情况下,可以创建一个类库(DLL 文件),我们可以将 DLL 文件放到系统,并使用“rundll32.exe runmalicious.dll,EntryPoint”执行。

当然,可以使用 Meterpreter 或 Cobalt Strike 自动创建这些 DLL 文件,从而可以灵活地运行特定的 PowerShell 静荷,而无须调用 PowerShell.exe。

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

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

发布评论

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