
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(アクセス制御エントリ)を含むネットワーク共有ACLとして定義されています。これらはすべて、権限の継承問題により、ドメインユーザーが影響を受ける共有にアクセスできるようにします。オペレーターが独自のターゲットグループを追加できるパラメーターがあることに注意してください。
以下に追加の背景を示します:
ご注意: 共有権限はNTFS権限によって上書きされる可能性があります。また、テストでは以下のキーワードを含む共有名は除外されていることに注意してください:
print$, prnproc$, printer, netlogon, and sysvol
高リスク共有
このレポートの文脈では、高リスク共有はシステムまたはアプリケーションへの未承認のリモートアクセスを提供する共有として定義されています。
デフォルトでは、これには共有
wwwroot, inetpub, c$, および admin$が含まれます。 ただし、それ以外にも追加の露出が存在する可能性がありますが、それについては明示的に言及されていません。
以下は、現在のPowerShellセッションにPowerHuntSharesをロードするために使用できるコマンドのリストです。PowerShellを実行するたびにこれらのいずれかを実行する必要があることに注意してください。永続的ではありません。
# 実行ポリシーの制限をバイパス
Set-ExecutionPolicy -Scope Process Bypass
# カレントディレクトリにあるモジュールをインポート
Import-Module .\PowerHuntShares.psm1
または
# githubへの接続をサポートするためにSSL動作レベルを低下
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
[Net.ServicePointManager]::SecurityProtocol =[Net.SecurityProtocolType]::Tls12
# PowerHuntShares.psm1をダウンロードしてメモリに読み込む
IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/PowerHuntShares/main/PowerHuntShares.psm1")
重要: すべてのコマンドは、特権のないドメインユーザーとして実行する必要があります。
.EXAMPLE 1: ドメインコンピュータから実行。デフォルトでActive Directoryコンピュータの検出を実行。
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test
.EXAMPLE 2: 代替ドメイン資格情報を使用してドメインコンピュータから実行。デフォルトでActive Directoryコンピュータの検出を実行。
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -Credential domain\user
.EXAMPLE 3: 現在のユーザーとしてドメインコンピュータから実行。ファイル内のホストをターゲット。1行に1つ。
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -HostFile c:\temp\hosts.txt
.EXAMPLE 4: 資格情報を使用して非ドメインコンピュータから実行。デフォルトでActive Directoryコンピュータの検出を実行。
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ファイルを生成