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

访客5年前黑客工具359

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

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、凯文·米特尼克(Kevin Mitnick)被称为世界上“头号电脑黑客”。3、主要成就:...

水中星黑客(水中星黑客粉怎么用)

水中星黑客(水中星黑客粉怎么用)

本文导读目录: 1、有什么好看的黑道、贵族、校园小说吗?免费的,没病毒的。【注:小说阅读网里的不要加V】回答者万分感谢~~ 2、三威1.5米锅 接受的是中星6B 是宾馆 一会有信号强度和信号质量一...

对感情小心眼代表什么意思(讲解感情里边的小心眼)

文:南情北爱 用最用心的文本,陪你踏入情感生活,解除感情谜雾。 内心面,最重要的部位上,装着一个人,那这个人,便是最宝贵的,到底是谁都不可以替代的,也到底是谁都不能挨近的。 爱得十分深,他人凑往...

250克等于多少斤

  250克便是半斤。250克便是0.5斤。解答进程如下:1千克=1000克=2斤=1公斤,250克也就是1000克的四分之一索菲娅,所以250克是0.5斤,也就是半斤。现代的「斤」凭据各。   25...

平板被黑客攻击怎么办(被黑客攻击怎么办)-黑客可怕到什么地步

平板被黑客攻击怎么办(被黑客攻击怎么办)-黑客可怕到什么地步

平板被黑客攻击怎么办(被黑客攻击怎么办)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客、黑...

JS打印机效果代码整理

纯js性 简单快速 功能少 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl...