PowerShell Runspace 后渗透工具包
版本:2.6 许可证:BSD 3-Clause
p0wnedShell 是一个用 C# 编写的恶意 PowerShell 宿主应用,它不依赖 powershell.exe,而是在 PowerShell 运行空间环境(.NET)中执行 PowerShell 命令和函数。它内置了大量恶意 PowerShell 模块和二进制文件,使后渗透过程更加便捷。我们尝试构建一个“全能型”后渗透工具,用于绕过各种防御方案(至少一部分),并集成了所有相关工具。您可以使用它在 Active Directory 环境中执行现代攻击,并向蓝队揭示风险,以便他们构建正确的防御策略。
要编译 p0wnedShell,您需要在 Microsoft Visual Studio 中打开该项目,并针对 x64/x86 平台进行构建。编译前可以修改以下 AutoMasq 选项:
public static bool AutoMasq = true;
public static string masqBinary = @"C:\Windows\Notepad.exe";
当 AutoMasq 设置为 false 时,直接运行可执行文件即可正常启动。 启用 AutoMasq 后,您可以将 p0wnedShell 可执行文件重命名为要伪装的进程名(masqBinary),使其外观看起来像该进程(例如 notepad.exe)。
使用可选的 -parent 命令行参数,您可以指定一个父进程 ID 来启动 p0wnedShell。
结合 PEB Masq 选项和不同的父进程 ID(例如 svchost),您可以让 p0wnedShell 看起来像一个合法服务 ;)
注意:从 Meterpreter 会话/shell 中使用不同的父进程 ID 运行 p0wnedShell 目前还不起作用... 未来会改进。
改变父进程 ID 也可以用于以系统权限生成 p0wnedShell 进程,
例如使用 lsass 作为父进程。
为此,您需要拥有 UAC 提升的管理员权限。
C:\p0wnedShell>p0wnedShellx64.exe -parent
[+] 请输入有效的父进程名称。
[+] 例如:C:\p0wnedShell\p0wnedShellx64.exe -parent svchost
C:\p0wnedShell>p0wnedShellx64.exe -parent lsass
以 x86 二进制运行并绕过 Applocker(感谢 Casey Smith 即 subTee 提供此优秀绕过方法):
cd \Windows\Microsoft.NET\Framework\v4.0.30319 (或更新版本的 .NET 文件夹)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx86.exe
以 x64 二进制运行并绕过 Applocker:
cd \Windows\Microsoft.NET\Framework64\v4.0.30319 (或更新版本的 .NET 文件夹)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx64.exe
运行空间内的 PowerShell 函数通过 Base64 编码并压缩的字符串 加载到内存中。
二进制文件通过 ReflectivePEInjection 加载到内存中(字节数组使用 Gzip 压缩,并以 Base64 编码字符串 的形式保存在 p0wnedShell 中)。
p0wnedShell 主要基于 harmj0y、Powersploit 的各位成员、Sean Metcalf、SubTee、Nikhil Mittal、Besimorhino、Benjamin Delpy、Breenmachine、FoxGlove Security、Kevin Robertson、FuzzySecurity、James Forshaw 以及我可能忘记的其他各位的工具和知识。向他们以及我们雷德蒙德的朋友们致以感谢,是他们让我们接触到一种非常强大的黑客语言。
如有问题反馈或功能请求,欢迎通过以下方式联系我:
Cornelis at dePlaa.com 或 @Cn33lis