Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
nopowershell — レッドチーミング目的でC#により再構築されたPowerShell | Kitploit
ツール/GitHubGitHub/bitsadmin/nopowershell
偵察情報収集ポストエクスプロイトコマンド&コントロールレッドチーミング
GitHubbitsadmin/nopowershell

nopowershell

レッドチーミング目的でC#により再構築されたPowerShell

リポジトリを見る
1.1k1449ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

NoPowerShell

NoPowerShellはC#で実装されたツールで、PowerShellに似たコマンドを実行しながら、PowerShellのあらゆるログ記録メカニズムに対して不可視のまま動作します。この.NET Framework 2互換のバイナリは、Cobalt Strikeにロードしてメモリ内でコマンドを実行できます。System.Management.Automation.dllは使用されず、ネイティブの.NETライブラリのみが使用されます。NoPowerShellの別のユースケースとしては、制限された環境でrundll32.exeを介してDLLとして起動する方法があります: rundll32 NoPowerShell.dll,main。

このプロジェクトは、数行のC#コードだけで誰でも簡単に機能を拡張できるようにしています。詳細については、CONTRIBUTING.mdを参照してください。

最新のバイナリはReleasesページから入手できます。MASTERブランチはあまり頻繁には更新されません。最新のコードとコマンドレットはDEVブランチにあります。NoPowerShellのスキルを身につけるには、コマンドレットのCheatsheetもぜひ確認してください。

スクリーンショット

Cobalt Strikeでの実行

NoPowerShell supported commands

コマンドの実行例

NoPowerShell sample commands

Rundll32バージョン

NoPowerShellDll via rundll32

NoPowerShellを使う理由

NoPowerShellは、Cobalt Strikeのexecute-assemblyコマンドで使用するか、rundll32.exeを使用して制限された環境で使用するために開発されました。 NoPowerShellを使用する理由:

  • 非常にステルスに実行される
  • 強力な機能
  • PowerShellで既に使い慣れているコマンドレットを提供するため、別のツールを学ぶ必要がない
  • PowerShellにまだあまり慣れていない場合でも、cmd.exeのエイリアスが利用可能(例: Test-NetConnectionの代わりにping)
  • powerpickやpowershell経由ではコマンドレットが利用できない場合でも、npsでは利用できる(例: ActiveDirectoryモジュールのコマンドレット)
  • 数行のC#だけで簡単に拡張可能

使用方法

例

CHEATSHEET.mdを参照してください。

execute-assembly経由でCobalt Strikeで使用する

Cobalt Strikeのexecute-assemblyコマンドを使用してNoPowerShell.exeを起動します。例: execute-assembly /path/to/NoPowerShell.exe Get-Command。 必要に応じて、NoPowerShell.cnaを使用してnpsエイリアスをCobalt Strikeに追加できます。

BOF.NET経由でCobalt Strikeで使用する

  1. https://github.com/CCob/BOF.NET からBOF.NET BOFをインストールします
  2. BOF.NETランタイムをロードします: bofnet_init
  3. NoPowerShellモジュールをロードします: bofnet_load /path/to/NoPowerShell.dll
  4. NoPowerShellコマンドレットを実行します: bofnet_execute NoPowerShell.Program Get-Command

@williamknowsのBOF.NETフォークを使用してCobalt Strikeで使用する

このフォークでは、通常の.NET実行可能ファイルを実行できます

  1. https://github.com/williamknows/BOF.NET から@williamknowsのBOF.NETフォークを取得してコンパイルします
  2. BOF.NETランタイムをロードします: bofnet_init
  3. NoPowerShellモジュールをロードします: bofnet_load /path/to/NoPowerShell.exe
  4. NoPowerShellコマンドレットを実行します: bofnet_executeassembly NoPowerShell Get-Command

rundll32経由で起動する

  1. NoPowerShell.dllファイルへの新しいショートカットを作成します(右クリックでドラッグ -> ここにショートカットを作成)
  2. ファイル名の前にrundll32を付け、末尾に,mainを追加してショートカットを更新します
  3. ショートカットは次のようになります: rundll32 C:\Path\to\NoPowerShell.dll,main
  4. ショートカットをダブルクリックします

注意

cmd.exeまたはPowerShellからNoPowerShellを使用する場合、パイプ文字(|)をそれぞれキャレット(^)またはバッククォート(`)でエスケープする必要があります。例:

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

既知の問題

  • パイプ文字はスペースで囲む必要があります
  • TLS 1.1以上は.NET Framework 2ではサポートされていないため、それを強制するサイトでは接続エラーが発生します

改善点

  • 上記の問題を修正する
  • パラメータグループのサポート
  • コマンドラインでの.NETコードのサポート追加。例: [System.Security.Principal.WindowsIdentity]::GetCurrent().Name

リクエストされたNoPowerShellコマンドレット

コミュニティ提供のNoPowerShellコマンドレット

追加のNoPowerShellコマンドレットの作者は以下の表に追加されます。さらに、この表にはコミュニティから追加がリクエストされたコマンドも一覧表示されます。一緒に強力なNoPowerShellツールキットを開発しましょう!

CmdletContributed byGitHubTwitterDescription

含まれるNoPowerShellコマンドレット

これらのコマンドレットの使用例については、Cheatsheetもぜひ確認してください。

謝辞

さまざまなNoPowerShellコマンドレットとNoPowerShell DLLには、他の開発者によって作成されたコードが含まれています。

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

ツールをダウンロード
CmdletDescription
Invoke-CommandPSRemotingを使用してリモートマシン上でコマンドを実行します(その場合、もちろんログに記録されます)
*その他の*-Item*コマンド
Search-ADAccount
Get-ADPrincipalGroupMembership
Get-ADOrganizationalUnits
*ActiveDirectory PowerShellモジュールのその他のコマンド
*pipelistやsdeleteなどのSysinternalsユーティリティ
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-ArchiveArchiveRequires .NET 4.5+
Expand-ArchiveArchiveRequires .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-NetNeighborNetTCPIPNo support for IPv6 yet
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
WhoWebsiteNotes
Contributors of pinvoke.nethttps://www.pinvoke.net/Various cmdlets use snippets from pinvoke
Michael Conradhttps://github.com/MichaCo/Parts of the Resolve-Dns cmdlet are based on the code of the DnsClient.Net project
Rex Loganhttps://stackoverflow.com/a/1148861Most code of the Get-NetNeighbor cmdlet originates from his StackOverflow post
PowerShell developershttps://github.com/PowerShell/Code of NoPowerShell DLL is largely based on the code handling the console input of PowerShell
Benjamin Delpyhttps://github.com/gentilkiwi/Code of Get-WinStation is inspired by the code of Mimikatz' ts::sessions command
Dan Portshttps://github.com/danports/Marshalling code of Get-Winstation is partially copied from the Cassia project
Mazdakhttps://www.codeproject.com/Articles/2937/Getting-local-groups-and-member-names-in-CNative function calls for the Get-LocalGroupMember cmdlet
Rex Loganhttps://stackoverflow.com/a/1148861Code of Get-NetNeighbor cmdlet