7.9 没有 PowerShell 的 PowerShell
您最终在一个设备上获得远程代码执行权限,但您发现无法运行 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论