Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
nopowershell — PowerShell reconstruído em C# para fins de Red Teaming | Kitploit
Ferramentas/GitHubGitHub/bitsadmin/nopowershell
ReconhecimentoColeta de InformaçõesPós-ExploraçãoComando e ControleRed Teaming
GitHubbitsadmin/nopowershell

nopowershell

PowerShell reconstruído em C# para fins de Red Teaming

Ver Repositório
1.1k1443há 6 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

NoPowerShell

NoPowerShell é uma ferramenta implementada em C# que suporta a execução de comandos semelhantes aos do PowerShell, permanecendo invisível para qualquer mecanismo de log do PowerShell. Este binário compatível com .NET Framework 2 pode ser carregado no Cobalt Strike para executar comandos em memória. Nenhuma System.Management.Automation.dll é usada; apenas bibliotecas .NET nativas. Um caso de uso alternativo para o NoPowerShell é executá-lo como uma DLL via rundll32.exe em um ambiente restrito: rundll32 NoPowerShell.dll,main.

Este projeto facilita para todos a extensão de sua funcionalidade usando apenas algumas linhas de código C#. Para mais informações, consulte CONTRIBUTING.md.

Os binários mais recentes estão disponíveis na página de Releases. O branch MASTER não é atualizado com muita regularidade; o código e os cmdlets mais recentes estão disponíveis no branch DEV. Para dar o pontapé inicial em suas habilidades com o NoPowerShell, não deixe de conferir também o Cheatsheet de cmdlets.

Capturas de tela

Executando no Cobalt Strike

Comandos suportados pelo NoPowerShell

Exemplo de execução de comandos

Exemplos de comandos NoPowerShell

Versão Rundll32

NoPowerShellDll via rundll32

Por que NoPowerShell

O NoPowerShell foi desenvolvido para ser usado com o comando execute-assembly do Cobalt Strike ou em um ambiente restrito usando rundll32.exe. Motivos para usar o NoPowerShell:

  • Executa de forma bastante furtiva
  • Funcionalidade poderosa
  • Fornece os cmdlets com os quais você já está familiarizado no PowerShell, sem a necessidade de aprender mais uma ferramenta
  • Se você ainda não está muito familiarizado com o PowerShell, os aliases do cmd.exe também estão disponíveis (por exemplo, ping em vez de Test-NetConnection)
  • Caso os cmdlets não estejam disponíveis via powerpick ou powershell, eles estão disponíveis no nps (por exemplo, cmdlets do módulo ActiveDirectory)
  • Facilmente extensível com apenas algumas linhas de C#

Uso

Exemplos

Consulte CHEATSHEET.md.

Uso no Cobalt Strike via execute-assembly

Use o comando execute-assembly do Cobalt Strike para iniciar o NoPowerShell.exe. Por exemplo, execute-assembly /path/to/NoPowerShell.exe Get-Command. Opcionalmente, o NoPowerShell.cna pode ser usado para adicionar o alias nps ao Cobalt Strike.

Uso no Cobalt Strike via BOF.NET

  1. Instale o BOF.NET BOF de https://github.com/CCob/BOF.NET
  2. Carregue o runtime do BOF.NET: bofnet_init
  3. Carregue o módulo NoPowerShell: bofnet_load /path/to/NoPowerShell.dll
  4. Execute os cmdlets do NoPowerShell: bofnet_execute NoPowerShell.Program Get-Command

Uso no Cobalt Strike usando o fork do BOF.NET de @williamknows

Este fork permite executar executáveis .NET comuns

  1. Obtenha e compile o fork do BOF.NET de @williamknows em https://github.com/williamknows/BOF.NET
  2. Carregue o runtime do BOF.NET: bofnet_init
  3. Carregue o módulo NoPowerShell: bofnet_load /path/to/NoPowerShell.exe
  4. Execute os cmdlets do NoPowerShell: bofnet_executeassembly NoPowerShell Get-Command

Inicializar via rundll32

  1. Crie um novo atalho para o arquivo NoPowerShell.dll (arraste usando o botão direito -> Create shortcuts here)
  2. Atualize o atalho prefixando o nome do arquivo com rundll32 e acrescentando ,main
  3. O atalho agora ficará assim: rundll32 C:\Path\to\NoPowerShell.dll,main
  4. Clique duas vezes no atalho

Observação

Ao usar o NoPowerShell a partir do cmd.exe ou do PowerShell, você precisa escapar o caractere pipe (|) com um acento circunflexo (^) ou um acento grave (`), respectivamente, por exemplo:

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

Problemas conhecidos

  • Os caracteres de pipe precisam estar cercados por espaços
  • O TLS 1.1+ não é suportado pelo .NET Framework 2, portanto qualquer site que o exija resultará em erro de conexão

Melhorias

  • Corrigir os problemas acima
  • Suporte para grupos de parâmetros
  • Adicionar suporte para código .NET na linha de comando, por exemplo: [System.Security.Principal.WindowsIdentity]::GetCurrent().Name

Cmdlets NoPowerShell solicitados

Cmdlets NoPowerShell contribuídos

Os autores de cmdlets NoPowerShell adicionais são adicionados à tabela abaixo. Além disso, a tabela lista comandos que a comunidade solicitou que fossem adicionados. Juntos, podemos desenvolver um poderoso kit de ferramentas NoPowerShell!

CmdletContribuído porGitHubTwitterDescrição

Cmdlets NoPowerShell incluídos

Não deixe também de conferir o Cheatsheet para exemplos de como usar esses cmdlets.

Agradecimentos

Diversos cmdlets do NoPowerShell e a DLL NoPowerShell incluem código criado por outros desenvolvedores.

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

Baixar ferramenta
CmdletDescrição
Invoke-CommandUsando PSRemoting, execute um comando em uma máquina remota (que, nesse caso, é claro, será registrado em log)
*Mais comandos *-Item*
Search-ADAccount
Get-ADPrincipalGroupMembership
Get-ADOrganizationalUnits
*Mais comandos do módulo PowerShell ActiveDirectory
*Utilitários Sysinternals como pipelist e sdelete
CmdletMóduloObservações
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-ArchiveArchiveRequer .NET 4.5+
Expand-ArchiveArchiveRequer .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-NetNeighborNetTCPIPAinda sem suporte para IPv6
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
QuemSiteObservações
Colaboradores do pinvoke.nethttps://www.pinvoke.net/Diversos cmdlets usam trechos do pinvoke
Michael Conradhttps://github.com/MichaCo/Partes do cmdlet Resolve-Dns são baseadas no código do projeto DnsClient.Net
Rex Loganhttps://stackoverflow.com/a/1148861A maior parte do código do cmdlet Get-NetNeighbor é originada da publicação dele no StackOverflow
Desenvolvedores do PowerShellhttps://github.com/PowerShell/O código da DLL NoPowerShell é amplamente baseado no código que trata a entrada de console do PowerShell
Benjamin Delpyhttps://github.com/gentilkiwi/O código do Get-WinStation é inspirado no código do comando ts::sessions do Mimikatz
Dan Portshttps://github.com/danports/O código de marshalling do Get-WinStation é parcialmente copiado do projeto Cassia
Mazdakhttps://www.codeproject.com/Articles/2937/Getting-local-groups-and-member-names-in-CChamadas de funções nativas para o cmdlet Get-LocalGroupMember
Rex Loganhttps://stackoverflow.com/a/1148861Código do cmdlet Get-NetNeighbor