DCOM Exec

chevron-right从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)arrow-up-righthashtag

Try Hard Security Group


MMC20.Application

有关此技术的更多信息,请查看原始帖子https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/arrow-up-right

分布式组件对象模型(DCOM)对象为基于网络的对象交互提供了有趣的功能。 Microsoft为DCOM和组件对象模型(COM)提供了全面的文档,可在此处查看DCOMarrow-up-right此处查看COMarrow-up-right。 可以使用PowerShell命令检索DCOM应用程序的列表:

COM对象,MMC Application Class (MMC20.Application)arrow-up-right,可以对MMC插件操作进行脚本编写。特别是,该对象在Document.ActiveView下包含一个ExecuteShellCommand方法。有关此方法的更多信息可以在此处arrow-up-right找到。运行以下命令进行检查:

此功能通过DCOM应用程序促进了通过网络执行命令。要远程以管理员身份与DCOM进行交互,可以使用PowerShell进行如下操作:

这个命令连接到DCOM应用程序并返回COM对象的一个实例。然后可以调用ExecuteShellCommand方法在远程主机上执行一个进程。该进程涉及以下步骤:

检查方法:

获取远程代码执行(RCE):

ShellWindows & ShellBrowserWindow

有关此技术的更多信息,请查阅原始文章https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/arrow-up-right

发现MMC20.Application对象缺乏显式的“LaunchPermissions”,默认权限允许管理员访问。有关更多详细信息,请查看此处arrow-up-right,建议使用@tiraniddoarrow-up-right的OleView .NET来过滤没有显式启动权限的对象。

由于缺乏显式启动权限,两个特定对象ShellBrowserWindowShellWindows受到关注。在HKCR:\AppID\{guid}下缺少LaunchPermission注册表项表示没有显式权限。

ShellWindows

对于ShellWindows,缺少ProgID,.NET方法Type.GetTypeFromCLSIDActivator.CreateInstance可使用其AppID进行对象实例化。此过程利用OleView .NET检索ShellWindows的CLSID。一旦实例化,可以通过WindowsShell.Item方法进行交互,从而导致像Document.Application.ShellExecute这样的方法调用。

提供了示例PowerShell命令来实例化对象并远程执行命令:

使用 Excel DCOM 对象进行横向移动

通过利用 DCOM Excel 对象可以实现横向移动。有关详细信息,请阅读Cybereason博客arrow-up-right上关于利用Excel DDE通过DCOM进行横向移动的讨论。

Empire项目提供了一个PowerShell脚本,演示了通过操纵DCOM对象利用Excel进行远程代码执行(RCE)的方法。以下是从Empire的GitHub存储库arrow-up-right中提取的脚本片段,展示了滥用Excel进行RCE的不同方法:

用于横向移动的自动化工具

自动化这些技术的两个工具如下:

  • Invoke-DCOM.ps1:Empire项目提供的一个PowerShell脚本,简化了在远程计算机上执行代码的不同方法的调用。此脚本可在Empire GitHub存储库中访问。

  • SharpLateral:一款用于远程执行代码的工具,可使用以下命令:

自动化工具

参考资料

Try Hard Security Group

chevron-right从零开始学习AWS黑客技术,成为专家 htARTE (HackTricks AWS Red Team Expert)arrow-up-right!hashtag

支持HackTricks的其他方式:

最后更新于