
네트워크 관리, 보안 및 유지보수를 위한 PowerShell 및 PoshSec 스크립트 프레임워크입니다.
스크립트와 모듈이 작동하려면 아래 문서를 참조하십시오.
PoshSec Framework(또는 PSF)는 PowerShell 스크립트, 모듈 및 cmdlet을 실행하기 위한 그래픽 프런트엔드 유틸리티입니다. PSF는 개별화된 PSession 내에서 인터페이스의 일부를 PowerShell에 노출합니다. 실행되는 각 스크립트 또는 명령은 별도의 스레드에서 실행되므로 여러 스크립트를 동시에 실행할 수 있습니다.
PoshSec Framework는 주로 Ben Ten(Ben0xA)이 개발합니다. 이 프로젝트는 프로젝트에 기여하고자 하는 다른 개발자에게도 개방되어 있습니다. 이 프로젝트는 PoshSec 프로젝트와 직접적으로 연결되어 있습니다. PoshSec 프로젝트는 Matt Johnson(mwjcomputing)이 유지 관리하며 여러 개발자가 적극적으로 개발하고 있습니다. 이러한 개발자는 아래에 나열되어 있습니다.
PoshSec Framework는 PowerShell 3.0과 함께 작동하도록 설계되었으며 PowerShell 2.0에서도 작동합니다. PSF는 이전 버전의 PowerShell에서도 작동하지만, PSF에는 PowerShell 3.0과 함께 기본 제공되는 .NET 4.5가 필요합니다. PSF를 사용하기 위한 권장 사전 요구 사항은 다음과 같습니다:
'대부분'의 스크립트의 경우 대상 시스템에 PowerShell을 배포할 필요는 없지만, PoshSec Framework가 설치된 동일한 시스템에는 PowerShell이 설치되어 올바르게 구성되어 있어야 합니다.
PowerShell 스크립트, 함수 또는 cmdlet을 처음 사용하는 경우 먼저 수행해야 할 몇 가지 준비 작업이 있습니다. 이러한 작업은 PoshSec Framework를 사용하든 직접 스크립트, 함수 또는 cmdlet을 호출하든 관계없이 수행해야 합니다. 참고: PSF에 내장된 'First Time Utility'가 이러한 모든 단계를 자동으로 수행합니다. 그러나 이러한 단계는 참고를 위해 또는 직접 수행하려는 경우를 대비해 아래에 자세히 설명되어 있습니다.
PoshSec Framework의 최초 실행 유틸리티는 위에 나열된 단계를 자동으로 수행합니다. 또한 다음 작업도 수행합니다:
참고: First Time 유틸리티에서 수행할 단계를 선택하거나 "아무것도 하지 마세요. 직접 하겠습니다"라고 표시된 버튼을 누르기만 하면 됩니다.
PowerShell은 기본적으로 실행할 수 있는 스크립트를 결정하는 ExecutionPolicy가 "None"으로 설정되어 있습니다. 이로 인해 서명되지 않은 스크립트가 시스템에서 실행되지 않습니다. PoshSec과 같은 다른 프로젝트의 스크립트를 사용하는 경우 이 정책을 "RemoteSigned"로 설정해야 합니다. RemoteSigned 정책은 사용자가 개발했거나 다른 사람이 개발한 스크립트를 위해 설계되었습니다. 이 명령은 로컬 관리자 권한으로 실행해야 합니다.
ps C:\> Set-ExecutionPolicy RemoteSigned -Force
Microsoft는 Windows 7 이상 운영 체제를 출시하면서 인터넷에서 다운로드한 모든 파일에 "차단(Block)"을 도입했습니다. 이로 인해 다운로드한 파일을 실행할 때 UAC(사용자 계정 컨트롤)가 팝업으로 표시됩니다. 원격 사이트에서 스크립트, 함수 또는 cmdlet을 사용하는 경우 PowerShell 또는 PSF 내에서 실행하기 전에 이 "차단" 플래그를 제거해야 합니다.
Unblock-File Cmdlet은 이 플래그를 제거합니다. 디렉터리에 있는 여러 파일의 차단을 해제하는 가장 간단한 방법은 디렉터리를 반복하면서 각 파일을 Unblock-File Cmdlet에 전달하는 것입니다.
ps C:\> Get-ChildItem | ForEach-Object { Unblock-File $_.Name }
PoshSec Framework는 PowerShell 내에서 Get-Help Cmdlet을 활용합니다. 이는 명령이나 스크립트에 매개 변수가 있는지 확인하는 데 사용됩니다. Get-Help를 사용하려면 먼저 도움말을 한 번 이상 업데이트해야 합니다. 이 작업은 Update-Help Cmdlet을 사용하여 수행합니다. 참고: 도움말을 업데이트하려면 활성 인터넷 연결이 필요합니다.
ps C:\> Update-Help -Force
=======
참고: 현재 PowerShell 3.0 이상이 필요합니다.
처음 로드할 때 PowerShell 명령 셸에서 "Update-Help"를 실행해야 합니다. 이는 프레임워크가 제대로 작동하는 데 필요합니다!
Visual Studio 2012+에서 poshsecframework.sln을 열고 프로젝트를 빌드(F7)합니다. 그러면 {your github repodirectory}\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
~or~
Get-ChildItem -recurse "C:\Program Files\PoshSecFramework\ | Unblock-File"
Will Steele(@pen_test)과 Matt Johnson(@mwjcomputing)이 시작한 이 프로젝트에는 몇 가지 목표가 있습니다:
PoshSec Framework는
현재 "Core" 개발자는 다음과 같습니다:
알파벳 순서:
PoshSec은 커뮤니티를 지원하고, 커뮤니티에 힘을 실어주며, 조직의 보안 자세를 강화하는 것입니다.