利用MSDTC服务加载后门dll,实现自启动后门
后门思路可以查看趋势科技文章
https://blog.trendmicro.com/trendlabs-security-intelligence/shadow-force-uses-dll-hijacking-targets-south-korean-company/
0x01MSDTC简介
msdtc.exe是微软分布式传输协调程序。该进程调用系统Microsoft Personal Web ServerMicrosoft SQL Server。该服务用于管理多个服务器。
msdtc.exe是一个并列事务,是分布于两个以上的数据库,消息队列,文件系统或其他事务保护资源管理器,删除要小心。

对应服务MSDTC,全称Distributed Transaction Coordinator,Windows系统默认启动该服务

对应进程msdtc.exe,位于%windir%system32

当Windows操作系统启动Microsoft分布式事务处理协调器(MSDTC)服务时,攻击便开始了,该服务可协调跨越多个资源管理器(例如数据库,消息队列和文件系统)的事务。当目标计算机加入域时,一旦MSDTC服务启动,它将搜索注册表。
当计算机加入域中,MSDTC服务启动时,会搜索注册表HKEY_LOCAL_MACHINE SOFTWARE MicrosoftMSDTC MTxOCI

MSDTC服务中的MTxOCI组件搜索三个DLL:oci.dll**,SQLLib80.dllxa80.dll**。Windows系统默认不包含oci.dll
我们将后门dll将其重命名为oci.dll,并将其放置在*%SystemRoot%\ system32 \中*。oci.dll就绪,使用远程作业命令杀死MSDTC服务(taskkill / im msdtc.exe / f),从而导致MSDTC重新加载自身。但是,这一次它将查找并找到oci.dll
这时候就会利于这个服务把我们的后门dll拉起来。

0x02后门复现

oci.dll放入system32 重启msdtc服务


taskkill /f /im msdtc.exe

cobaltstrike里使用sc调用服务

可以看到我们的后门oci.dll拉起来了

MSDTC服务不是域环境特有,工作组环境下默认也会启动MSDTC服务
利用方法不仅适用于域环境,工作组环境也同样适用
降权使用:


msdtc -install

对于普通用户主机,建议禁用服务MSDTC
参考:
https://blog.trendmicro.com/trendlabs-security-intelligence/shadow-force-uses-dll-hijacking-targets-south-korean-company/
https://www.4hou.com/system/6890.html