System.Management.Automation.dll is used; only native .NET libraries. An alternati for NoPowerShell is to launch it as a DLL via rundll32.exe in a restricted en: rundll32 NoPowerShell.dll,main.
This project makes it easy for e to extend its functionality using only a few lines of C# code. For more info, see CONTRIBUTING.md.
Latest binaries a from the Releases page. The MASTER branch is not updated very regularly; the latest code and cmdlets are a in the DEV branch. To kickstart your NoPowerShell skills, make sure to also check out the cmdlet Cheatsheet.
execute-assembly command of Cobalt Strike or in a restricted en using rundll32.exe.
ping instead of Test-NetConnection)
powerpick or powershell cmdlets are not a, they _are_ a in nps (e.g. cmdlets from the Acti module)
execute-assembly command to launch the NoPowerShell.exe. For example execute-assembly /path/to/NoPowerShell.exe Get-Command.
NoPowerShell.cna can be used to add the nps alias to Cobalt Strike.
bofnet_init
bofnet_load /path/to/NoPowerShell.dll
bofnet_execute NoPowerShell.Program Get-Command
bofnet_init
bofnet_load /path/to/NoPowerShell.exe
bofnet_executeassembly NoPowerShell Get-Command
NoPowerShell.dll file (drag using right click -> Create shortcuts here)
rundll32 and appending ,main
rundll32 C:\Path\to\NoPowerShell.dll,main
cmd.exe or PowerShell, you need to escape the pipe character (|) with respectively a caret (^) or a backtick (` `), e.g.:
cmd.exe: ls ^| select Name
PowerShell:
Known issues
Pipeline characters need to be surrounded by spaces
TLS 1.1+ is not supported by .NET Framework 2, so any site enforcing it will result in a connection error
Impro
Fix abo
Support for parameter groups
Add support for .NET code in commandline, e.g.: [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
Requested NoPowerShell cmdlets
| Cmdlet | Description |
| - | - |
| In | Using PSRemoting execute a command on a remote machine (which in that case will of course be logged) |
| * | More \*-Item\* commands |
| Search-ADAccount | |
| Get-ADPrincipalGroupMembership | |
| Get-ADOrganizationalUnits | |
| * | More commands from the Acti PowerShell module |
| * | Sysinternals utilities like pipelist and sdelete` |
| Cmdlet | Contributed by | GitHub | Twitter | Description |
| - | - | - | - | - |
| | | | | |
Also make sure to check out the Cheatsheet for examples on how to use these cmdlets.
| Who | Website | Notes |
| - | - | - |
| Contributors of pinvoke.net | | cmdlets use snippets from pinvoke |
| Michael Conrad | | Parts of the Resol cmdlet are based on the code of the DnsClient.Net project |
| Rex Logan | | Most code of the Get-NetNeighbor cmdlet originates from his StackO post |
| PowerShell de | | Code of NoPowerShell DLL is largely based on the code handling the console input of PowerShell |
| Benjamin Delpy | | Code of Get-WinStation is inspired by the code of Mimikatz' ts::sessions command |
| Dan Ports | | Marshalling code of Get-Winstation is partially copied from the Cassia project |
| Mazdak | | Nati calls for the Get-LocalGroupMember cmdlet |
| Rex Logan | | Code of Get-NetNeighbor cmdlet |
Authored by Arris Huijgen ( - )
开发语言:C#
Star 数:1056
该项目属于红蓝攻防方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕PowerShell rebuilt in C# for Red Teaming purposes展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | nopowershell - PowerShell rebuilt in C# for Red Teaming purposes |
| 所属分类 | 红蓝攻防 |
| 发布作者 | admin |
| 发布时间 | 2026-10-06 00:36:25 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 253 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |