免定金联系方式:深化分析线程与进程句柄走漏缝隙(上)
多年来,笔者从前遇到并运用过一些句柄走漏缝隙。当然,这些进程也特别风趣,因为并不是一切的句柄都被颁发了`PROCESS_ALL_ACCESS`或`THREAD_ALL_ACCESS`权限,所以,要想顺畅运用,仍是要开动脑筋的。在这篇文章中,我们将为读者介绍句柄的各种拜访权限,以及怎么运用这些权限来完结代码实行。在这里为,我们将要点重视进程和线程句柄,因为这些是最常见的,当然,其他目标的句柄也可以以相似的 *** 加以运用。
尽管这种缝隙或许在各种状况下发作,但我遇到的最常见的景象是,当某个特权进程翻开一个句柄,并将`bInheritHandle`设置为true时,就会呈现该缝隙。一旦发作这种状况,该特权进程的一切子进程都会承继句柄及其颁发的一切拜访权限。例如,假定一个SYSTEM级的进程实行以下操作:
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, GetCurrentProcessId());
因为它答应承继现已翻开的句柄,所以任何子进程都可以拜访该句柄。假设它们实行了模仿桌面用户的用户态(userland)代码——像服务常常做的那样,那么这些用户态进程将取得拜访该句柄的权限。
已发现的缝隙
下面,我们罗列几个现已揭露的缝隙实例。例如,James Forshaw[0]在2016年就从前运用过一个从具有`THREAD_ALL_ACCESS`拜访权限的辅佐登录服务中走漏的特权线程的句柄。实践上,这是一种最“常见”的权限,但他却以一种其时我并不了解的新颖 *** 运用了它。
另一个是来自Ivan Fratric[1] 的比如,他从前运用过一个被走漏的、具有`PROCESS_DUP_HANDLE`权限的进程句柄。在他宣布的“Bypassing Mitigations by Attacking JIT Server in Microsoft Edge”白皮书中,他指出JIT服务器进程会将内存映射到内容进程(content process)。为此,JIT进程需求用到一个句柄。内容进程将运用`PROCESS_DUP_HANDLE`来调用本身的`DuplicateHandle`,侵犯者可以运用这一点来获取具有悉数拜访权限的句柄。
最近的一个比如是戴尔LPE [2],其间从特权进程取得了一个具有“THREAD_ALL_ACCESS”权限的句柄。侵犯者可以通过下载的DLL和APC来运用该缝隙。
建立测验环境
在这篇文章中,我想调查句柄一切或许的拜访权限,以确认哪些权限是可以运用的,哪些权限是无法运用的。关于那些无法运用的权限,我会设法弄清楚需求结合哪些权限,才干正常加以运用。
为了完结相应的测验,我创建了一个简略的客户端和服务器:一个走漏句柄的特权服务器和一个可以运用它的客户端。下面是服务器的代码:
#include "pch.h"
#include
#include
int main(int argc, char **argv)
{
if (argc
在上面代码中,我获取了要模仿的令牌的句柄,翻开了当前进程(以SYSTEM权限运转)的可承继句柄,然后派生了一个子进程。实践上,这
有很多人想要加入微商,但是不知道做什么产品更有市场,2018做微商什么比较好卖?哪类产品是最赚钱的?小编推荐2018微商最好卖的十大产品,大家可以参考下。 2018做微商什么比较好卖 第1名:...
本文目录一览: 1、黑客帝国4剧情 2、《黑客帝国》中的“子弹时间”是如何拍成的? 3、黑客帝国里面的建筑师的真实身份到底是什么 4、《黑客帝国》有什么不为人知的幕后故事吗? 5、《黑...
unsigned long k; {但现实上,var a = b = 3; 实践是以下声明的简写:b=3; FreeLibrary(dll);//开释DLL模块 HINSTANCE dll=LoadL...
狂犬病是一种急性传染病,现在很多动物身上都带有狂犬病病毒,一旦被狂犬病病毒传染之后,就需要及时接种狂犬病疫苗,否则出现狂犬病症状后,病死率几乎是百分之百,因为科学家一直都没有找到可以抑制住狂犬病病毒的...
晕车的感受真是一种别致又难受的体验了,不过晕车的人是怎么坐车的,晕车是一种什么样的体验呢,怎么避免坐车晕车,友谊长存小编就来说说吧。 晕车的人是怎么坐车的 把自己当做一团死肉,坐车前不吃东西,上车...
误删除的微信聊天记录怎么恢复?微信作为平时最常用的聊天工具,自然保存的许多聊天记录,在清理手机时不免误删一些重。 微信聊天记录删除了怎么恢复?随着微信的普及,方便了我们跟远在家乡的亲人朋友进行感情沟通...