Windows提权 —— 系统内核溢出漏洞提权

权限提升

渗透的最终目的是获取服务器的最高权限,即windows操作系统中管理员账号的权限或Linux操作系统中root账户的权限。通常,我们在渗透测试过程中很有可能只获得了一个系统低权限。低的权限级别将使我们受到很多限制。比如:无法进行获取Hash、安装软件、修改防火墙规则和修改注册表等各种操作。

通常可分为:

  • 操作系统漏洞或操作系统的错误配置提权(Windows、Linux)
  • 第三方软件服务提权(数据库、FTP)

Windows提权

在Windows中,有User、Administrator、System、TrustedInstaller这四种用户权限,其权限从左到右依次升高。而我们在一般的实战中,Webshell等途径获得的权限较低,低权限将使渗透测试受到很多的限制。这就要求我们将当前权限提升到足以满足我们要求的高权限。

常见提权方法:

  • 系统内核溢出漏洞提权
  • 错误的系统配置提权
  • MSI 提权
  • 计划任务提权
  • 进程注入提权
  • 令牌窃取
  • DLL 劫持
  • 启动项和组策略提权
  • ...

系统内核溢出漏洞提权

溢出漏洞是一种计算机程序的可更正性缺陷。溢出漏洞的全名:缓冲区溢出漏洞。因为它是在程序执行的时候在缓冲区执行的错误代码,所以叫缓冲区溢出漏洞。缓冲溢出是最常见的内存错误之一,也是攻击者入侵系统时所用到的最强大、最经典的一类漏洞利用方式。成功地利用缓冲区溢出漏洞可以修改内存中变量的值,甚至可以劫持进程,执行恶意代码,最终获得主机的控制权。

利用Windows系统内核溢出漏洞提权是一种很通用的提权方法,攻击者通常可以使用该方法绕过系统中的所有安全限制。溢出提权又分为远程溢出和本地溢出。攻击者利用该漏洞的关键是目标系统有没有及时安装补丁,如果目标系统没有安装某一漏洞的补丁且存在该漏洞的话,攻击者就会向目标系统上传本地溢出程序,溢出Administrator权限。

通常利用缓冲区溢出提权步骤如下:

  1. 信息收集,查看当前权限,版本,补丁等;
  2. 根据收集到的信息确定可利用漏洞;
  3. 根据漏洞查找EXP;
  4. 使用EXP提权。

信息收集常用命令

  1. 目标系统的名称、版本和补丁
systeminfo | findstr /L /C:OS /C:KB
  1. 主机名称和所有环境变量
主机名称:hostname
环境变量:SET
  1. 查看用户信息
查看当前用户权限:whoami
查看所有用户:net user或net1 user
查看管理员用户组:net localgroup administrators或net1 localgroup administrators
查看远程终端在线用户:query user或quser
  1. 查看远程桌面端口
#通过注册表查看RDP端口
REG query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
#通过命令行查看
获取对应的 PID 号:tasklist /svc | find "TermService"
通过 PID 号查找端口:netstat -ano | find "1044"
  1. 查看网络情况
网络配置情况:ipconfig /all
路由器信息:route print
查看 ARP 缓存:arp –a
查看网络连接:netstat –ano
查看防火墙规则,命令如下:
netsh firewall show config
netsh firewall show state
  1. 应用程序和服务
查看服务的进程 ID:tasklist /SVC
查看已安装驱动程序的列表:DRIVERQUERY
查看已经启动的 Windows 服务:net start
查看目录和文件权限:icacls "C:/Program Files/"
查看计划任务详情:schtasks /query /fo LIST /v
查看服务的详细配置:sc qc 服务名(TermService)
  1. 使用WMIC枚举目标信息
    WMIC可以描述为一组管理Windows系统的方法和功能。我们可以把它当作API来与Windows系统进行相互交流,WMIC在渗透测试中的价值在于它不需要下载和安装,因为WMIC是Windows系统自带的功能,而且整个运行都在计算机的内存中发生,不会留下任何痕迹。
查看计算机补丁安装详情:wmic qfe list
查看系统位数:wmic cpu get addresswidth
查看服务列表:wmic service list brief
查看进程列表:wmic process list brief
获取进程路径:wmic process get description,executablepath
查看启动项列表:wmic startup list brief
查看共享:wmic share get name,path
查看已安装软件版本:wmic product get name,version
查看是否为虚拟机:wmic bios list full | find /i "vmware"
查看没有加引号的服务路径:wmic service get name,displayname,pathname,startmode | findstr /i "Auto" | findstr /i /v "C:\\Windows\\" | findstr /i /v """
查看环境变量:wmic ENVIRONMENT
查看path环境变量:wmic ENVIRONMENT where "name='path'" get UserName,VariableValue

手工搜索EXP

  1. Searchsploit搜索EXP
    https://img2022.cnblogs.com/blog/2913122/202208/2913122-20220803104857581-1744114819.png

  2. Metasploit搜索EXP
    https://img2022.cnblogs.com/blog/2913122/202208/2913122-20220803104858219-763856914.png

  3. ExploitDB:https://www.exploit-db.com/
    https://img2022.cnblogs.com/blog/2913122/202208/2913122-20220803104858863-1565456169.png

  4. Windows平台提权漏洞集合:https://github.com/SecWiki/windows-kernel-exploits

辅助提权工具

在线补丁对比平台(自己选好使的):

1. Windows-Exploit-Suggester

Windows-Exploit-Suggester是受Linux_Exploit_Suggester的启发而开发的一款提权辅助工具。通过下载微软公开漏洞库到本地“生成日期+mssb.xls”文件,然后根据操作系统版本,跟systeminfo生成的文件进行比对。同时此工具还会告知用户针对于此漏洞是否有公开的exp和可用的Metasploit模块。微软公开漏洞库下载地址:http://www.microsoft.com/en-gb/download/confirmation.aspx?id=36982

安装:

  1. 下载解压:https://github.com/AonCyberLabs/Windows-Exploit-Suggester
  2. 安装xlrd库,安装时指定xlrd库版本为1.2.0:pip2 install xlrd==1.2.0。因为xlrd2.0.1版本后不支持xlsx,只支持.xls文件,运行时会报错。
    https://img2022.cnblogs.com/blog/2913122/202208/2913122-20220803104859379-1108887322.png

使用:

  1. 更新获取漏洞库详细信息:python2 windows-exploit-suggester.py --update。执行完之后会生成一个后缀为“-mssb.xls”文件,该文件记录详细的漏洞信息;
    https://img2022.cnblogs.com/blog/2913122/202208/2913122-20220803104859989-65745012.png

  2. 通过各种途径方法获取目标操作系统的systeminfo,生成系统信息文件 :systeminfo > systeminfo_win10.txt。并将生成的systeminfo信息的文件放在windows-exploit-suggester.py文件同一个目录下;
    https://img2022.cnblogs.com/blog/2913122/202208/2913122-20220803104900638-1800360445.png

  3. 执行python脚本文件,查看目标网站存在的未修复漏洞信息,并且给出漏洞的利用POC详细地址。

python2 windows-exploit-suggester.py --database 2022-04-21-mssb.xls --systeminfo systeminfo_win10.txt
https://img2022.cnblogs.com/blog/2913122/202208/2913122-20220803104901391-388824658.png

2. MSF local_exploit_suggester 模块

Metasploit内置模块提供了各种可用于提权的local exploits,并会基于架构,平台(即运行的操作系统),会话类型和所需默认选项提供建议。这极大的节省了我们的时间,省去手动搜索local exploits的麻烦。

获取Session会话后提权:

background
use post/multi/recon/local_exploit_suggester
set session 1
exploit
https://img2022.cnblogs.com/blog/2913122/202208/2913122-20220803104902025-1174879530.png

3. MSF enum_patches 模块

会用metasploit中的post/windows/gather/enum_patches模块可以根据漏洞编号快速找出系统中缺少的补丁。直接使用如下:

run post/windows/gather/enum_patches
https://img2022.cnblogs.com/blog/2913122/202208/2913122-20220803104902598-1864925825.png
posted @   MGh0st  阅读(1021)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示