
ネットワーク管理、セキュリティ、およびメンテナンスのためのPowerShellおよびPoshSecスクリプト用フレームワーク。
スクリプトとモジュールを動作させるには、以下のドキュメントを参照してください。
PoshSec Framework(PSF)は、PowerShellスクリプト、モジュール、およびコマンドレットを実行するためのグラフィカルフロントエンドユーティリティです。PSFは、個別化されたPSession内で、そのインターフェースの一部をPowerShellに公開します。実行される各スクリプトまたはコマンドは個別のスレッドで実行されるため、複数のスクリプトを同時に実行できます。
PoshSec Frameworkは主にBen Ten(Ben0xA)によって開発されています。このプロジェクトは、プロジェクトに貢献したい他の開発者にも開放されています。このプロジェクトはPoshSecプロジェクトに直接関連しています。PoshSecプロジェクトはMatt Johnson(mwjcomputing)によって管理され、複数の開発者によって積極的に開発されています。これらの開発者は以下に記載されています。
PoshSec FrameworkはPowerShell 3.0で動作するように設計されており、PowerShell 2.0でも動作します。PSFはそれ以前のバージョンのPowerShellでも動作しますが、PSFには.NET 4.5が必要であり、これはPowerShell 3.0に標準で付属しています。PSFを使用するために推奨される前提条件は次のとおりです:
「ほとんどの」スクリプトではPowerShellがターゲットシステムに展開されている必要はありませんが、PoshSec Frameworkがインストールされている同じマシンにPowerShellがインストールされ、適切に構成されている必要があることに注意してください。
PowerShellスクリプト、関数、またはコマンドレットを初めて使用する場合は、最初にいくつかの管理上の作業を行う必要があります。これらは、PoshSec Frameworkを使用するか、自分でスクリプト、関数、またはコマンドレットを呼び出すかに関係なく行う必要があります。注:PSFに組み込まれている「初回ユーティリティ」は、これらの手順をすべて自動的に実行します。ただし、これらの手順は、知識のため、または自分で実行したい場合に備えて、以下に詳細に示されています。
PoshSec Frameworkの初回ユーティリティは、上記の手順を自動的に実行します。また、次のことも行います:
注意:初回ユーティリティで実行する手順を選択するか、「何もしないで、自分でやります」というボタンを押すだけです。
PowerShellはデフォルトでExecutionPolicy(どのスクリプトを実行できるかを決定する)が「None」に設定されています。これにより、署名されていないスクリプトがシステム上で実行されるのを防ぎます。PoshSecなどの他のプロジェクトのスクリプトを使用する場合、このポリシーを「RemoteSigned」に設定する必要があります。RemoteSignedポリシーは、自分または他の人が開発したスクリプト向けに設計されています。このコマンドは、ローカル管理者権限で実行する必要があります。
ps C:\> Set-ExecutionPolicy RemoteSigned -Force
MicrosoftによるWindows 7以降のオペレーティングシステムのリリースに伴い、インターネットからダウンロードされたファイルに「ブロック」が導入されました。これにより、ダウンロードしたファイルを実行すると、ユーザーアカウント制御(UAC)がポップアップ表示されます。リモートサイトからスクリプト、関数、またはコマンドレットを使用する場合、PowerShellまたはPSF内で実行する前に、この「ブロック」フラグを削除する必要があります。
Unblock-Fileコマンドレットはこのフラグを削除します。ディレクトリ内の複数のファイルをUnblockする最も簡単な方法は、ディレクトリを反復処理し、各ファイルをUnblock-Fileコマンドレットに渡すことです。
ps C:\> Get-ChildItem | ForEach-Object { Unblock-File $_.Name }
PoshSec FrameworkはPowerShell内のGet-Helpコマンドレットを利用します。これは、コマンドやスクリプトにパラメータがあるかどうかを確認するために使用されます。Get-Helpを使用する前に、少なくとも1回は更新する必要があります。これを行うには、Update-Helpコマンドレットを使用します。注:ヘルプを更新するには、アクティブなインターネット接続が必要です。
ps C:\> Update-Help -Force
=======
注:現時点ではPowerShell 3.0以上が必要です。
最初に読み込むときに、PowerShellコマンドシェルで「Update-Help」を実行する必要があります。これは、フレームワークが正常に動作するために必要です!
Visual Studio 2012+でposhsecframework.slnを開き、プロジェクトをビルド(F7)します。これにより、{githubリポジトリディレクトリ}\poshsecframework\poshsecframework\bin\Releaseにbin\Releaseフォルダが作成されます。
「\Scripts and Modules」フォルダから「\Modules」フォルダと「\Scripts」フォルダをbin\Release\ディレクトリにコピーします。
例:
C:\github\poshsecframework\poshsecframework\bin\Release\Modules\
C:\github\poshsecframework\poshsecframework\bin\Release\Scripts\
バイナリフォルダにはposhsecframework.zipがあります。
zipファイルをお好みのディレクトリに解凍し、poshsecframework.exeを実行するだけです。
Scripts\フォルダやModules\フォルダを移動する必要はありません。
「Scripts and Modules」フォルダからModulesフォルダとScriptsフォルダをインストールディレクトリにコピーします。
C:\Program Files\PoshSecFramework\Modules\
C:\Program Files\PoshSecFramework\Scripts\
システム上でスクリプトを実行したことがない場合は、管理者として実行しているPowerShellコンソールで次のコマンドを発行する必要があります。
Set-ExecutionPolicy RemoteSigned
プロンプトが表示されたら「Y」と入力します。
システムによっては、ファイルを「ブロック解除」する必要がある場合があります。これを直接psfに組み込む作業を進めていますが、今のところはPowerShellコンソールで次のコマンドを入力するだけです:
Get-ChildItem -recurse <path to poshsecframework> | Unblock-File
例:
Get-ChildItem -recurse "C:\github\poshsecframework\poshsecframework" | Unblock-File
~または~
Get-ChildItem -recurse "C:\Program Files\PoshSecFramework\ | Unblock-File"
Will Steele(@pen_test)とMatt Johnson(@mwjcomputing)によって開始されたこのプロジェクトには、いくつかの目標があります:
PoshSec Frameworkは
現在の「コア」開発者は次のとおりです:
アルファベット順:
PoshSecは、コミュニティの支援、コミュニティのエンパワーメント、そして組織のセキュリティ体制の強化に取り組んでいます。