不能打开secedit文件,sec文件格式怎么打开

首页 > 经验 > 作者:YD1662022-11-04 00:33:53

利用COM/DCOM对象

参考:https://www.freebuf.com/articles/network/256372.html

前言

DCOM是COM的扩展,允许应用程序实例化和访问远程计算机上的COM对象。
这里简要说一下几个有关COM的概念

CLSID:又叫CLASSID 一个COM类的唯一标识符,每一个Windows注册类与一个CLSID相关联。长得像这样 {20D04FE0-3AEA-1069-A2D8-08002B30309D}

ProgID:其可被用作对用户更友好的替代的一个CLSID,比如MMC20.APPLICATION.1就是一个ProgID。ProgID不能保证是唯一的,并非每个类都与ProgID相关联

Appid: 为了保证COM对象能被顺利的远程调用(即为了使DCOM可访问COM对象),需要把APPID与该类的CLSID相关联,且AppID需设置权限来规划哪些客户端能够访问

我们可以通过powershell执行get-CimInstance 来列出本地COM程序列表

不能打开secedit文件,sec文件格式怎么打开(53)

远程DCOM对象实例化的流程:

客户端从远程计算机请求实例化由CLSID表示的对象。如果客户端使用ProgID则先将其本地解析为CLSID。 远程计算机检查是否存在由该CLSID所关联的AppID,并验证客户端的权限。 DCOMLaunch服务将创建所请求的类的实例,通常是通过运行LocalServer32子项的可执行文件,或者通过创建DllHost进程来承载InProcServer32子项引用的dll。 客户端应用程序和服务器进程间建立通信,客户端便可以访问新创建的对象。MMC20.APPLICATION.1

中文名为:Microsoft管理控制台(MMC)2.0包括脚本对象模型。我们一步步抽丝剥茧跟踪一下这个对象的利用点,需要注意的一点是调用该对象必须要有管理员权限。

不能打开secedit文件,sec文件格式怎么打开(54)

不能打开secedit文件,sec文件格式怎么打开(55)

如上图,我们先列出在MMC20.APPLICATION中的模块,然后继续列出其中Document中的属性,再继续列出Document.ActiveView中的属性。可以发现一个名为ExecuteShellCommand的方法,光是听名字就知道是可以执行shell命令的方法了。到微软文档查一查这个方法,获得了以下信息。

ExecuteShellCommand([命令][目录][叁数][窗口状态]) 命令 一个值,指定要执行的命令。可以指定标准路径。Command中包含的所有环境变量(例如“%windir%”)都将被扩展。 目录 一个值,用于指定工作目录的名称。Directory中包含的所有环境变量都将被扩展。如果“目录”为空字符串,则将当前目录用作工作目录。 参数 一个指定Command要使用的参数(如果有)的值;参数必须用空格分隔。例如,将参数指定为“ Param1 Param2”会导致Command接收Param1和Param2作为参数。如果要求单个参数用双引号引起来,请使用适合您的编程语言的技术。例如,在Microsoft Visual Basic中,将参数指定为“ Param1”“这是Param2”“”导致命令接收到参数1和“这是Param2”。 窗口状态 一个指定窗口状态的值。该值可以是以下字符串值之一,也可以是空字符串。如果为空字符串,则默认为“已恢复”。 “Maximized” 该命令在最大化的窗口中执行。 “Minimized” 该命令在最小化的窗口中执行。 “Restored” 该命令在已恢复或正常的窗口中执行。注意:这里会弹个黑框框 返回值 此方法不返回值。

于是乎,我们就能理所应当的想到这个东西可以被用于本地任意命令执行,就像这样

[activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.application")).Document.ActiveView.Executeshellcommand('cmd.exe',$null,"/c calc.exe","Restored")

不能打开secedit文件,sec文件格式怎么打开(56)

上一页2345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.