详解Intel漏洞怎么拿到内核数据的

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TV8MbnO2Y2RfU/article/details/78979612

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


上一篇文章中冬瓜哥向大家介绍了处理器提前执行导致的问题,介绍了一种hack方式。但是并没有介绍用户态是如何通过这个漏洞直接把内核区的数据dump出来的。这看上去好像是天方夜谭,OS内核的一个基本底线是用户态代码不可能直接看到内核态代码,而这个底线就这样被轻易突破了。这也是为何一瞬间各大云提供商如坐针毡的原因,有些PC用户已经接到了微软推送的补丁并已经安装,经过测试的确性能有了下降。


本文冬瓜哥就为大家介绍一下具体的hack思路,本质上其实非常简单。详情见下面链接:https://googleprojectzero.blogspot.co.at/2018/01/reading-privileged-memory-with-side.html


这个方法简直巧妙的令人难以置信。请看下面代码,摘自上面链接。其基本思想是,先越界访问,用一个越界的变量去寻址内核态数据,将读出的数据当做一个索引,与1按位与之后去寻址一个用户态的数组。让CPU的猜测执行将该数组的数据载入cache,然后考察读取两个不同数组元素,第(value&1)==0项以及(value&1)==1项,例子中就是0x200和0x300处的值,看看这两个谁返回的快,就证明value的第1个bit是1还是0,value就是内核数据。这样不断的per bit的尝试,最终dump出全部内核数据,内核裸奔~~泪哗哗的流!

0?wx_fmt=png

dump完了有什么用?直接分析出敏感地点,趁虚而入,或者动态的dump出数据。如下面视频所示,一边输入密码,一边就被dump出来了,因为hack程序分析出来内核中存放输入密码的内存地址,眼泪蹦出~~~!!


0?wx_fmt=png

扫描二维码关注公众号,回复: 5136839 查看本文章

猜你喜欢

转载自blog.csdn.net/TV8MbnO2Y2RfU/article/details/78979612