Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
nopowershell — PowerShell reconstruit en C# à des fins de Red Teaming | Kitploit
Outils/GitHubGitHub/bitsadmin/nopowershell
ReconnaissanceCollecte d'InformationsPost-ExploitationCommandement et ContrôleRed Teaming
GitHubbitsadmin/nopowershell

nopowershell

PowerShell reconstruit en C# à des fins de Red Teaming

Voir le dépôt
1.1k144il y a 9 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

NoPowerShell

NoPowerShell est un outil implémenté en C# qui permet d'exécuter des commandes de type PowerShell tout en restant invisible pour les mécanismes de journalisation de PowerShell. Ce binaire compatible .NET Framework 2 peut être chargé dans Cobalt Strike pour exécuter des commandes en mémoire. Aucune System.Management.Automation.dll n'est utilisée ; seules les bibliothèques .NET natives. Une autre utilisation de NoPowerShell est de le lancer en tant que DLL via rundll32.exe dans un environnement restreint : rundll32 NoPowerShell.dll,main.

Ce projet permet à chacun d'étendre facilement ses fonctionnalités en utilisant seulement quelques lignes de code C#. Pour plus d'informations, consultez CONTRIBUTING.md.

Les derniers binaires sont disponibles sur la page Releases. La branche MASTER n'est pas mise à jour très régulièrement ; le code et les cmdlets les plus récents sont disponibles dans la branche DEV. Pour démarrer avec NoPowerShell, assurez-vous également de consulter l'Aide-mémoire des cmdlets.

Captures d'écran

Exécution dans Cobalt Strike

Commandes prises en charge par NoPowerShell

Exemple d'exécution de commandes

Exemple de commandes NoPowerShell

Version Rundll32

NoPowerShellDll via rundll32

Pourquoi NoPowerShell

NoPowerShell est développé pour être utilisé avec la commande execute-assembly de Cobalt Strike ou dans un environnement restreint à l'aide de rundll32.exe. Raisons d'utiliser NoPowerShell :

  • Exécution très furtive
  • Fonctionnalités puissantes
  • Fournit les cmdlets que vous connaissez déjà dans PowerShell, pas besoin d'apprendre un autre outil
  • Si vous n'êtes pas encore très familier avec PowerShell, les alias cmd.exe sont également disponibles (par exemple ping au lieu de Test-NetConnection)
  • Si les cmdlets ne sont pas disponibles via powerpick ou powershell, elles le sont dans nps (par exemple les cmdlets du module ActiveDirectory)
  • Facilement extensible avec seulement quelques lignes de C#

Utilisation

Exemples

Voir CHEATSHEET.md.

Utilisation dans Cobalt Strike via execute-assembly

Utilisez la commande execute-assembly de Cobalt Strike pour lancer NoPowerShell.exe. Par exemple execute-assembly /path/to/NoPowerShell.exe Get-Command. Optionnellement, NoPowerShell.cna peut être utilisé pour ajouter l'alias nps à Cobalt Strike.

Utilisation dans Cobalt Strike via BOF.NET

  1. Installez le BOF BOF.NET depuis https://github.com/CCob/BOF.NET
  2. Chargez le runtime BOF.NET : bofnet_init
  3. Chargez le module NoPowerShell : bofnet_load /path/to/NoPowerShell.dll
  4. Exécutez les cmdlets NoPowerShell : bofnet_execute NoPowerShell.Program Get-Command

Utilisation dans Cobalt Strike avec le fork de BOF.NET de @williamknows

Ce fork permet d'exécuter des exécutables .NET standard

  1. Obtenez et compilez le fork de BOF.NET de @williamknows depuis https://github.com/williamknows/BOF.NET
  2. Chargez le runtime BOF.NET : bofnet_init
  3. Chargez le module NoPowerShell : bofnet_load /path/to/NoPowerShell.exe
  4. Exécutez les cmdlets NoPowerShell : bofnet_executeassembly NoPowerShell Get-Command

Lancement via rundll32

  1. Créez un raccourci vers le fichier NoPowerShell.dll (glissez avec le clic droit -> Créer des raccourcis ici)
  2. Modifiez le raccourci en préfixant le nom de fichier avec rundll32 et en ajoutant ,main
  3. Le raccourci ressemblera alors à rundll32 C:\Path\to\NoPowerShell.dll,main
  4. Double-cliquez sur le raccourci

Remarque

Lorsque vous utilisez NoPowerShell depuis cmd.exe ou PowerShell, vous devez échapper le caractère pipe (|) respectivement avec un accent circonflexe (^) ou un backtick (`), par exemple :

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

Problèmes connus

  • Les caractères de pipeline doivent être entourés d'espaces
  • TLS 1.1+ n'est pas pris en charge par .NET Framework 2, donc tout site l'imposant entraînera une erreur de connexion

Améliorations

  • Corriger les problèmes ci-dessus
  • Prise en charge des groupes de paramètres
  • Ajouter la prise en charge du code .NET en ligne de commande, par exemple : [System.Security.Principal.WindowsIdentity]::GetCurrent().Name

Cmdlets NoPowerShell demandées

Cmdlets NoPowerShell contribuées

Les auteurs de cmdlets NoPowerShell supplémentaires sont ajoutés au tableau ci-dessous. De plus, le tableau liste les commandes que la communauté demande d'ajouter. Ensemble, nous pouvons développer une boîte à outils NoPowerShell puissante !

CmdletContribué parGitHubTwitterDescription

Cmdlets NoPowerShell incluses

Assurez-vous également de consulter l'Aide-mémoire pour des exemples d'utilisation de ces cmdlets.

Remerciements

Plusieurs cmdlets NoPowerShell et la DLL NoPowerShell incluent du code créé par d'autres développeurs.

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

Télécharger l’outil
CmdletDescription
Invoke-CommandExécuter une commande sur une machine distante via PSRemoting (ce qui sera bien sûr journalisé dans ce cas)
*D'autres commandes *-Item*
Search-ADAccount
Get-ADPrincipalGroupMembership
Get-ADOrganizationalUnits
*D'autres commandes du module PowerShell ActiveDirectory
*Des utilitaires Sysinternals comme pipelist et sdelete
CmdletModuleNotes
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-ArchiveArchiveNécessite .NET 4.5+
Expand-ArchiveArchiveNécessite .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-NetNeighborNetTCPIPPas encore de prise en charge 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
QuiSite webNotes
Contributeurs de pinvoke.nethttps://www.pinvoke.net/Plusieurs cmdlets utilisent des extraits de pinvoke
Michael Conradhttps://github.com/MichaCo/Des parties de la cmdlet Resolve-Dns sont basées sur le code du projet DnsClient.Net
Rex Loganhttps://stackoverflow.com/a/1148861La majeure partie du code de la cmdlet Get-NetNeighbor provient de son post StackOverflow
Développeurs de PowerShellhttps://github.com/PowerShell/Le code de la DLL NoPowerShell est en grande partie basé sur le code gérant l'entrée console de PowerShell
Benjamin Delpyhttps://github.com/gentilkiwi/Le code de Get-WinStation est inspiré du code de la commande ts::sessions de Mimikatz
Dan Portshttps://github.com/danports/Le code de marshalling de Get-Winstation est partiellement copié du projet Cassia
Mazdakhttps://www.codeproject.com/Articles/2937/Getting-local-groups-and-member-names-in-CLes appels de fonctions natives pour la cmdlet Get-LocalGroupMember
Rex Loganhttps://stackoverflow.com/a/1148861Code de la cmdlet Get-NetNeighbor