|
|
[原创]年末系列4 csrss白名单技术
许久没上线,老V依然风骚~ |
|
|
[招聘]各类阿里巴巴需要的人才
很不错的城市+很不错的公司!真心向往啊~ |
|
|
[原创]浅谈之重读老文章之那些年我们追过的gdt hook
每次看楼主发的帖子都感觉到真心蛋痛。。。 |
|
|
[分享]老文章系列:过Patchguard的梗
能不能来点猛料? |
|
|
[原创]再爆Windows崩溃漏洞
膜拜啊~ |
|
|
[分享]老文章系列:APC注入DLL的梗
求圈子,求包养~ |
|
|
[原创]漏洞利用中级技巧中思路的局限性
求公开,求细节~ |
|
|
[原创]漏洞挖掘方法之静态扫描+经典栈溢出实例
一个手动fuzz的过程。感谢分享~ |
|
|
[原创]新年礼物(bootkits)
非主流伤不起。。。 |
|
|
[原创]NTFS XCB定位。
V校的周末有点时间系列啥时候继续? |
|
|
[公告]看雪学院微信公众帐号
第一页顶 |
|
|
[求助]关于内核use after free
我先简单说明一下我目前的分析过程。poc源自KK牛博客59bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3S2A6i4K6u0W2j5X3q4A6k6s2g2Q4x3X3g2U0L8$3#2Q4x3V1j5@1j5U0g2X3y4h3j5@1j5W2)9J5c8X3W2@1k6h3#2Q4x3V1j5%4j5K6f1J5k6o6b7@1x3K6t1K6y4e0f1#2j5U0S2W2z5o6x3K6j5h3f1I4x3$3u0Q4c8e0g2Q4z5p5k6Q4z5p5u0Q4c8e0k6Q4z5o6y4Q4z5o6g2Q4c8e0k6Q4z5p5k6Q4z5e0m8Q4c8e0c8Q4b7V1g2Q4z5f1u0Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0g2Q4b7f1k6Q4b7U0W2Q4c8e0c8Q4b7V1q4Q4z5p5g2Q4c8e0k6Q4z5f1y4Q4b7f1q4Q4c8e0S2Q4b7e0N6Q4b7e0y4Q4c8e0g2Q4z5o6k6Q4b7U0y4Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0W2Q4z5e0N6Q4b7f1g2Q4c8e0W2Q4b7e0u0Q4z5e0S2Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0S2Q4b7V1k6Q4z5e0S2Q4c8e0S2Q4b7f1k6Q4b7U0N6Q4c8e0g2Q4z5e0m8Q4z5o6c8Q4c8e0c8Q4b7V1c8Q4z5p5c8Q4c8e0g2Q4b7e0c8Q4b7e0N6Q4c8e0N6Q4z5o6W2Q4z5f1u0Q4c8e0k6Q4z5p5y4Q4z5o6N6Q4c8e0N6Q4z5o6u0Q4b7U0W2Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0c8Q4b7U0S2Q4z5p5u0Q4c8e0y4Q4z5o6m8Q4z5o6t1`. 1、如何获得被释放的user object KK提供的poc可以稳定释放user object,对use-after-free漏洞进行利用首先要重新获得被释放的user object内存,并控制器内容。根据Tarjei Mandt在Hook of Death中提到的方法,调用SetWindowText,使用Unicode String作为该函数第二个参数(字符串不能包含double NULL),字符串长度为window object的长度(可通过dt win32k!tagWND查看,长度要包含double NULL),就可以申请到被释放的user object。字符串的内容就会填充user object。 2、如何控制字符串内容实现稳定exploit 经过分析和调试发现,LinkWindow实现的伪代码如下: pDestroyedObj->spwndNext->spwndPrev = pWindowObj; pWindowObj->spwndNext = pDestroyedObj->spwndNext; pWindowObj->spwndPrev = pDestroyedObj; pDestroyedObj->spwndNext = pWindowObj; 因为pDestroyedObj的内容可控,从而实现了任意地址可写,很自然想到可以通过控制pDestroyedObj->spwndNext的值最终往HalDispatchTable中写入1个用户态地址,然而pWindowObj是1个不可控的内核地址,因此该思路无法实现。于是考虑使用j00ru在e28K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3Z5H3x3s2u0#2i4K6u0W2N6X3g2^5K9h3I4D9K9i4g2E0i4K6u0W2L8%4u0Y4i4K6u0r3i4K6y4r3M7q4)9K6c8o6M7^5x3#2!0q4y4q4!0n7z5q4!0m8c8q4!0q4y4W2)9^5c8W2)9&6x3q4!0q4y4g2)9^5z5q4!0n7x3q4!0q4y4#2)9&6b7g2)9^5y4q4!0q4z5q4!0m8y4W2)9^5y4W2!0q4y4#2)9&6b7W2)9&6y4V1#2E0g2i4y4W2M7W2m8J5L8$3u0W2b7h3c8V1M7X3g2K6M7#2!0q4y4g2)9&6b7#2!0n7x3q4!0q4y4g2)9&6c8q4)9^5x3q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2!0n7x3q4)9^5y4W2!0q4y4g2)9^5y4g2!0n7y4W2!0q4z5q4!0m8y4W2)9^5y4W2!0q4y4#2)9&6b7W2)9&6y4W2!0q4y4q4!0n7z5q4!0n7b7e0q4Q4c8e0c8Q4b7U0S2Q4b7f1q4Q4c8e0W2Q4b7f1u0Q4z5e0S2Q4c8e0N6Q4b7f1u0Q4b7f1k6Q4c8e0g2Q4z5o6k6Q4z5o6g2Q4c8e0k6Q4b7e0m8Q4b7U0S2Q4c8e0g2Q4z5f1y4Q4b7U0m8Q4c8e0g2Q4z5f1c8Q4z5o6m8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0c8Q4b7V1u0Q4z5p5g2Q4c8e0S2Q4z5o6m8Q4z5p5y4H3j5i4y4K6i4@1f1$3i4K6S2q4i4K6R3&6f1s2u0G2j5X3g2r3L8%4u0i4M7X3W2@1k6g2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4W2!0m8x3#2)9^5x3q4!0q4y4W2)9&6c8W2!0m8y4g2!0q4x3#2)9^5x3q4)9^5x3W2!0q4y4g2)9&6b7#2!0m8z5q4!0q4y4g2)9^5z5q4!0m8z5g2!0q4y4#2)9&6y4q4!0m8z5q4!0q4z5q4!0n7c8W2)9^5y4#2!0q4y4#2!0m8z5q4)9^5b7W2!0q4y4q4!0n7z5q4!0m8c8q4!0q4y4g2)9^5c8W2)9&6x3g2!0q4y4#2)9^5c8g2!0n7x3q4!0q4c8W2!0n7b7#2)9^5b7@1S2y4b7i4y4K6K9h3N6F1L8h3g2F1N6p5I4G2j5$3E0Q4c8e0g2Q4z5o6N6Q4b7V1c8Q4c8e0k6Q4z5e0g2Q4b7U0m8Q4c8e0c8Q4b7U0S2Q4b7f1c8Q4c8e0g2Q4b7U0m8Q4z5o6k6Q4c8e0c8Q4b7V1y4Q4z5f1q4Q4c8e0k6Q4b7e0y4Q4z5o6m8Q4c8e0k6Q4z5f1k6Q4b7e0g2Q4c8e0S2Q4b7e0u0Q4b7f1u0Q4c8e0W2Q4z5o6N6Q4z5p5q4Q4c8e0k6Q4z5e0c8Q4b7V1g2Q4c8e0N6Q4z5f1q4Q4z5o6c8t1b7f1&6p5e0p5g2q4e0W2c8d9h3g2)9J5k6f1k6D9j5h3N6Q4c8e0g2Q4b7f1c8Q4z5e0N6Q4c8e0k6Q4b7f1g2Q4b7U0g2Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0g2Q4b7e0k6Q4z5o6u0Q4c8e0c8Q4b7U0S2Q4z5p5u0Q4c8e0k6Q4z5o6W2Q4z5o6m8Q4c8e0N6Q4b7e0c8Q4b7V1q4Q4c8e0y4Q4z5o6m8Q4z5o6u0Q4c8e0k6Q4b7f1c8Q4b7e0c8Q4c8e0k6Q4z5e0N6Q4b7U0k6Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0g2Q4b7U0m8Q4b7U0q4Q4c8e0c8Q4b7V1y4Q4z5f1q4Q4c8e0S2Q4b7f1k6Q4b7V1u0Q4c8e0g2Q4z5o6S2Q4b7U0m8Q4c8e0W2Q4z5f1c8Q4z5f1g2Q4c8e0k6Q4b7U0y4Q4z5e0g2Q4c8e0g2Q4z5f1y4Q4b7U0m8Q4c8e0g2Q4z5f1c8Q4z5o6m8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0c8Q4b7V1q4Q4b7e0N6Q4c8e0N6Q4z5e0c8Q4z5f1k6Q4c8e0g2Q4b7V1y4Q4z5o6u0Q4c8e0g2Q4b7U0S2Q4b7U0S2Q4c8e0y4Q4z5o6m8Q4z5o6u0Q4c8e0g2Q4z5f1u0Q4b7e0m8Q4c8e0k6Q4b7f1c8Q4b7e0c8Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0c8Q4b7U0W2Q4z5f1k6Q4c8e0k6Q4b7U0u0Q4b7e0q4Q4c8e0k6Q4b7U0y4Q4z5e0g2Q4c8e0S2Q4b7e0N6Q4b7e0y4Q4c8e0g2Q4z5o6k6Q4b7U0y4Q4c8e0y4Q4z5o6m8Q4z5o6t1`. mov eax, [esi] mov ecx, gSharedInfo+4(aheList) and eax, 0xffff imul eax, gSharedInfo+8(HeEntrySize) test[ecx+eax+9], 1 接下来就是Mandt在文章中提到的方法,对HMUnlockObject中的dec dword ptr [eax+4]进行利用,eax可控。window object的HANDLEENTRY.bType为1,bType为0表示free。将window object的HANDLEENTRY.bType-1,那么在Destroy window的时候0地址就会被调用,从而实现了arbitrary code execution。我按照他的方法将HANDLEENTRY.bType成功设置为0,并在0地址申请内存,但是0地址处的代码并未被调用,请各位大牛指导一下,解决这个问题同时也解决了dec dword[arbitrary address]的利用问题。 |
|
|
[水平测试第三弹]ExploitMe
blackwhite是巨牛~ |
|
|
[求助]如何查看Windows User Object
谢谢了,之前应该是在哪里看过 dt win32k!tagMENU的,但是再自己机器上输入的时候显示找不到symbol,还以为是错了。感谢。 |
|
|
[求助]如何查看Windows User Object
请各位大牛给予小菜一些帮助吧。 |
|
|
[求助]关于内核use after free
真心没人利用过么??? |
|
|
[求助]关于内核use after free
不能随便给个字符串。。。您先看看那篇文章吧。 |
|
|
[求助]关于内核use after free
知道申请同样大小的堆块啊,ring3程序正常申请肯定是申请的用户态的堆,如何控制申请内核态的堆,同时还要控制内容。文章里说了用SetWindowText可以做,请利用过内核use after free的大牛出来指点一下。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
勋章
兑换勋章
证书
证书查询 >
能力值