首页
社区
课程
招聘
[旧帖] [求助]关于Matthew的XPSP2 Heap Exploitation演讲的几个问题 0.00雪花
发表于: 2011-1-28 01:44 969

[旧帖] [求助]关于Matthew的XPSP2 Heap Exploitation演讲的几个问题 0.00雪花

2011-1-28 01:44
969
XP SP2不安全的 链表卸载操作 空表溢出技术
第一个问题就是如何运用这一通过安全检验的不安全的unlink操作将shellcode地址写到某任意一个内存地址中去
第二个问题是为什么要不停向堆中溢出一对序列
[FreeListHead-4][FreeListHead+4]才能满足exploit要求 一次不够吗?为什么还要寄希望于Flink和Blink这对指针的地址是在我们能够溢出的地址范围内,“我们能够溢出的地址范围”是多少
详细描述问题 先把这段原文贴出来再加上自己的理解
p = HeapAlloc(n);
FillLookaside(n);//以免加入快表
HeapFree(p);
EmptyLookaside(n); //清空快表 以免后面分配时从快表卸空闲块
Overwrite p[0] (somewhere on the heap) with:
        p->Flags = Busy (to prevent accidental coalescing)
        p ->Flink = (BYTE *)&ListHead[(n/8)+1] - 4
        p ->Blink = (BYTE *)&ListHead[(n/8)+1] + 4
就能满足上述条件
//通过构建巧妙的双向指针 骗过了安全校验机制 都指向FreeChunk,unlink操作继续进行
HeapAlloc(n); // defeats safe unlinking (ignore result) 这里分配时返回的上一个空闲堆块地址 忽略它
p = HeapAlloc(n); // defeats safe unlinking
// p now points to &ListHead[(n/8)].Blink
// p现在指向&ListHead[(n/8)]也就是上一个空表项的表头的后向指针

Matthew现在总结道:现在空表指针指向了用户赋予的任意地址 这是为什么

以下是讲解上述骗过安全机制的流程并获取&ListHead[(n/8)].Blink指针的流程
首先安全校验实际就是
if(node->Flink->Blink==node && node->Blink->Flink==node)
FreeChunk->Blink->Flink == *(*(FreeChunk+4)+0)
FreeChunk->Flink->Blink) == *(*(FreeChunk+0)+4)
上述两个等式都成立 因为表达式左右两边都指向FreeChunk
就骗过安了全校验机制 unlink操作继续进行

第一次分配时发生下列操作
FreeChunk->Blink->Flink = FreeChunk->Flink
FreeChunk->Flink->Blink = FreeChunk->Blink

因为这里和DWORD SHOOT相去甚远
因为《0day》一书中讲述的是根据MOV DWORD PTR DS:[ECX],EAX 这一unlink操作的必经之路上,(也即是Flink->[Blink]操作) 已达到向任意地址写入任意数据的目的(也就是书中讲得将shellcode地址写入RtlEnterCriticalSection函数指针地址,以引发ExitProcess来调用shellcode) 而这里仅仅是获得了一个地址 难道是向&ListHead[(n/8)].Blink中写入shellcode地址 并使之执行???不得而知  希望各位指教 这就是第一个问题就是如何运用这一通过安全检验的不安全的unlink操作将shellcode地址写到某任意一个内存地址中去

第二个问题是:
另外后面Matthow还提到要不断地使用这对8字节的序列溢出堆 才能成功实现向任意地址写入任意数据的目的
[FreeListHead-4][FreeListHead+4]这对序列
还要寄希望于Flink和Blink这对指针的地址是在我们能够溢出的地址范围内 这句话有事什么意思

希望各位指教

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 201
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
无人问津 问得不好
2011-2-19 12:37
0
游客
登录 | 注册 方可回帖
返回
//