在线微信:深化分析线程与进程句柄走漏缝隙(下)

访客4年前黑客工具340

在线微信:深化分析线程与进程句柄走漏缝隙(下)

PROCESS_VM_*
这涵盖了VM拜访权限的三种类型:WRITE/READ/OPERATION。前两个权限应该是不言自明的,第三个权限答应操作虚拟地址空间自身,例如批改页面维护(VirtualProtectEx)或分配内存(VirtualAllocEx)。本文不计划介绍这三种权限的排列组合情况,但我以为`PROCESS_VM_WRITE`是必要的前置条件。尽管`PROCESS_VM_OPERATION`可以令远程进程溃散,不过也会引发其他缺点,一起,它既不是通用的,也不是高雅的办法。`PROCESS_VM_READ`同上。
事实证明,`PROCESS_VM_WRITE`自身便是一个应战,我还没有找到一个通用的处理方案。乍一看,Hexacorn [12]介绍的一套破坏式注入战略似乎是完美的:它们只要求远程进程运用窗口、剪贴板注册等。既便如此,这些要求也纷歧定能得到满足。对我们来说不幸的是,其间许多都不答应跨会话拜访或扩展完整性等级。我们尽管可以对远程进程履行写操作,但仍然需求凭借其他办法来操控履行流程。
除了无法批改页面权限外,我们还无法读取或映射/分配内存。可是,仍是许多办法可以从远程进程泄露内存而不直接与它进行交互的。
例如,通过`NtQuerySystemInformation`,我们可以枚举远程进程内的一切线程,不管其IL怎么。这样,我们就可以获得一个`SYSTEM_EXTENDED_THREAD_INFORMATION`方针的列表,其间包括TEB的地址等。此外,我们还可以通过`NtQueryInformationProcess`获取远程进程PEB地址,不过,有必要具有`PROCESS_QUERY_INFORMATION`权限,这一要求会给我们带来很大的费事。为了处理这个问题,可以将`PROCESS_QUERY_INFORMATION`附加到`PROCESS_VM_WRITE`上。
实际上,我采纳的办法有点杂乱,不过,它仍是比较牢靠的。如果您现已阅读过我之前关于纤程本地存储(FLS)方面的文章[13],就会了解这种办法。如果您还没有读过这篇文章的话,无妨花点时刻读一下。
简而言之,我们可以乱用光纤和FLS来掩盖“…在纤程删去、线程退出以及开释FLS索引时”履行的回调函数。进程的主线程会不断设置纤程,因而,总是会有一个回调函数可用于掩盖(msvcrt!_freefls)。这些回调函数一般存储在PEB(FlsCallback)和TEB(FlsData)中的纤程本地存储中。通过破坏FlsCallback,我们就可以在履行纤程操作时操控系统的履行流程。
可是,因为只具有对进程的写拜访权限,所以这个进程有点费力。例如,因为我们无法分配内存,所以,我们使用一些已知空间来寄存payload。别的,PEB/TEB中的FlsCallback和FlsData变量都是指针,所以,我们也无法读取它们。
实际上,躲藏payload仍是十分简略做到的。这是因为,我们现已可以泄露PEB/T> licensingdiag.exe -cab hostshare EB地址,所以,我们实际上现已得到了两个十分健壮的原语。在查看了这两个结构之后,我发现线程本地存储(TLS)正好为我们供给了满足的空间来存储ROP Gadget和一个减肥版的payload。而TLS是嵌入在结构自身之中的,因而,我们可以直接通过偏移量找到TEB地址。如果您不熟悉TLS的话,那么我们强烈主张先参看Skywing编撰的一篇文章[14]。
不过,获得对回调函数的操控的确有点扎手,这是因为指向`_FLS_CALLBACK_INFO`结构的指针是存储在PEB(FlsCallback)中的,并且该结构是不透明的。因为我们实际上无法读取这个指针,因而,我们无法直接掩盖该指针。
我采纳的办法,是在PEB中掩盖FlsCallback指针自身,实质上便是在TLS中创立我们自己假造的`_FLS_CALLBACK_INFO`结构。这是一个十分简略的结构,实际上只要一个重要值:回调函数指针。
此外,依据FLS的文章,我们还需求操控ECX/RCX。这样,我们就可以通过跳板来履行我们的ROP payload了。不过,这要求更新`TEB-> FlsData`,可是,因为这是一个指针,所以我们很难做到。但是,就像`FlsCallback`相同,我们可以掩盖这个值并创立自己的数据结构——这倒不是什么难事。TLS缓冲区的布局如下所示:
//
// 0  ] 00000000 00000000 [STACK PIVOT] 00000000
// 16 ] 00000000 00000000 [ECX VALUE] [NEW STACK PTR]
// 32 ] 41414141 41414141 41414141 41414141
//
```
 
走运的是,恰好在`kernelbase!SwitchToFiberContext`(或Windows 7上的` kernel32!SwitchToFiber`)中有一个完美的跳板:
 
 
```
7603c415 8ba1d8000000    mov     esp,dword ptr [ecx+0D通过代码库进一步搜索,我们找到了BLE通讯的情况UUID字符串:8h]
7603c41b c20400          ret     4
归纳以上几点,我们终究得到:
eax=7603c415 ebx=7ffdf000 ecx=7ffded54 edx=00280bc9 esi=00000001 edi=7ffdee28
eip=7603c415 esp=0019fd6c ebp=0019fd84 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202
kernel32!SwitchToFiber+0x115:
7603c415 8ba1d8000000    mov     esp,dword ptr [ecx+0D8h]
ds:0023:7ffdee2c=7ffdee30
0:000> p
eax=7603c415 ebx=7ffdf000 ecx=7ffded54 edx=00280bc9 esi=00000001 edi=7ffdee28
eip=7603c41b esp=7ffdee30 ebp=0019fd84 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000    &nb

相关文章

黑客电蚊香液使用说明(黑客蚊香加热器)

黑客电蚊香液使用说明(黑客蚊香加热器)

本文目录一览: 1、电蚊香液使用方法 2、电蚊香液怎么用 3、电蚊香液怎么使用 使用的步骤是什么 4、电蚊香液的正确使用方法 5、电热蚊香液怎么用 电热蚊香液的使用方法 6、电蚊香...

从大数据的视角来聊一聊运维管理监控

清新自然同学们,承担百度云盘监控产品策划及设计方案,具有很多年监控行业商品工作经验。 干货知识概述 做运维管理的人对监控这一件事情都熟识了,可是针对监控那么一件老调重弹的事情,大家今日换一个视角,...

模拟黑客网站为什么打不开(黑客攻击模拟网站)-1黑客会让你交保证金吗

模拟黑客网站为什么打不开(黑客攻击模拟网站)-1黑客会让你交保证金吗

模拟黑客网站为什么打不开(黑客攻击模拟网站)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客...

莆田伴游陪游旅行网糖果-【朱文倩】

“莆田伴游陪游旅行网糖果-【朱文倩】” 4:对在线预约服务做评价,提出改进意见。文章版权声明: 本篇由 明星商务在线预约 原创,转载请保留链接,成都高端模特在线预约联系方式 QQ微信微博:lmh...

SEO优化时这些细节问题不容忽视

现在做网站SEO推广的人变得越来越多,同时很多人在做网站优化的时候,都认为自己的在全身心的努力,但是网站的关键词排名始终没有较大的改善。这到底是由哪些因素导致的呢?其实就是站内相关的优化细节没有做好,...