windows10内核态提权方法汇总
近期由于某些项目的原因,突然激发了我对windows内核提权原理的兴趣。于是就想研究一下,在拿到一个内核态任意代码执行漏洞后,到底有多少种方法常用的方法还能在windows 10上成功提权,针对这些不同的提权方法到底有没有一个比较通用的拦截方案? 所以就有了如下这篇学习记录。
不同于ring3层的shellcode那样功能多样化,在的漏洞利用过程中,ring0层的shellcode通常用来获取 nt authority\system权限,本文基于的前提是已经有一个内核态任意代码执行漏洞的前提下,学习三种还能够在windows 10 上成功提权的方法,并写出相对应的shellcode。
Token窃取
token窃取是windows内核提权最常用的办法,其核心的原理是用system进程中的token替换当前漏洞利用进程的token,实现身份伪造。运行中的Windows进程所关联的用户帐户和访问权限由一个叫做令牌(token)的内核对象仲裁。用于跟踪各种特定进程数据的内核数据结构包含了一个指向token的指针。当进程试图去执行各种操作时,比如打开一个文件,token中的账户权限会用于和所需的权限进行比较,以此决定该操作是否可行。
因为token指针只是内核内存中的数据,对于在内核模式中执行的代码来说,将其更改为指向不同的token以赋予该进程一个不同的权限集,这是非常容易的事情。接下来我们就先用windbg进行效果演示,将普通用户权限的cmd.exe 进程修改为system 权限。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
近期由于某些项目的原因,突然激发了我对windows内核提权原理的兴趣。于是就想研究一下,在拿到一个内核态任意代码执行漏洞后,到底有多少种方法常用的方法还能在windows 10上成功提权,针对这些不同的提权方法到底有没有一个比较通用的拦截方案? 所以就有了如下这篇学习记录。
不同于ring3层的shellcode那样功能多样化,在的漏洞利用过程中,ring0层的shellcode通常用来获取 nt authority\system权限,本文基于的前提是已经有一个内核态任意代码执行漏洞的前提下,学习三种还能够在windows 10 上成功提权的方法,并写出相对应的shellcode。
Token窃取
token窃取是windows内核提权最常用的办法,其核心的原理是用system进程中的token替换当前漏洞利用进程的token,实现身份伪造。运行中的Windows进程所关联的用户帐户和访问权限由一个叫做令牌(token)的内核对象仲裁。用于跟踪各种特定进程数据的内核数据结构包含了一个指向token的指针。当进程试图去执行各种操作时,比如打开一个文件,token中的账户权限会用于和所需的权限进行比较,以此决定该操作是否可行。
因为token指针只是内核内存中的数据,对于在内核模式中执行的代码来说,将其更改为指向不同的token以赋予该进程一个不同的权限集,这是非常容易的事情。接下来我们就先用windbg进行效果演示,将普通用户权限的cmd.exe 进程修改为system 权限。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
CVE-2021-40444 漏洞深入分析
拿到样本的第一时间,便在自己的沙箱环境下面运行了下,并且从网上下载的docx,微软默认会开启保护模式,我这里是本地打开的,基本内容如下,全都是文字内容,基本上没发现什么:
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
拿到样本的第一时间,便在自己的沙箱环境下面运行了下,并且从网上下载的docx,微软默认会开启保护模式,我这里是本地打开的,基本内容如下,全都是文字内容,基本上没发现什么:
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
数据库利用 看这篇就好了
该篇文章总结了在国家级攻防演练中数据库相关利用,旨在帮助红队选手在拿下数据库权限后快速拓展获取服务器权限、WEB应用权限、数据分数,请勿非法利用。
数据库->服务器权限
建议大家在实战中直接使用工具,当使用工具遇到问题时可通过以下利用步骤进行调试
写入webshell到网站目录
利用条件
secure-file-priv参数为空或者为网站根路径
知道网站的绝对路径
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
该篇文章总结了在国家级攻防演练中数据库相关利用,旨在帮助红队选手在拿下数据库权限后快速拓展获取服务器权限、WEB应用权限、数据分数,请勿非法利用。
数据库->服务器权限
建议大家在实战中直接使用工具,当使用工具遇到问题时可通过以下利用步骤进行调试
写入webshell到网站目录
利用条件
secure-file-priv参数为空或者为网站根路径
知道网站的绝对路径
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
fastjson 读文件 gadget 的利用场景扩展
此前有师傅在 blackhat 的 fastjson 议题上分享了 1.2.68 版本的几个 gadget。其中比较有意思的一个是用来读文件的。我要写的内容是以这个 gadget 作为基础的,所以先讲一下这个 gadget。
只需要跟进到代码里看一下就知道为什么可以读文件了。
首先从 org.apache.commons.io.input.BOMInputStream 开始看。
BOMInputStream 的构造方法可以传递一个 InputStream 类型的 delegate 和 ByteOrderMark 数组 boms。
这一段是用了 fastjson 的 JSONPath 引用特性,通俗的讲就是去调用 JSON 对象中 abc 的 bom 属性,这里 abc 是被实例化的 BOMInputStream 对象。所以调用的就自然是 BOMInputStream 类的 getBom 成员方法。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
此前有师傅在 blackhat 的 fastjson 议题上分享了 1.2.68 版本的几个 gadget。其中比较有意思的一个是用来读文件的。我要写的内容是以这个 gadget 作为基础的,所以先讲一下这个 gadget。
只需要跟进到代码里看一下就知道为什么可以读文件了。
首先从 org.apache.commons.io.input.BOMInputStream 开始看。
BOMInputStream 的构造方法可以传递一个 InputStream 类型的 delegate 和 ByteOrderMark 数组 boms。
这一段是用了 fastjson 的 JSONPath 引用特性,通俗的讲就是去调用 JSON 对象中 abc 的 bom 属性,这里 abc 是被实例化的 BOMInputStream 对象。所以调用的就自然是 BOMInputStream 类的 getBom 成员方法。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
通用的设定
Trace-Id
包括现实很多地方都会存在类似于Trace-Id 的东西,它们只有一个目的,追踪请求的流转。在本题中,你可以通过Trace-Id 来判断这个请求是否到达到backend。
A-ginx
2021 ByteCTF 初赛部分题目官方Writeup
XSS
既然提供了bot,那必然有XSS。不管通过那些途径,你可以找到两个XSS点
POST型XSS点 /v/articles/preview
展示article中的 htmlContent 是另一个XSS点
但是这两个点都不能独立的完成XSS,一个是POST型无法触发,另一个因为输入中有HTMLSanitize来进行过滤。
缓存服务
观察各个API,你会发现在/static/ 下的请求,会进行缓存,并出现cache-key。这个请求头没有Trace-Id,也表示它是直接的被缓存在了A-ginx端中。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
Trace-Id
包括现实很多地方都会存在类似于Trace-Id 的东西,它们只有一个目的,追踪请求的流转。在本题中,你可以通过Trace-Id 来判断这个请求是否到达到backend。
A-ginx
2021 ByteCTF 初赛部分题目官方Writeup
XSS
既然提供了bot,那必然有XSS。不管通过那些途径,你可以找到两个XSS点
POST型XSS点 /v/articles/preview
展示article中的 htmlContent 是另一个XSS点
但是这两个点都不能独立的完成XSS,一个是POST型无法触发,另一个因为输入中有HTMLSanitize来进行过滤。
缓存服务
观察各个API,你会发现在/static/ 下的请求,会进行缓存,并出现cache-key。这个请求头没有Trace-Id,也表示它是直接的被缓存在了A-ginx端中。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
最初深入研究时,我确实发现 Kubelet 没有使用身份验证,所以我觉得这就是目标。深入研究后发现,这里的 kubelet 仅在本地使用。此外,Kubelet 端口在节点上有一个本地防火墙,用户无法意外禁用它。kubelet 用于使用该--manifest-url选项读取配置文件。这利用 kubelet 在 Dataflow 节点上简单地启动一组容器。事实证明,这是 kubelet 的一个有趣且出乎意料的用途,但基本上没有针对 kubelet 的真正攻击面。
有趣的端口
查看防火墙,发现有一些有趣的端口被打开了。我将其与实际在网络上监听的端口进行了交叉对照
作业启动后,可以在 Dataflow 作业页面中看到。虚拟机节点也将在 Compute Engine 控制台中可见。默认情况下,会分配一个公共 IP,并且对该 IP 的访问受 VPC 防火墙控制
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
有趣的端口
查看防火墙,发现有一些有趣的端口被打开了。我将其与实际在网络上监听的端口进行了交叉对照
作业启动后,可以在 Dataflow 作业页面中看到。虚拟机节点也将在 Compute Engine 控制台中可见。默认情况下,会分配一个公共 IP,并且对该 IP 的访问受 VPC 防火墙控制
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
❤1
CVE-2021-4034 pkexec 本地提权
Qualys 近期公开了一个影响众多 Linux 发行版,而且利用效果极其稳定的 Polkit 漏洞 CVE-2021-4034。
目前网络上已经出现完整 PoC。
Ubuntu、Debian、Fedora 和 CentOS 的默认安装环境上均测试通过。漏洞利用难度不高,最早引入问题的 commit 来自 2009 年,影响版本范围远超去年的 sudo 漏洞。反正我自己的虚拟机和 VPS 无一幸免。
这个漏洞是本地触发,只有在获得有限权限的前提下提升至 root。请大家综合考虑自己的业务影响做好升级工作。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
Qualys 近期公开了一个影响众多 Linux 发行版,而且利用效果极其稳定的 Polkit 漏洞 CVE-2021-4034。
目前网络上已经出现完整 PoC。
Ubuntu、Debian、Fedora 和 CentOS 的默认安装环境上均测试通过。漏洞利用难度不高,最早引入问题的 commit 来自 2009 年,影响版本范围远超去年的 sudo 漏洞。反正我自己的虚拟机和 VPS 无一幸免。
这个漏洞是本地触发,只有在获得有限权限的前提下提升至 root。请大家综合考虑自己的业务影响做好升级工作。
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
SSL证书扩展
通过前面的步骤我们已经收集到大量的根域名信息了,但是还是有一些域名它没有工商备案信息,域名也是新注册的开启了隐私保护从Whois历史数据中也没办法找到关联方法。那我们就需要通过域名关联到的端口服务资产中去寻找一些关联特征了,但是一般我们在关联前无法确定需要扫描的IP范围,就算要扫描成本也是非常高的,庆幸市面上已经有了一些非常成熟的全网资产工具,比如Fofa、Zoomeye、Shodan、censys等等,我们可以借助这些平台来寻找一些域名关联的特征。
以kuaishou.com举例子,企业在申请证书的时候一般会将同类业务域名的申请成一张成熟,一方面是出于成本考虑,还有一方面也是方面对证书进行同一的管理。我们通过查询证书内容包含kuaishou.com的证书信息发现证书的DNS Names中还会有其他的业务域名。请注意我们要排除一些自签的证书,自签名的证书往往内容都是可以填写的,很容易关联到错误的域名。
工商股权信息收集
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
通过前面的步骤我们已经收集到大量的根域名信息了,但是还是有一些域名它没有工商备案信息,域名也是新注册的开启了隐私保护从Whois历史数据中也没办法找到关联方法。那我们就需要通过域名关联到的端口服务资产中去寻找一些关联特征了,但是一般我们在关联前无法确定需要扫描的IP范围,就算要扫描成本也是非常高的,庆幸市面上已经有了一些非常成熟的全网资产工具,比如Fofa、Zoomeye、Shodan、censys等等,我们可以借助这些平台来寻找一些域名关联的特征。
以kuaishou.com举例子,企业在申请证书的时候一般会将同类业务域名的申请成一张成熟,一方面是出于成本考虑,还有一方面也是方面对证书进行同一的管理。我们通过查询证书内容包含kuaishou.com的证书信息发现证书的DNS Names中还会有其他的业务域名。请注意我们要排除一些自签的证书,自签名的证书往往内容都是可以填写的,很容易关联到错误的域名。
工商股权信息收集
⚫️⚫️⚫️渗透测试,#删库,数据删除 拿数据库 木马注入 破解,提权,Dns动持⚫️⚫️⚫️
#黑客接单 @逆向破解 #渗透
@changwaiguang
❤1