
Active Directory SMB 공유를 감사하여 과도한 권한을 인벤토리, 분석 및 보고합니다. 접근 가능한 시스템을 발견하고, 공유 ACL을 열거하며, 고위험 구성을 식별하고, 수정 우선순위를 위한 HTML/CSV 보고서를 생성합니다.
PowerHuntShares는 사이버 보안 팀과 침투 테스터가 Active Directory 환경에서 SMB 공유를 더 잘 식별, 이해, 공격 및 수정할 수 있도록 설계된 PowerShell 도구입니다. 모든 해커는 SMB 공유를 악용하는 이야기를 가지고 있지만, 사이버 보안 팀은 여전히 이 공격 표면을 방어하는 데 어려움을 겪고 있습니다. 이 프로젝트는 포괄적인 공유 인벤토리를 생성하고, 통계, 차트, 그래프 및 언어 모델을 활용하여 공유를 상황에 맞게 설명하고, 관계를 요약하고, 위험을 평가하고, 수정 우선순위를 지정하기 위한 오픈 소스 개념 증명 도구를 제공하는 것을 목표로 합니다.
다음 기능을 지원합니다:
추가 기능:
PowerHuntShares v2 리소스:
PowerHuntShares v1 리소스:
PowerHuntShares는 "과도한 권한"으로 구성된 SMB 공유 ACL을 인벤토리화하고 "고위험" ACL을 강조합니다. 이 맥락에서 각각의 정의는 아래와 같습니다.
과도한 권한
과도한 읽기 및 쓰기 공유 권한은 "Everyone", "Authenticated Users", "BUILTIN\Users", "Domain Users" 또는 "Domain Computers" 그룹에 대한 명시적 ACE(Access Control Entry)를 포함하는 모든 네트워크 공유 ACL로 정의됩니다. 이들 모두는 권한 상속 문제로 인해 도메인 사용자에게 영향을 받는 공유에 대한 액세스를 제공합니다. 참고: 운영자가 자신의 대상 그룹을 추가할 수 있는 매개변수가 있습니다.
다음은 추가 배경 정보입니다:
참고: 공유 권한은 NTFS 권한에 의해 재정의될 수 있습니다. 또한 다음 키워드를 포함하는 공유 이름은 테스트에서 제외됩니다:
print$, prnproc$, printer, netlogon,and sysvol
고위험 공유
이 보고서의 맥락에서 고위험 공유는 시스템 또는 애플리케이션에 대한 승인되지 않은 원격 액세스를 제공하는 공유로 정의됩니다. 기본적으로 여기에는
wwwroot, inetpub, c$, and admin$공유가 포함됩니다. 그러나 이 외에도 추가적인 노출이 존재할 수 있습니다.
다음은 현재 PowerShell 세션에 PowerHuntShares를 로드하는 데 사용할 수 있는 명령어 목록입니다. PowerShell이 실행될 때마다 이 중 하나를 실행해야 합니다. 영구적이지 않습니다.
# Bypass execution policy restrictions
Set-ExecutionPolicy -Scope Process Bypass
# Import module that exists in the current directory
Import-Module .\PowerHuntShares.psm1
or
# Reduce SSL operating level to support connection to github
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
[Net.ServicePointManager]::SecurityProtocol =[Net.SecurityProtocolType]::Tls12
# Download and load PowerHuntShares.psm1 into memory
IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/PowerHuntShares/main/PowerHuntShares.psm1")
중요 참고: 모든 명령은 권한이 없는 도메인 사용자로 실행해야 합니다.
.EXAMPLE 1: Run from a domain computer. Performs Active Directory computer discovery by default.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test
.EXAMPLE 2: Run from a domain computer with alternative domain credentials. Performs Active Directory computer discovery by default.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -Credential domain\user
.EXAMPLE 3: Run from a domain computer as current user. Target hosts in a file. One per line.
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -HostFile c:\temp\hosts.txt
.EXAMPLE 4: Run from a non-domain computer with credential. Performs Active Directory computer discovery by default.
C:\temp\test> runas /netonly /user:domain\user PowerShell.exe
PS C:\temp\test> Import-Module PowerHuntShares.psm1
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -RunSpaceTimeout 10 -OutputDirectory c:\folder\ -DomainController 10.1.1.1 -Credential domain\user
=============================================================== PowerHuntShares =============================================================== 이 함수는 다음 작업을 자동화합니다: o 현재 컴퓨터의 도메인 확인 o 도메인 컴퓨터 열거 o ping 요청에 응답하는 컴퓨터 필터링 o TCP 445가 열려 있고 접근 가능한 컴퓨터 필터링 o SMB 공유 열거 o SMB 공유 권한 열거 o 잠재적으로 과도한 권한이 있는 공유 식별 o 읽기 및 쓰기 액세스를 제공하는 공유 식별 o 고위험 공유 식별 o 일반적인 공유 소유자, 이름 및 디렉터리 목록 식별 o 생성, 마지막 작성 및 마지막 액세스 타임라인 생성 o HTML 요약 보고서 및 상세 CSV 파일 생성