msdtc后门的实现思路
0x01 简介
本文将要介绍以下内容:
· MSDTC简介
· 后门思路
· 后门验证
· 更多测试和利用方法
· 检测防御
0x02 MSDTC简介
MSDTC:
· 对应服务MSDTC,全称Distributed Transaction Coordinator,Windows系统默认启动该服务
· 对应进程msdtc.exe,位于%windir%system32
· msdtc.exe是微软分布式传输协调程序,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server
0x03 后门思路
文中介绍的思路如下:
当计算机加入域中,MSDTC服务启动时,会搜索注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSDTCMTxOCI
如下图
分别加载3个dll:oci.dll,SQLLib80.dll,xa80.dll
然而特别的是,Windows系统默认不包含oci.dll
也就是说,将payload.dll重名为oci.dll并保存在%windir%system32下
域中的计算机启动服务MSDTC时就会加载该dll,实现代码执行
0x04 后门验证
测试系统: Win7 x64
搭建域环境,如下图
使用Procmon监控msdtc的启动过程,筛选进程msdtc.exe,查看文件操作,如下图
msdtc.exe确实会尝试加载oci.dll,并且由于系统默认不存在oci.dll,导致加载失败
使用64位的测试dll,下载地址如下:
https://github.com/3gstudent/test/blob/master/calc_x64.dll
将其保存在%windir%system32下
结束进程msdtc.exe,命令行参数如下:
taskkill /f /im msdtc.exe
等待msdtc.exe重新启动
等待一段时间,mstdc.exe重新启动,成功加载oci.dll,如下图
calc.exe以system权限启动
如下图
经实际测试,该方法偶尔会出现bug,通过taskkill结束进程后,msdtc.exe并不会重新启动
解决方法:
重新启动服务MSDTC就好,命令行参数如下:
net start msdtc
0x05 更多测试
1、测试32位系统
32位系统换用32位dll就好,下载地址如下:
https://github.com/3gstudent/test/blob/master/calc.dll
2、测试64位系统
64位系统,虽然SysWOW64文件夹下也包含32位的msdtc.exe,但是MSDTC服务只启动64位的msdtc.exe
因此,不支持32位oci.dll的加载
3、通用测试
经实际测试,MSDTC服务不是域环境特有,工作组环境下默认也会启动MSDTC服务
也就是说,该利用方法不仅适用于域环境,工作组环境也同样适用
4、以管理员权限加载oci.dll(降权启动)
上述方法会以system权限加载oci.dll,提供一个以管理员权限加载oci.dll(降权启动)的方法:
管理员权限cmd执行:
msdtc -install
启动的calc.exe为high权限,如下图
注:
关于为什么要降权及降权的更多实现方式可参照文章
《渗透技巧——程序的降权启动》
0x06 检测防御
检测:
检测%windir%system32是否包含可疑oci.dll
防御:
对于普通用户主机,建议禁用服务MSDTC
0x07 小结
本文介绍了MSDTC的相关利用技巧,不仅能用作后门,同样可用于程序的降权启动。
msdtc后门的实现思路相关推荐
- AppDomainManager后门的实现思路
本文讲的是AppDomainManager后门的实现思路, 0x00 前言 从Casey Smith@subTee学到的一个技巧:针对.Net程序,通过修改AppDomainManager能够劫持.N ...
- 第65篇:探索顶级APT后门Sunburst的设计思路(Solarwinds供应链攻击中篇)
Part1 前言 大家好,我是ABC_123.上周写了一篇<史上最严重的APT供应链攻击事件,借助Solarwinds攻击欧美的流程图梳理和分析(上篇)>反响还不错.由于该APT供应链 ...
- 第65篇:探索顶级APT后门Sunburst的设计思路(修正篇)Solarwinds供应链攻击中篇...
Part1 前言 由于先前文章存在部分错误,原文ABC_123已删除,上周末把文章修正,重新发布. 大家好,我是ABC_123.之前写了一篇<史上最严重的APT供应链攻击事件,借助Solar ...
- PHP一句话后门过狗姿势万千之后门构造与隐藏
第二章节主要带给大家一些后门构造思路,与安全狗文件特征检测的机制. 另外强调一下,这篇文章需要大家对于php有一定的认识. 本章节分为三大部分,第一部分针对初级,分析菜刀php代码的执行过程,较基础: ...
- 第66篇:顶级APT后门Sunburst通信流量全过程复盘分析
Part1 前言 大家好,我是ABC_123.前面几周分享了Solarwinds供应链攻击事件的详细攻击流程及Sunburst后门的设计思路,但是多数朋友还是对Sunburst后门的通信过程还是没 ...
- 第66篇:顶级APT后门Sunburst通信流量全过程复盘分析(修正篇)
Part1 前言 由于先前文章存在部分错误,原文ABC_123已删除,上周末把文章修正,重新发布. 大家好,我是ABC_123.前面几周分享了Solarwinds供应链攻击事件的详细攻击流程及Su ...
- pwn学习总结(三) —— 栈溢出经典题型整理
pwn学习总结(三) -- 栈溢出经典题型整理 ret2text ret2shellcode rop ret2libc 使用DynELF实现远程libc泄露 ret2syscall ret2libc ...
- 2021 长城杯 pwn K1ng_in_h3Ap_I
libc是2.23 菜单 add free 显然是有uaf. edit 就是输入 输入函数其实还有off by one. 有个后门 我们的思路就是简单的说因为有uaf但是没有show,所以我们就直接攻 ...
- 2021-10-11 Pwn练习记录
文章目录 easy 题目 分析 EXP 重做note2 分析 EXP 重做[ZJCTF_2019]Easyheap 分析 EXP 重做actf_2019_babystack 分析 EXP 重做gyct ...
最新文章
- MLIR: 编译器基础架构重定义
- NanoPi NEO Air使用一:介绍
- jaxb int convert to integer
- 存根类 测试代码 java_常规单元测试和存根–测​​试技术4
- C++中的数组与指针
- C语言 二叉树顺序存储结构的先序遍历算法
- ajax url 的是什么格式,什么是从AJAX URL格式来发送POST方法有响应实体
- deque用法深度解析,一篇文章弄懂deque容器各种操作
- 剑指offer面试题14- I. 剪绳子(数学推导)
- ASP.NET CORE MVC 2.0 发布到IIS 配置问题
- 教之初计算机考试试题,教之初题库管理系统操作教程-考题处理
- 《JSP程序设计》手机销售网
- 一个OpenMP的学习程序
- java楼盘管理系统_课内资源 - 基于Java面向对象开发的房屋中介管理系统
- 解决Ubuntu环境搜狗拼音候选区乱码问题
- 4核处理器_最便宜的16核洋垃圾怎么样?建议别买
- JavaScript之毒瘤
- PHP+jQuery+Flash完美演示翻盘抽奖
- 学习笔记 Unsupervised Domain Adaptive Re-Identification: Theory and Practice
- Python OpenCV 裁剪身份证正反面