이 스크립트는 일반적으로 Windows 구성 문제 또는 나쁜 관행으로 인한 LPE ( Local Privilege Escalation ) 취약점을 식별하는 것을 목표로합니다. 또한 일부 착취 및 탐사 후 작업에 유용한 정보를 수집 할 수 있습니다.
스크립트를 다운로드하여 대상 Windows 시스템에 복사 한 후 아래 명령 중 하나를 사용하여 실행하십시오.
메모
전체 저장소를 복제 할 필요가 없습니다 . PrivescCheck.ps1 파일은 PrivescCheck 실행하는 데 필요한 모든 코드를 포함하는 독립형 PowerShell 스크립트입니다.
중요한
아래 명령에서 첫 번째 명령에서 . (DOT)는 스크립트 "DOT 소싱"에 사용되므로 기능 및 CMDLET을 현재 범위 에서 사용할 수 있습니다 (PowerShell DOT 소싱 기능 참조).
로컬 권한 에스컬레이션 취약점과 같은 중요한 문제를 신속하게 식별하십시오.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck "중요한 문제를 식별하고 추가 정보를 수집하고 결과를 저장하여 읽기 쉬운 파일을보고합니다.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML "확장 및 감사 점검을 수행하고 결과를 인간이 읽을 수있는 보고서뿐만 아니라 기계 읽을 수있는 파일에도 저장하여 나중에 자동화 된 보고서 생성을 위해 구문 분석 할 수 있습니다.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Audit -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML,CSV,XML " PrivesCcheck에서 구현 된 모든 수표에는 유형이 있습니다. 이 값과 명령 줄에 지정된 플래그는 실행 중인지 여부를 결정합니다.
스크립트가 관리자로 실행되지 않는 한 유형 Base 의 점검은 항상 실행됩니다. 주로 특권 에스컬레이션 취약점 또는 기타 중요한 문제를 식별하기위한 것입니다.
유형 Extended 검사는 옵션 -Extended 옵션이 명령 줄에 지정된 경우에만 실행할 수 있습니다. 이들은 주로 개발 개발 또는 외계 후에 유용 할 수있는 추가 정보를 제공하기위한 것입니다.
유형 Audit 의 점검은 명령 줄에 옵션 -Audit 지정된 경우에만 실행할 수 있습니다. 주로 구성 감사의 맥락에서 관련된 정보를 제공하기위한 것입니다.
유형 Experimental 의 점검은 옵션 -Experimental 명령 줄에 지정된 경우에만 실행할 수 있습니다. 이들은 추가 작업이 필요한 불안정한 점검입니다. 주의해서 사용하십시오.
기본적으로 PowerShell 실행 정책은 클라이언트에 대한 Restricted 설정되어 새로운 powershell.exe 프로세스가 시작될 때 서버에서 RemoteSigned . 이 정책은 (서명되지 않은) 스크립트의 실행을 차단하지만 다음과 같이 현재 범위 내에서 재정의 할 수 있습니다.
Set-ExecutionPolicy Bypass - Scope Process - Force
. .PrivescCheck.ps1그러나이 트릭은 GPO를 통해 실행 정책이 시행 될 때 작동하지 않습니다. 이 경우 새 PowerShell 세션을 시작한 후 다음과 같이 스크립트를로드 할 수 있습니다.
Get-Content .PrivescCheck.ps1 | Out-String | Invoke-Expression제한된 언어 모드를 우회하는 일반적인 방법은이 보호를 구현하지 않기 때문에 PowerShell 버전 2를 시작합니다. 따라서 개발 노력의 상당 부분은 이러한 호환성을 유지하는 데 사용됩니다.
메모
PowerShell 버전 2는 최근 버전의 Windows에서 기본적으로 여전히 활성화되어 있지만 .NET Framework 버전 2.0 없이는 실행할 수 없으므로 수동 설치가 필요합니다.
MeterPreter 세션 내 에서이 스크립트를 실행하면 "타임 아웃"오류가 발생할 수 있습니다. Metasploit은 "응답 시간 초과"값을 가지며 기본적으로 15 초로 설정되지만이 스크립트는 대부분의 환경에서 실행하는 데 훨씬 더 많은 시간이 걸립니다.
meterpreter > load powershell
Loading extension powershell...Success.
meterpreter > powershell_import /local/path/to/PrivescCheck.ps1
[+] File successfully imported. No result was returned.
meterpreter > powershell_execute "Invoke-PrivescCheck"
[-] Error running command powershell_execute: Rex::TimeoutError Operation timed out. sessions 명령 (문서)의 -t 옵션 덕분에 다른 값을 설정할 수 있습니다. 다음 예에서는 ID 1 과의 세션에 2 분의 시간 초과가 설정됩니다.
msf6 exploit(multi/handler) > sessions -t 120 -i 1
[*] Starting interaction with 1...
meterpreter > powershell_execute "Invoke-PrivescCheck"