oiweiwei/go-msrpc

GitHub: oiweiwei/go-msrpc

这是一个Go语言的MS-RPC/DCOM客户端库,用于简化与Windows系统的远程过程调用,支持多种协议和认证方式。

Stars: 156 | Forks: 24

# go-msrpc库 [![Go Reference](https://pkg.go.dev/badge/github.com/oiweiwei/go-msrpc.svg)](https://pkg.go.dev/github.com/oiweiwei/go-msrpc) [![Go Report Card](https://goreportcard.com/badge/github.com/oiweiwei/go-msrpc)](https://goreportcard.com/report/github.com/oiweiwei/go-msrpc) 一个用于Go的MS-RPC/DCOM客户端库。实现了[C706: DCE/RPC 1.1](http://www.dcerpc.org/documentation/)的[微软扩展](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15),并包含了所有主要Windows RPC和DCOM协议的预生成存根,可供直接使用:[Netlogon](./msrpc/nrpc)、[Windows 注册表](./msrpc/rrp)、[事件日志](./msrpc/even6)、[WMI](./msrpc/dcom/wmi) ([查询](./examples/wmic.go)、[执行](./examples/wmiexec.go))、[DCOM/OXID](./msrpc/dcom)以及[更多](#generated-stubs)。 ## 安装说明 ``` go get github.com/oiweiwei/go-msrpc ``` ## 快速开始 ``` package main import ( "context" "fmt" "github.com/oiweiwei/go-msrpc/dcerpc" "github.com/oiweiwei/go-msrpc/msrpc/rrp/winreg/v1" "github.com/oiweiwei/go-msrpc/ssp" "github.com/oiweiwei/go-msrpc/ssp/credential" "github.com/oiweiwei/go-msrpc/ssp/gssapi" _ "github.com/oiweiwei/go-msrpc/msrpc/erref/win32" ) func main() { ctx := gssapi.NewSecurityContext(context.Background(), gssapi.WithCredential(credential.NewFromPassword("DOMAIN\\User", "password")), gssapi.WithMechanismFactory(ssp.SPNEGO), gssapi.WithMechanismFactory(ssp.NTLM), ) // connect to server cc, err := dcerpc.Dial(ctx, "192.168.1.1", dcerpc.WithEndpoint("ncacn_np:[winreg]")) if err != nil { panic(err) } // create protocol client (MS-RRP) cli, err := winreg.NewWinregClient(ctx, cc, dcerpc.WithSeal()) if err != nil { panic(err) } // make RPC call resp, err := cli.OpenLocalMachine(ctx, &winreg.OpenLocalMachineRequest{ DesiredAccess: winreg.KeyRead, }) if err != nil { panic(err) } fmt.Printf("HKLM handle: %v\n", resp.Key) } ``` 参见[examples/samples_with_config](./examples/samples_with_config)和[msrpc](./msrpc/doc.go)包的文档。 ``` # 使用 string binding 格式 go run examples/samples_with_config/dnsp.go Administrator%P@ssw0rd@ncacn_ip_tcp:dc01.msad.local[privacy,spnego,krb5] go run examples/samples_with_config/wmic.go Administrator%P@ssw0rd@ncacn_ip_tcp:dc01.msad.local[privacy,spnego,krb5] \ --query "SELECT * FROM Win32_ComputerSystem" # 使用 explicit flags go run examples/samples_with_config/dnsp.go \ --username=Administrator \ --domain=MSAD.LOCAL \ --password=P@ssw0rd \ --auth-level=privacy \ --auth-spnego \ --auth-type=krb5 \ --server=dc01.msad.local ``` [examples/](./examples)目录下的旧示例使用环境变量: | 变量 | 描述 | 示例 | |------|------|------| | `USERNAME` | 域\用户名 | `"MSAD2.COM\User"` | | `PASSWORD` | 密码 | `"password"` | | `PASSWORD_MD4` | NT哈希(使用 [nt_hash.go](./examples/helpers/nthash/nt_hash.go) 生成) | `"f077ca4b7d73486a45e75dcdd74cd5bd"` | | `WORKSTATION` | 工作站名称 | `"Ubuntu"` | | `SERVER` | 服务器FQDN或IP | `"192.168.0.22"` | | `SERVER_NAME` | 服务器NetBIOS名称 | `"WIN2019"` | | `SERVER_HOST` | 服务器FQDN | `"my-server.win2019.com"` | | `SAM_USERNAME` | 机器账户名(参见 [netlogon_sec_channel.go](./examples/netlogon_sec_channel.go)) | `"COMPUTER$"` | | `SAM_PASSWORD` | 机器账户密码 | `"password"` | | `SAM_WORKSTATION` | 机器账户工作站 | `"COMPUTER"` | | `TARGET` | Kerberos SPN | `"host/my-server.win2019.com"` | | `KRB5_CONFIG` | Kerberos配置路径 | `"/path/to/krb5.conf"` | ## 代码生成 IDL解析器和Go代码生成器位于[github.com/oiweiwei/midl-gen-go](https://github.com/oiweiwei/midl-gen-go),在此通过发布的Docker镜像`ghcr.io/oiweiwei/midl-gen-go`使用。 重新生成所有存根: ``` make all ``` 重新生成单个协议(例如`nrpc.go`): ``` make nrpc.go ``` 其底层每个目标运行: ``` docker run --rm \ -v $(pwd):/work \ -u $(id -u):$(id -g) \ ghcr.io/oiweiwei/midl-gen-go generate \ --pkg "github.com/oiweiwei/go-msrpc/msrpc/" \ -I /work/idl \ -I /work/idl/h \ --output /work/msrpc/ \ --msdn-openspecs-indexer-file /work/msdn/index.yaml \ --msdn-openspecs-extra-file /work/msdn/extra.yaml \ --msdn-openspecs-cache-dir /work/msdn/.cache/ \ /work/idl/.idl ``` 要添加新的IDL文件,请将其放入`idl/`(对于DCOM,放入`idl/dcom/`),然后在Makefile的`all`规则中添加相应的目标。 ## 功能特性 ### DCE/RPC v5客户端 (`dcerpc` 包) - 传输语法:NDR 2.0 和 NDR64 - 传输方式:命名管道(SMB2/3)和TCP - 连接复用:通过单个连接支持多个客户端 - 每个关联组支持多个连接,并共享上下文句柄 - 验证尾部支持 - Kerberos、Netlogon、NTLM、SPNEGO认证 - 端点映射器和字符串绑定支持 - 基础DCOM支持 - 事件日志BinXML解析器 - WMIO对象编组/解组 ### MS-RPCE扩展 - 安全上下文复用 - 绑定时特性协商 - 头签名 - NDR64 ### GSS-API / SSP (`ssp` 包) GSS-API接口定义位于`ssp/gssapi`。`ssp`包实现了以下安全提供程序: - **Kerberos** (通过 [jcmturner/gokrb5 fork](https://github.com/oiweiwei/gokrb5.fork/tree/master/v9)): - 加密:RC4-HMAC、DES-CBC-MD5、DES-CBC-CRC、AES128-CTS-HMAC-SHA1、AES256-CTS-HMAC-SHA1 - DCE风格的AP请求/响应 - 相互和非相互认证 - Wrap/GetMic-Ex方法 - **NTLM**:NTLMv1 和 NTLMv2 - **Netlogon**:RC4-HMAC 和 AES-SHA2 - **SPNEGO**:MechListMIC 和 NegTokenInit2 ### SMB2客户端 基于[hirochachacha/go-smb2 fork](https://github.com/oiweiwei/go-smb2.fork),并增加了以下功能: - 强制加密支持 - 通过`ssp/gssapi`集成Kerberos/NTLM - 修复`NT_STATUS_PENDING` - 密钥材料导出(应用程序密钥、会话密钥) ## 生成的存根 ### RPC协议 | 规范 | 描述 | 包 | |------|------|------| | [MS-ADTS](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-adts) | Active Directory技术规范:声明 | [msrpc/adts](./msrpc/adts) | | [MS-BKRP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-bkrp) | 备份密钥远程协议 | [msrpc/bkrp](./msrpc/bkrp) | | [MS-BPAU](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-bpau) | BITS对等缓存:对等认证协议 | [msrpc/bpau](./msrpc/bpau) | | [MS-BRWSA](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-brwsa) | CIFS浏览器辅助协议 | [msrpc/brwsa](./msrpc/brwsa) | | [MS-CAPR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-capr) | 中央访问策略ID检索协议 | [msrpc/capr](./msrpc/capr) | | [MS-CMPO](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-cmpo) | MSDTC连接管理器:OleTx传输协议 | [msrpc/cmpo](./msrpc/cmpo) | | [MS-CMRP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-cmrp) | 故障转移群集:管理API (ClusAPI) 协议 | [msrpc/cmrp](./msrpc/cmrp) | | [MS-DFSNM](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dfsnm) | DFS命名空间管理协议 | [msrpc/dfsnm](./msrpc/dfsnm) | | [MS-DHCPM](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dhcpm) | DHCP服务器管理协议 | [msrpc/dhcpm](./msrpc/dhcpm) | | [MS-DLTM](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dltm) | 分布式链接跟踪:中央管理器协议 | [msrpc/dltm](./msrpc/dltm) | | [MS-DLTW](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dltw) | 分布式链接跟踪:工作站协议 | [msrpc/dltw](./msrpc/dltw) | | [MS-DNSP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dnsp) | DNS服务器管理协议 | [msrpc/dnsp](./msrpc/dnsp) | | [MS-DRSR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-drsr) | 目录复制服务 (DRS) 远程协议 | [msrpc/drsr](./msrpc/drsr) | | [MS-DSSP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dssp) | 目录服务设置远程协议 | [msrpc/dssp](./msrpc/dssp) | | [MS-DTYP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp) | Windows数据类型 | [msrpc/dtyp](./msrpc/dtyp) | | [MS-EERR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-eerr) | 扩展错误远程数据结构 | [msrpc/eerr](./msrpc/eerr) | | [MS-EFSR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-efsr) | 加密文件系统远程 (EFSRPC) 协议 | [msrpc/efsr](./msrpc/efsr) | | [MS-ERREF](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-erref) | Windows错误代码 | [msrpc/erref](./msrpc/erref) | | [MS-EVEN6-BINXML](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-even6/c73573ae-1c90-43a2-a65f-ad7501155956) | 事件日志BinXML编码 | [msrpc/binxml](./msrpc/binxml) | | [MS-EVEN6](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-even6) | 事件日志远程协议版本6.0 | [msrpc/even6](./msrpc/even6) | | [MS-EVEN](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-even) | 事件日志远程协议 | [msrpc/even](./msrpc/even) | | [MS-FASP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fasp) | 防火墙和高级安全协议 | [msrpc/fasp](./msrpc/fasp) | | [MS-FAX](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fax) | 传真服务器和客户端远程协议 | [msrpc/fax](./msrpc/fax) | | [MS-FRS1](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-frs1) | 文件复制服务 (FRS) 远程协议 | [msrpc/frs1](./msrpc/frs1) | | [MS-FSR2](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-frs2) | 文件复制服务 (FRS) 远程协议版本2 | [msrpc/frs2](./msrpc/frs2) | | [MS-ICPR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-icpr) | ICertPassage远程协议 | [msrpc/icpr](./msrpc/icpr) | | [MS-IRP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-irp) | IIS Inetinfo远程协议 | [msrpc/irp](./msrpc/irp) | | [MS-LREC](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lrec) | 实时远程事件捕获 (LREC) 协议 | [msrpc/lrec](./msrpc/lrec) | | [MS-LSAD](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad) | 本地安全机构(域策略)远程协议 | [msrpc/lsad](./msrpc/lsad) | | [MS-LSAT](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsat) | 本地安全机构(转换方法)远程协议 | [msrpc/lsat](./msrpc/lsat) | | [MS-MQDS](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-mqds) | MSMQ:目录服务协议 | [msrpc/mqds](./msrpc/mqds) | | [MS-MQMP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-mqmp) | MSMQ:队列管理器客户端协议 | [msrpc/mqmp](./msrpc/mqmp) | | [MS-MQMQ](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-mqmq) | MSMQ:数据结构 | [msrpc/mqmq](./msrpc/mqmq) | | [MS-MQMR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-mqmr) | MSMQ:队列管理器管理协议 | [msrpc/mqmr](./msrpc/mqmr) | | [MS-MQQP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-mqqp) | MSMQ:队列管理器间协议 | [msrpc/mqqp](./msrpc/mqqp) | | [MS-MQRR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-mqrr) | MSMQ:队列管理器远程读取协议 | [msrpc/mqrr](./msrpc/mqrr) | | [MS-MSRP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-msrp) | 信使服务远程协议 | [msrpc/msrp](./msrpc/msrp) | | [MS-NEGOEX](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-negoex) | SPNEGO扩展协商 (NEGOEX) 安全机制 | [msrpc/negoex](./msrpc/negoex) | | [MS-NRPC-SECCHANNEL](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nrpc/fb50db72-7f71-478d-a180-12eb0ca3b36b) | Netlogon安全通道 | [msrpc/nrpc](./msrpc/nrpc) | | [MS-NRPC](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nrpc) | Netlogon远程协议 | [msrpc/nrpc](./msrpc/nrpc) | | [MS-NSPI](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nspi) | 名称服务提供程序接口 (NSPI) 协议 | [msrpc/nspi](./msrpc/nspi) | | [MS-OXABREF](https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxabref) | 通讯簿NSPI转介协议 | - | | [MS-OXCRPC](https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxcrpc) | 线路格式协议 | [msrpc/oxcrpc](./msrpc/oxcrpc) | | [MS-OXNSPI](https://learn.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxnspi) | Exchange NSPI协议 | [msrpc/nspi](./msrpc/nspi) | | [MS-PAC](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-pac) | 特权属性证书数据结构 | [msrpc/pac](./msrpc/pac) | | [MS-PAN](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-pan) | 打印系统异步通知协议 | [msrpc/pan](./msrpc/pan) | | [MS-PAR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-par) | 打印系统异步远程协议 | [msrpc/par](./msrpc/par) | | [MS-PCQ](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-pcq) | 性能计数器查询协议 | [msrpc/pcq](./msrpc/pcq) | | [MS-RAA](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-raa) | 远程授权API协议 | [msrpc/raa](./msrpc/raa) | | [MS-RAIW](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-raiw) | 远程管理界面:WINS | [msrpc/raiw](./msrpc/raiw) | | [MS-RPCE-EPM](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rpce) / [C706-EPM](https://pubs.opengroup.org/onlinepubs/9629399/apdxo.htm#tagcjh_35) | 端点映射器 | [msrpc/epm](./msrpc/epm) | | [MS-RPCL](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rpcl) | RPC位置服务扩展 | [msrpc/rpcl](./msrpc/rpcl) | | [MS-RPRN](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn) | 打印系统远程协议 | [msrpc/rprn](./msrpc/rprn) | | [MS-RRP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rrp) | Windows远程注册表协议 | [msrpc/rrp](./msrpc/rrp) | | [MS-RSP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rsp) | 远程关机协议 | [msrpc/rsp](./msrpc/rsp) | | [MS-SAMR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-samr) | 安全账户管理器 (SAM) 远程协议 | [msrpc/samr](./msrpc/samr) | | [MS-SCH](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tsch) | 任务计划程序服务远程协议 | [msrpc/sch](./msrpc/sch) | | [MS-SCMR](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr) | 服务控制管理器远程协议 | [msrpc/scmr](./msrpc/scmr) | | [MS-SRVS](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-srvs) | 服务器服务远程协议 | [msrpc/srvs](./msrpc/srvs) | | [MS-SSP](https://learn.microsoft.com/en-us/openspecs/sharepoint_protocols/ms-ssp) | 单点登录协议 | [msrpc/ssp](./msrpc/ssp) | | [MS-SWN](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-swn) | 服务见证协议 | [msrpc/swn](./msrpc/swn) | | [MS-TRP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-trp) | 电话远程协议 | [msrpc/trp](./msrpc/trp) | | [MS-TSCH](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tsch) | 任务计划程序服务远程协议 | [msrpc/tsch](./msrpc/tsch) | | [MS-TSGU](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tsgu) | 终端服务网关服务器协议 | [msrpc/tsgu](./msrpc/tsgu) | | [MS-TSTS](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tsts) | 终端服务运行时接口协议 | [msrpc/tsts](./msrpc/tsts) | | [MS-W32T](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-w32t) | W32Time远程协议 | [msrpc/w32t](./msrpc/w32t) | | [MS-WDSC](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wdsc) | Windows部署服务控制协议 | [msrpc/wdsc](./msrpc/wdsc) | | [MS-WKST](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wkst) | 工作站服务远程协议 | [msrpc/wkst](./msrpc/wkst) | ### DCOM协议 | 规范 | 描述 | 包 | |------|------|------| | [MC-CCFG](https://learn.microsoft.com/en-us/openspecs/windows_protocols/mc-ccfg) | 服务器群集:配置 (ClusCfg) 协议 | [msrpc/dcom/ccfg](./msrpc/dcom/ccfg) | | [MC-IISA](https://learn.microsoft.com/en-us/openspecs/windows_protocols/mc-iisa) | IIS应用程序宿主COM协议 | [msrpc/dcom/iisa](./msrpc/dcom/iisa) | | [MC-MQAC](https://learn.microsoft.com/en-us/openspecs/windows_protocols/mc-mqac) | MSMQ:ActiveX客户端协议 | [msrpc/dcom/mqac](./msrpc/dcom/mqac) | | [MS-ADTG](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-adtg) | 远程数据服务 (RDS) 传输协议 | [msrpc/dcom/adtg](./msrpc/dcom/adtg) | | [MS-COMA](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-coma) | COM+远程管理协议 | [msrpc/dcom/coma](./msrpc/dcom/coma) | | [MS-COMEV](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-comev) | COM+事件系统协议 | [msrpc/dcom/comev](./msrpc/dcom/comev) | | [MS-COMT](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-comt) | COM+跟踪服务协议 | [msrpc/dcom/comt](./msrpc/dcom/comt) | | [MS-COM](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-com) | 组件对象模型增强版 (COM+) 协议 | [msrpc/dcom/com](./msrpc/dcom/com) | | [MS-CSRA](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-csra) | 证书服务远程管理协议 | [msrpc/dcom/csra](./msrpc/dcom/csra) | | [MS-CSVP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-csvp) | 故障转移群集:设置和验证协议 (ClusPrep) | [msrpc/dcom/csvp](./msrpc/dcom/csvp) | | [MS-DCOM](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dcom) | 分布式组件对象模型 (DCOM) 远程协议 | [msrpc/dcom](./msrpc/dcom) | | [MS-DFSRH](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dfsrh) | DFS复制辅助协议 | [msrpc/dcom/dfsrh](./msrpc/dcom/dfsrh) | | [MS-DMRP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dmrp) | 磁盘管理远程协议 | [msrpc/dcom/dmrp](./msrpc/dcom/dmrp) | | [MS-FSRM](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fsrm) | 文件服务器资源管理器协议 | [msrpc/dcom/fsrm](./msrpc/dcom/fsrm) | | [MS-IISS](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-iiss) | IIS服务控制协议 | [msrpc/dcom/iiss](./msrpc/dcom/iiss) | | [MS-IMSA](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-imsa) | IIS IMSAdminBaseW远程协议 | [msrpc/dcom/imsa](./msrpc/dcom/imsa) | | [MS-IOI](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-ioi) | IManagedObject接口协议 | [msrpc/dcom/ioi](./msrpc/dcom/ioi) | | [MS-OAUT](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-oaut) | OLE自动化协议 | [msrpc/dcom/oaut](./msrpc/dcom/oaut) | | [MS-OCSPA](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-ocspa) | Microsoft OCSP管理协议 | [msrpc/dcom/ocspa](./msrpc/dcom/ocspa) | | [MS-PLA](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-pla) | 性能日志和警报协议 | [msrpc/dcom/pla](./msrpc/dcom/pla) | | [MS-RAI](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rai) | 远程协助发起协议 | [msrpc/dcom/rai](./msrpc/dcom/rai) | | [MS-RDPESC](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpesc) | RDP:智能卡虚拟通道扩展 | [msrpc/dcom/rdpesc](./msrpc/dcom/rdpesc) | | [MS-RRASM](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rrasm) | RRAS管理协议 | [msrpc/dcom/rrasm](./msrpc/dcom/rrasm) | | [MS-RSMP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rsmp) | 可移动存储管理器 (RSM) 远程协议 | [msrpc/dcom/rsmp](./msrpc/dcom/rsmp) | | [MS-SCMP](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-scmp) | 卷影复制管理协议 | [msrpc/dcom/scmp](./msrpc/dcom/scmp) | | [MS-TPMVSC](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tpmvsc) | TPM虚拟智能卡远程协议 | [msrpc/dcom/tpmvsc](./msrpc/dcom/tpmvsc) | | [MS-UAMG](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-uamg) | 更新代理管理协议 | [msrpc/dcom/uamg](./msrpc/dcom/uamg) | | [MS-VDS](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-vds) | 虚拟磁盘服务 (VDS) 协议 | [msrpc/dcom/vds](./msrpc/dcom/vds) | | [MS-WCCE](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wcce) | Windows客户端证书注册协议 | [msrpc/dcom/wcce](./msrpc/dcom/wcce) | | [MS-WMIO](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wmio) | WMI编码版本1.0协议 | [msrpc/dcom/wmio](./msrpc/dcom/wmio) | | [MS-WMI](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wmi) | Windows管理规范远程协议 | [msrpc/dcom/wmi](./msrpc/dcom/wmi) | | [MS-WSRM](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wsrm) | Windows系统资源管理器 (WSRM) 协议 | [msrpc/dcom/wsrm](./msrpc/dcom/wsrm) | ### 其他 | 规范 | 描述 | 包 | |------|------|------| | [MIMICOM](https://gist.github.com/gentilkiwi/e3d9c92b93ed4bb48f7956492c1d335a) | Mimikatz命令接口 | [msrpc/mimicom](./msrpc/mimicom) | ### 文档 生成的代码包含从MSDN门户拉取的文档。由于上游HTML源代码的不一致性,准确性可能有所不同。 ## 待解决问题 - 为什么IObjectExporter不支持NDR64? - 为什么服务器对NDR64返回无法区分的指针? - 为什么SMB2不支持某些认证级别(例如Winreg仅支持Insecure和Privacy)? ## 参考 - [Samba](https://www.samba.org/) - [Impacket](https://github.com/fortra/impacket) - [go-smb2](https://github.com/hirochachacha/go-smb2) - [gokrb5](https://github.com/jcmturner/gokrb5) ## 贡献 提交PR前请先开一个issue。该项目仍在成熟过程中,可能存在未发现的bug。
标签:Awesome, DCE/RPC, DCOM, DNS解析, EVTX分析, Go库, Go语言, HTTP, Kerberos认证, NDR, NDR64, NTLM认证, SMB2, SOC Prime, SPNEGO, Windows RPC, Windows协议, Windows集成, WMI, 事件日志, 内核驱动, 分布式计算, 协议实现, 安全认证, 客户端库, 开发工具, 开源项目, 异常处理, 日志审计, 注册表操作, 生成桩, 程序破解, 系统管理, 网络协议, 网络安全, 身份验证协议, 远程访问, 远程过程调用, 隐私保护