msdtc后门的实现思路

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

如下图

msdtc后门的实现思路

分别加载3个dll:oci.dll,SQLLib80.dll,xa80.dll

然而特别的是,Windows系统默认不包含oci.dll

也就是说,将payload.dll重名为oci.dll并保存在%windir%system32下

域中的计算机启动服务MSDTC时就会加载该dll,实现代码执行

0x04 后门验证

测试系统: Win7 x64

搭建域环境,如下图

msdtc后门的实现思路

使用Procmon监控msdtc的启动过程,筛选进程msdtc.exe,查看文件操作,如下图

msdtc后门的实现思路

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,如下图

msdtc后门的实现思路

calc.exe以system权限启动

如下图

msdtc后门的实现思路

经实际测试,该方法偶尔会出现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权限,如下图

msdtc后门的实现思路

注:

关于为什么要降权及降权的更多实现方式可参照文章

《渗透技巧——程序的降权启动》

0x06 检测防御

检测:

检测%windir%system32是否包含可疑oci.dll

防御:

对于普通用户主机,建议禁用服务MSDTC

0x07 小结

本文介绍了MSDTC的相关利用技巧,不仅能用作后门,同样可用于程序的降权启动。




原文发布时间为:2017年8月18日
本文作者:3gstudent
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
数据安全/隐私保护 网络安全 存储
Waitfor.exe后门的实现思路
本文讲的是Waitfor.exe后门的实现思路,从Casey Smith‏@subTee的Twitter上获得的一个思路,利用Waitfor.exe有可能实现一种后门机制。 于是我对其做了进一步研究,并且使用Powershell写了一个后门利用的POC。
2317 0
|
网络协议 网络安全
Powershell免杀(无文件落地免杀)
无文件落地 顾名思义,无需将恶意文件传到目标服务器/机器上,直接利用powershell的特性加载到内存执行。为了在红队行动中更隐蔽的实施攻击以及横向移动,同时还可以解决目标不出网只能通过dns上线时的棘手问题,利用powershell可以避免一行行echo。 通过两种方式进行无文件落地的免杀,一种是出网的情况,另一种为不出网情况。 声明: 文章内容仅供网络安全爱好者学习使用,请勿用文章中提到的技术或工具做违法的事情,否则后果自负。
1232 0
|
XML .NET C#
AppDomainManager后门的实现思路
本文讲的是AppDomainManager后门的实现思路,从Casey Smith@subTee学到的一个技巧:针对.Net程序,通过修改AppDomainManager能够劫持.Net程序的启动过程。
2422 0
|
Windows 关系型数据库 Oracle
IIS的几个vbs脚本在渗透中的妙用
有时候用aspxshell的iisspy功能看不到网站路径跟域名,可以尝试下下面这个方法1.查询IIS里的所有网站C:/WINDOWS/system32>cscript.exe iisweb.vbs /queryMicrosoft (R) Windows Script Host Version 5.6版权所有(C) Microsoft Corporation 1996-2001。
1159 0
|
应用服务中间件 PHP Apache
|
6月前
|
安全 索引 Windows
又干掉了一只灰鸽子/Backdoor.Gpigeon.uql新变种
又干掉了一只灰鸽子/Backdoor.Gpigeon.uql新变种
|
安全 Shell Python
记一次PowerShell配合Metersploit的艰难提权
记一次PowerShell配合Metersploit的艰难提权
152 0