本文讲的是 msdtc后门的实现思路, Shadow Force曾经在域环境中使用过的一个后门,利用MSDTC服务加载dll,实现自启动,并绕过Autoruns对启动项的检测。本文将要对其进行测试,介绍更多利用技巧,分析防御方法。

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的相关利用技巧,不仅能用作后门,同样可用于程序的降权启动。

原文发布时间为:2017年8月18日
本文作者:3gstudent
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
原文链接

msdtc后门的实现思路相关推荐

  1. AppDomainManager后门的实现思路

    本文讲的是AppDomainManager后门的实现思路, 0x00 前言 从Casey Smith@subTee学到的一个技巧:针对.Net程序,通过修改AppDomainManager能够劫持.N ...

  2. 第65篇:探索顶级APT后门Sunburst的设计思路(Solarwinds供应链攻击中篇)

     Part1 前言  大家好,我是ABC_123.上周写了一篇<史上最严重的APT供应链攻击事件,借助Solarwinds攻击欧美的流程图梳理和分析(上篇)>反响还不错.由于该APT供应链 ...

  3. 第65篇:探索顶级APT后门Sunburst的设计思路(修正篇)Solarwinds供应链攻击中篇...

     Part1 前言  由于先前文章存在部分错误,原文ABC_123已删除,上周末把文章修正,重新发布. 大家好,我是ABC_123.之前写了一篇<史上最严重的APT供应链攻击事件,借助Solar ...

  4. PHP一句话后门过狗姿势万千之后门构造与隐藏

    第二章节主要带给大家一些后门构造思路,与安全狗文件特征检测的机制. 另外强调一下,这篇文章需要大家对于php有一定的认识. 本章节分为三大部分,第一部分针对初级,分析菜刀php代码的执行过程,较基础: ...

  5. 第66篇:顶级APT后门Sunburst通信流量全过程复盘分析

     Part1 前言  大家好,我是ABC_123.前面几周分享了Solarwinds供应链攻击事件的详细攻击流程及Sunburst后门的设计思路,但是多数朋友还是对Sunburst后门的通信过程还是没 ...

  6. 第66篇:顶级APT后门Sunburst通信流量全过程复盘分析(修正篇)

     Part1 前言  由于先前文章存在部分错误,原文ABC_123已删除,上周末把文章修正,重新发布. 大家好,我是ABC_123.前面几周分享了Solarwinds供应链攻击事件的详细攻击流程及Su ...

  7. pwn学习总结(三) —— 栈溢出经典题型整理

    pwn学习总结(三) -- 栈溢出经典题型整理 ret2text ret2shellcode rop ret2libc 使用DynELF实现远程libc泄露 ret2syscall ret2libc ...

  8. 2021 长城杯 pwn K1ng_in_h3Ap_I

    libc是2.23 菜单 add free 显然是有uaf. edit 就是输入 输入函数其实还有off by one. 有个后门 我们的思路就是简单的说因为有uaf但是没有show,所以我们就直接攻 ...

  9. 2021-10-11 Pwn练习记录

    文章目录 easy 题目 分析 EXP 重做note2 分析 EXP 重做[ZJCTF_2019]Easyheap 分析 EXP 重做actf_2019_babystack 分析 EXP 重做gyct ...

最新文章

  1. MLIR: 编译器基础架构重定义
  2. NanoPi NEO Air使用一:介绍
  3. jaxb int convert to integer
  4. 存根类 测试代码 java_常规单元测试和存根–测​​试技术4
  5. C++中的数组与指针
  6. C语言 二叉树顺序存储结构的先序遍历算法
  7. ajax url 的是什么格式,什么是从AJAX URL格式来发送POST方法有响应实体
  8. deque用法深度解析,一篇文章弄懂deque容器各种操作
  9. 剑指offer面试题14- I. 剪绳子(数学推导)
  10. ASP.NET CORE MVC 2.0 发布到IIS 配置问题
  11. 教之初计算机考试试题,教之初题库管理系统操作教程-考题处理
  12. 《JSP程序设计》手机销售网
  13. 一个OpenMP的学习程序
  14. java楼盘管理系统_课内资源 - 基于Java面向对象开发的房屋中介管理系统
  15. 解决Ubuntu环境搜狗拼音候选区乱码问题
  16. 4核处理器_最便宜的16核洋垃圾怎么样?建议别买
  17. JavaScript之毒瘤
  18. PHP+jQuery+Flash完美演示翻盘抽奖
  19. 学习笔记 Unsupervised Domain Adaptive Re-Identification: Theory and Practice
  20. Python OpenCV 裁剪身份证正反面

热门文章

  1. OpenGL教程翻译 第二十六课 法线纹理
  2. 未名湖边的烦恼引起的递归问题探讨
  3. UE4之Spline
  4. lcms产品文档规范
  5. 【数据应用技巧】基于快速GeoHash,实现海量商品与商圈的高效匹配
  6. 也谈一个苦逼程序员是如何学好英语的这件小事
  7. 劳拉甘拜下风 看尖端科技如何挖古墓的
  8. 【智驾深谈】一张图看清自动驾驶产业
  9. 2022年成都市中等职业学校师生技能大赛【真题】
  10. 鸡兔同笼python程序怎么写_鸡肉的做法大全_怎么做好吃_家常做法_下厨房