MyException - 我的异常网
当前位置:我的异常网» Windows » Windows系统异常系统漏洞提权

Windows系统异常系统漏洞提权

www.MyException.Cn  网友分享于:2013-08-02  浏览:0次
Windows系统错误系统漏洞提权

Trusted Service Paths 漏洞

windows服务通常都是以System权限运行的,所以系统在解析服务的二进制文件对应的文件路径中的空格的时候也会以系统权限进行解析。如果我们能利用这一特性,就有机会进行权限提升。

例如,有如下的文件路径:

C:\Program Files\Some Folder\Service.exe

对于上面文件路径中的每一个空格,windows都会尝试寻找并执行名字与空格前的名字向匹配的程序。操作系统会对文件路径中空格的所有可能进行尝试,直到找到一个匹配的程序。以上面的例子为例,windows会依次尝试确定和执行下面的程序:

C:\Program.exe

C:\Program Files\Some.exe

C:\Program Files\Some Folder\Service.exe

所以如果我们能够上传一个适当命名的恶意可执行程序在受影响的目录,服务一旦重启,我们的恶意程序就会以system权限运行(大多数情况下)。

Metasploit下Trusted ServicePaths漏洞的实战利用

1.先检测目标主机是否存在该漏洞

理论上讲,如果一个服务的可执行文件的路径没有用双引号封闭,并且包含空格,那么这个服务就是有漏洞的。

我们在meterpreter shell命令提示符下输入shell命令进入目标机cmd下,然后使用下列wmi查询命令来列举受害者机器上所有的没有加引号的服务路径(除去了windows本身的服务)。

wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr/i /v """

 这是可以看到有哪些服务对应的二进制文件路径没有引号包含起来,并且路径中包含空格。是存在该漏洞的,但在上传可执行文件进去之前,我们需要确定我们对目标文件夹是否有写入的权限。

2.检查对有漏洞目录是否有写入的权限

这里我们使用Windows内建的一个工具,icacls,下面我们用这个工具依次来检查目录的权限。

C:\Users\admin>icacls "C:\Program Files\baidu"

类似这种命令,直至找到有everyone属性的目录

“M”表示修改,“F”代表完全控制,“CI”代表从属容器将继承访问控制项,“OI”代表从属文件将继承访问控制项。这意味着对该目录有读,写,删除其下的文件,删除该目录下的子目录的权限。

3.确认了目标主机存在此漏洞后,便开始正式攻击

Metasploit中相对应的是Windows Service Trusted Path Privilege Escalation本地利用模块,该模块会将恶意的可执行程序放到受影响的文件夹中去,然后将受影响的服务重启。接着我们输入命令background,把当前的meterpreter shell转为后台执行。然后在Metasploit中搜索trusted_service_path模块。如下图所示。

4.使用该exploit程序,并设置相关参数

5.攻击

输入run命令,可以看到自动反弹了一个新的meterpreter,我们在此meterpreter shell下输入getuid 发现是system 权限,如下图所示。证明我们已经提权成功了。

我们输入sessions可以看到有2个meterpreter,ID为3的就是新反弹回来的,如下图所示。

我们浏览源代码发现,这个模块使用了一些正则表达式来过滤掉那些路径用引号包含起来的路径,以及路径中不含空格的路径,并创建一个受影响的服务的路径列表。接着该模块尝试利用列表中第一个受影响的服务,将恶意的可执行程序放到相应受影响的文件夹中去。接着受影响的服务被重启,最后,该模块会删除该恶意可执行文件。

6.解决方案

当开发者没有将文件路径用引号包含起来的时候,才会发生这种行为。用引号包含起来的路径解析的时候则不存在这种行为

PowerUp之”系统服务错误权限配置漏洞”的实战利用

这里我们主要利用一个非常实用的Powershell框架-Powerup通过直接替换可执行文件本身来实现权限的提升。首先检测目标主机是否存在该漏洞。Powerup可以帮助我们寻找服务器错误的系统配置和漏洞从而实现提权的目的。下载地址:https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp

我们先将工具下载到本地,然后上传至目标服务器。见下图所示。

上传好脚本后,输入shell命令进入CMD提示符下,然后可以使用下列命令在本地隐藏权限绕过执行该脚本,会自动进行所有的脚本检查。见下图所示。

powershell.exe -exec bypass -Command "&{Import-Module .\PowerUp.ps1; Invoke-AllChecks}"

也可以使用IEX下载在内存中加载此脚本,执行如下命令,同样会自动进行所有的检查,如下图所示。

powershell -nop -exec bypass -c “IEX(New-Object Net.WebClient).DownloadString('c:/PowerUp.ps1');Invoke-AllChecks”

知识点:

-NoProfile(-NoP):PowerShell控制台不加载当前用户的配置

-Exec Bypass:绕过执行安全策略

Import-Module:加载脚本

可以看出,Powerup列出了可能存在问题的所有服务,并在AbuseFunction中直接给出了利用方式。第一部分通过Get-ServiceUnquoted模块检测出了有“Vulnerable Service”、“OmniServ”、“OmniServer”、“OmniServers”四个服务,路径包含空格且不带引号,但是都没有权限,所以并不能被我们利用来提权。第二部分通过Get-ServiceFilePermission模块检测出当前用户可以在“OmniServers”服务的目录写入相关联的可执行文件,并且通过这些文件来进行提权。

这里我们还是可以使用icacls来验证下PowerUp脚本检测是否正确,我们先来测试“C:\Program Files\Executable.exe”、“C:\Program Files\Common Files\microsoftshared\OmniServ.exe”、“C:\Program Files\Common Files\A Subfolder\OmniServer.exe”这三个文件夹,均提示权限不够。如下图所示。

再测试“C:\Program Files\Program Folder\ASubfolder\OmniServers.exe”文件,如下图所示。

可以看到我们对OmniServers.exe文件是有完全控制权的,这里我们可以直接将OmniServers.exe替换成我们的MSF反弹木马,当服务重启时,就会给我们返回一个system权限的meterpreter。

在这里我们使用图11里AbuseFunction那里已经给出的具体操作方式,执行如下命令操作,如下图所示。

powershell -nop -exec bypass IEX (New-ObjectNet.WebClient).DownloadString('c:/PowerUp.ps1');Install-ServiceBinary-ServiceName 'OmniServers'-UserName shuteer -Password Password123!

 

 

本文转载Freebuf,原文地址:http://www.freebuf.com/articles/system/131388.html

 

文章评论

Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
程序员的鄙视链
程序员的鄙视链
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
那些争议最大的编程观点
那些争议最大的编程观点
为什么程序员都是夜猫子
为什么程序员都是夜猫子
代码女神横空出世
代码女神横空出世
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
旅行,写作,编程
旅行,写作,编程
10个调试和排错的小建议
10个调试和排错的小建议
 程序员的样子
程序员的样子
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
一个程序员的时间管理
一个程序员的时间管理
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
我是如何打败拖延症的
我是如何打败拖延症的
Java程序员必看电影
Java程序员必看电影
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
鲜为人知的编程真相
鲜为人知的编程真相
老程序员的下场
老程序员的下场
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
如何成为一名黑客
如何成为一名黑客
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员应该关注的一些事儿
程序员应该关注的一些事儿
每天工作4小时的程序员
每天工作4小时的程序员
编程语言是女人
编程语言是女人
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序员必看的十大电影
程序员必看的十大电影
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
总结2014中国互联网十大段子
总结2014中国互联网十大段子
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
程序员和编码员之间的区别
程序员和编码员之间的区别
我的丈夫是个程序员
我的丈夫是个程序员
中美印日四国程序员比较
中美印日四国程序员比较
程序员都该阅读的书
程序员都该阅读的书
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
漫画:程序员的工作
漫画:程序员的工作
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有