Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
nopowershell — PowerShell reconstruido en C# para fines de Red Teaming | Kitploit
Herramientas/GitHubGitHub/bitsadmin/nopowershell
ReconocimientoRecopilación de InformaciónPost-ExplotaciónComando y ControlRed Teaming
GitHubbitsadmin/nopowershell

nopowershell

PowerShell reconstruido en C# para fines de Red Teaming

Ver Repositorio
1.1k144hace 9 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

NoPowerShell

NoPowerShell es una herramienta implementada en C# que permite ejecutar comandos similares a los de PowerShell permaneciendo invisible a cualquier mecanismo de registro de PowerShell. Este binario compatible con .NET Framework 2 puede cargarse en Cobalt Strike para ejecutar comandos en memoria. No se utiliza System.Management.Automation.dll; solo bibliotecas nativas de .NET. Un caso de uso alternativo para NoPowerShell es lanzarlo como DLL mediante rundll32.exe en un entorno restringido: rundll32 NoPowerShell.dll,main.

Este proyecto facilita que cualquiera pueda ampliar su funcionalidad con solo unas pocas líneas de código C#. Para más información, consulte CONTRIBUTING.md.

Los binarios más recientes están disponibles en la página de Releases. La rama MASTER no se actualiza con mucha regularidad; el código y los cmdlets más recientes están disponibles en la rama DEV. Para poner en marcha tus habilidades con NoPowerShell, asegúrate de revisar también la Cheatsheet de cmdlets.

Capturas de pantalla

Ejecución en Cobalt Strike

Comandos admitidos por NoPowerShell

Ejecución de comandos de ejemplo

Comandos de ejemplo de NoPowerShell

Versión Rundll32

NoPowerShellDll mediante rundll32

Por qué NoPowerShell

NoPowerShell está desarrollado para usarse con el comando execute-assembly de Cobalt Strike o en un entorno restringido mediante rundll32.exe. Razones para usar NoPowerShell:

  • Se ejecuta de forma bastante sigilosa
  • Funcionalidad potente
  • Proporciona los cmdlets que ya conoces en PowerShell, por lo que no necesitas aprender otra herramienta más
  • Si aún no estás muy familiarizado con PowerShell, también están disponibles los alias de cmd.exe (por ejemplo, ping en lugar de Test-NetConnection)
  • En caso de que los cmdlets no estén disponibles a través de powerpick o powershell, sí lo están en nps (por ejemplo, cmdlets del módulo ActiveDirectory)
  • Fácilmente extensible con solo unas pocas líneas de C#

Uso

Ejemplos

Consulta CHEATSHEET.md.

Uso en Cobalt Strike mediante execute-assembly

Usa el comando execute-assembly de Cobalt Strike para lanzar NoPowerShell.exe. Por ejemplo: execute-assembly /path/to/NoPowerShell.exe Get-Command. Opcionalmente, NoPowerShell.cna puede usarse para añadir el alias nps a Cobalt Strike.

Uso en Cobalt Strike mediante BOF.NET

  1. Instala el BOF de BOF.NET desde https://github.com/CCob/BOF.NET
  2. Carga el runtime de BOF.NET: bofnet_init
  3. Carga el módulo de NoPowerShell: bofnet_load /path/to/NoPowerShell.dll
  4. Ejecuta cmdlets de NoPowerShell: bofnet_execute NoPowerShell.Program Get-Command

Uso en Cobalt Strike con el fork de BOF.NET de @williamknows

Este fork permite ejecutar ejecutables .NET normales

  1. Obtén y compila el fork de BOF.NET de @williamknows desde https://github.com/williamknows/BOF.NET
  2. Carga el runtime de BOF.NET: bofnet_init
  3. Carga el módulo de NoPowerShell: bofnet_load /path/to/NoPowerShell.exe
  4. Ejecuta cmdlets de NoPowerShell: bofnet_executeassembly NoPowerShell Get-Command

Lanzamiento mediante rundll32

  1. Crea un nuevo acceso directo al archivo NoPowerShell.dll (arrastra con el botón derecho -> Crear accesos directos aquí)
  2. Actualiza el acceso directo anteponiendo rundll32 al nombre del archivo y añadiendo ,main
  3. El acceso directo ahora se verá así: rundll32 C:\Path\to\NoPowerShell.dll,main
  4. Haz doble clic en el acceso directo

Nota

Al usar NoPowerShell desde cmd.exe o PowerShell, debes escapar el carácter de tubería (|) con un acento circunflejo (^) o un backtick (`), respectivamente, por ejemplo:

  • cmd.exe: ls ^| select Name
  • PowerShell: ls `| select Name

Problemas conocidos

  • Los caracteres de tubería deben estar rodeados de espacios
  • TLS 1.1+ no es compatible con .NET Framework 2, por lo que cualquier sitio que lo exija provocará un error de conexión

Mejoras

  • Corregir los problemas anteriores
  • Soporte para grupos de parámetros
  • Añadir soporte para código .NET en la línea de comandos, por ejemplo: [System.Security.Principal.WindowsIdentity]::GetCurrent().Name

Cmdlets de NoPowerShell solicitados

Cmdlets de NoPowerShell contribuidos

Los autores de cmdlets adicionales de NoPowerShell se añaden a la siguiente tabla. Además, la tabla enumera los comandos que la comunidad ha solicitado añadir. ¡Juntos podemos desarrollar un potente kit de herramientas NoPowerShell!

CmdletContribuido porGitHubTwitterDescripción

Cmdlets de NoPowerShell incluidos

Asegúrate también de consultar la Cheatsheet para ver ejemplos de cómo usar estos cmdlets.

Agradecimientos

Varios cmdlets de NoPowerShell y NoPowerShell DLL incluyen código creado por otros desarrolladores.

Escrito por Arris Huijgen (@bitsadmin - https://github.com/bitsadmin/)

Descargar herramienta
CmdletDescripción
Invoke-CommandEjecuta un comando en una máquina remota mediante PSRemoting (que en ese caso, por supuesto, se registrará)
*Más comandos *-Item*
Search-ADAccount
Get-ADPrincipalGroupMembership
Get-ADOrganizationalUnits
*Más comandos del módulo ActiveDirectory de PowerShell
*Utilidades de Sysinternals como pipelist y sdelete
CmdletMóduloNotas
Get-ADUserActiveDirectory
Get-ADObjectActiveDirectory
Get-ADReplicationSubnetActiveDirectory
Get-ADGroupActiveDirectory
Get-ADGroupMemberActiveDirectory
Get-ADComputerActiveDirectory
Get-ADDomainControllerActiveDirectory
Get-ADTrustActiveDirectory
Copy-AclAdditional
Get-RemoteSmbShareAdditional
Resolve-AdiDnsNameAdditional
Get-WhoamiAdditional
Get-WinStationAdditional
Compress-ArchiveArchiveRequiere .NET 4.5+
Expand-ArchiveArchiveRequiere .NET 4.5+
Get-HelpCore
Get-CommandCore
Where-ObjectCore
Resolve-DnsNameDnsClient
Get-LocalGroupMemberLocalAccounts
Get-LocalGroupLocalAccounts
Set-ClipboardManagement
Get-PSDriveManagement
Get-HotFixManagement
Stop-ProcessManagement
Get-ChildItemManagement
Copy-ItemManagement
Invoke-WmiMethodManagement
Remove-ItemManagement
Get-ItemPropertyValueManagement
Get-ItemPropertyManagement
Get-ComputerInfoManagement
Get-DnsClientCacheManagement
Get-ProcessManagement
Get-WmiObjectManagement
Get-ClipboardManagement
Get-ContentManagement
Test-NetConnectionNetTCPIP
Get-NetTCPConnectionNetTCPIP
Get-NetNeighborNetTCPIPSin soporte para IPv6 todavía
Get-NetRouteNetTCPIP
Get-NetIPAddressNetTCPIP
Get-ServiceNoPowerShell.Commands
Get-LocalUserNoPowerShell.Commands
Get-WinEventNoPowerShell.Commands
New-ShortcutNoPowerShell.Commands
Get-AclSecurity
Get-SmbMappingSmbShare
Get-SmbShareSmbShare
Invoke-SqlcmdSQLPS
Get-FileHashUtility
ConvertFrom-SddlStringUtility
Sort-ObjectUtility
Measure-ObjectUtility
Invoke-WebRequestUtility
Select-ObjectUtility
Out-FileUtility
Format-TableUtility
Format-ListUtility
Export-CsvUtility
ConvertTo-CsvUtility
Write-OutputUtility
QuiénSitio webNotas
Contributors of pinvoke.nethttps://www.pinvoke.net/Varios cmdlets utilizan fragmentos de pinvoke
Michael Conradhttps://github.com/MichaCo/Partes del cmdlet Resolve-Dns se basan en el código del proyecto DnsClient.Net
Rex Loganhttps://stackoverflow.com/a/1148861La mayor parte del código del cmdlet Get-NetNeighbor proviene de su publicación en StackOverflow
PowerShell developershttps://github.com/PowerShell/El código de NoPowerShell DLL se basa en gran medida en el código que maneja la entrada de consola de PowerShell
Benjamin Delpyhttps://github.com/gentilkiwi/El código de Get-WinStation está inspirado en el código del comando ts::sessions de Mimikatz
Dan Portshttps://github.com/danports/El código de marshalling de Get-Winstation está parcialmente copiado del proyecto Cassia
Mazdakhttps://www.codeproject.com/Articles/2937/Getting-local-groups-and-member-names-in-CLlamadas a funciones nativas para el cmdlet Get-LocalGroupMember
Rex Loganhttps://stackoverflow.com/a/1148861Código del cmdlet Get-NetNeighbor