首页
社区
课程
招聘
[原创]CVE-2014-1767_Afd.sys_double-free_漏洞分析与利用
2014-11-15 16:17 9425

[原创]CVE-2014-1767_Afd.sys_double-free_漏洞分析与利用

2014-11-15 16:17
9425
收藏
点赞1
打赏
分享
最新回复 (29)
雪    币: 236
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
piratelzs 2014-11-26 19:45
26
0
这种漏洞这么挖出来的?
雪    币: 736
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
纯情小生 2015-1-22 11:54
27
0
先谢谢Vsbat大大分享了, 最近拜读了这篇关于1767的afd漏洞的利用那篇文章,我有以下几点疑惑,如果方便,希望你不吝解答
    1)我用的测试机的环境是在win7 x86,内核版本是6.1.7601,是没有打1767的补丁,然后我运行你的程序,发现并没有利用成功,我执行的时候是管理员权限,弹出来的cmd同样也是管理员权限,而非是system,我进一步在你程序的shellcode中添加了一个int3,然后编译运行,发现同样没有导致BSOD。        2)在你的exploit中,我看你是利用CreateIoCompletionPort和ZwCreateWorkerFactory这两个函数来达到UAF的,对于这两个函数如何能正好分配到释放掉的那块内存的虚拟地址,我不是太清楚,希望你能解答一下
        3)这篇利用,主要讲的是从double free到UAF,再到write what where的这么一个过程,double free到UAF这个过程我能看明白,但是从UAF到write what where我就不是很明白了,在这个过程中UAF到底充当了什么个角色?只是为了使double free避免BSOD?
雪    币: 67
活跃值: (730)
能力值: ( LV7,RANK:150 )
在线值:
发帖
回帖
粉丝
shuozhang 2 2017-6-2 16:23
28
0
雪    币: 292
活跃值: (680)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Keoyo 2 2017-6-5 08:26
29
0
纯情小生 先谢谢Vsbat大大分享了, 最近拜读了这篇关于1767的afd漏洞的利用那篇文章,我有以下几点疑惑,如果方便,希望你不吝解答     1)我用的测试机的环境是在 ...
15年的回复不知道兄弟还在不在看雪,第一个问题由于我没调试没法回答,对于第二个问题,需要看一下windows的内存管理机制,和linux很像,在pool释放掉以后,会产生一个内存空洞,当再有pool申请的时候,win会优先分配符合条件,也就是大小相等的pool,打个比方,我释放掉一个0x60大小的pool之后,如果我申请一个0x58大小的空间,会优先占用0x60的这个pool,从而减少碎片,如果没有相等大小的,则会去找比自己大的,再没有则开辟一个新的内存空间。第三,从double  free到uaf是为了达成www或者其他利用的一个过程,单纯的double  free是没法code  execution的,可以理解为光有free是不够的,因为win不像linux有unlink这么好用的宏,必须要有use,而从uaf到www是要从double  free来看,当第一次free之后,我们可以占用free掉的内存空洞,而此时win还认为这是原来的对象,占用后第二次free时会把我们占用的对象free掉,这时候我们可以用第三次可控的对象占用,之后调用一些特殊的函数,比如作者提到的NtEaQuery等等,而这类函数往往是对我们第二次占用的对象的成员操作,但这里由于double  free,第二次对象已经被释放了,第三次我们是用可控的对象,从而利用特殊的函数里的代码来达到www
雪    币: 736
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
纯情小生 2017-6-9 18:44
30
0
Keoyo 15年的回复不知道兄弟还在不在看雪,第一个问题由于我没调试没法回答,对于第二个问题,需要看一下windows的内存管理机制,和linux很像,在pool释放掉以后,会产生一个内存空洞,当再有pool申 ...
    谢谢Keoyo能这么详细的解答,虽然时间有点久,哈哈!这个我之后向Vsbat请教了的,非常感谢你,看雪依然是这么好的气氛,感谢看雪,祝看雪越来越好!
游客
登录 | 注册 方可回帖
返回