如何在3个月发现12个内核信息泄露漏洞陈唐晖李龙百度安全实验室2019目录0.
我是谁1.
认识漏洞2.
研究漏洞堆栈数据污染检测漏洞技术CVE实例分析3.
成果4.
总结和思考我是谁百度安全实验室资深安全研发工程师百度杀毒、卫士主防设计者和负责人十多年的windows内核研究和开发经验深谙Rootkit技术,内功深厚,剑法独到偶然涉入漏洞挖掘领域TanghuiChenchenhui00530@163.
com什么是内核信息泄露漏洞Windows内核存在很多信息泄露漏洞,可能导致绕过KASLR或系统关键信息泄露,攻击者可以利用它们得到一些重要信息,比如:加密密钥内核对象关键模块地址…漏洞是如何产生的如CVE-2018-84431.
用户态调用ZwDeviceIoControlFile(.
.
.
,0x7d008004,Output,…);2.
ZwDeviceIoControlFile经过系统调用进入内核3.
返回用户态后,Output包含内核栈中未初始化的数据现有的挖掘技术BochsPwnCPU指令模拟DigTool重量级VT技术插桩…挖掘信息泄露漏洞的方法第1步:堆/栈数据污染方法HookKiFastCallEntry,内核栈污染HookExAllocatePoolWithTag,内核堆污染对堆和栈的内存数据填充特殊标志数据,如AA等在HookKiFastCallEntry中,通过IoGetStackLimits获取内核栈内存,填充特殊标志数据IoGetStackLimits(&LowLimit,&HighLimit);__asm{xoreax,eax;moval,g_cFlags;//0xAAmovedi,LowLimit;movecx,Esp_Value;subecx,LowLimit;cld;repstosb;}栈的污染在调用ExAllocatePoolWithTag分配内存时,填充特殊标志数据PVOIDNTAPIHOOK_ExAllocatePoolWithTag(.
.
.
){PVOIDBuffer=NULL;Buffer=pfn_ExAllocatePoolWithTag(PoolType,NumberOfBytes,Tag);if(Buffer){memset(Buffer,g_cFlags,NumberOfBytes);//将内存初始化特殊数据,如0xAA}returnBuffer;}堆的污染堆栈数据污染的思考堆和栈数据污染技术相对简单,并不存在方法优劣内存中可能存在和污染标记相同的数据,有误报的可能性采用随机污染标记减少误报第2步:数据检测技术研究目前已经有基于CPU指令模拟、VT等数据检测技术.
那是否还有更简捷的方法呢数据检测技术研究经过探索,我们提出了三种新的用于数据检测技术:Nirvana(首次应用于内核信息泄露漏洞挖掘)memcpy/memmove,后称memcpy(最轻量级的方法)movsdNirvana是Microsoft提供的一个轻量级的动态translation框架,可用于监视和控制正在运行的进程的执行,而无需重新编译或构建进程中的任何代码(fromHookingNirvana@AlexIonescu),首次被我们应用于内核信息泄露漏洞挖掘.
通过Nirvana可设置系统调用返回到用户态时的回调函数,在回调函数中能够检测栈数据.
ZwSetInformationProcess(NtCurrentProcess(),ProcessInstrumentationCallback,&Info64,sizeof(Info64));typedefstruct_PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION{ULONG_PTRVersion;ULONG_PTRReserved;ULONG_PTRCallback;}PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION;Nirvana概述__declspec(naked)VOIDInstrumentationCallback(){__asm{//代码有省略.
.
.
moveax,fs:[0x8];movedi,fs:[0x4];cmpdwordptr[eax],g_cFlag;//如0xAAAAAAAAjz__find;addeax,4;cmpeax,edi;//代码有省略.
.
.
jmpdwordptrfs:[0x1B0];}}Nirvana检测技术的实现Nirvana捕获到的现场16Nirvana检测技术的优点WindowsVista之后系统都支持Nirvana使用系统提供接口,实现非常简单兼容性好Nirvana检测技术的缺陷只能检测栈数据,几乎无法检测堆数据抓不到泄露现场,分析和编写POC相对困难memcpyWindows内核层向应用层写入数据一般都使用memcpy/memmovekernelspaceuserspace用户态内存内核态内存memcpy(dst,src,size);检测Hookmemcpy/memmove,检测dst是否用户态内存,数据是否包含特殊标志数据void*__cdeclHOOK_memcpy(void*dst,void*src,size_tcount){//代码有省略.
.
.
if((ULONG_PTR)dstMmSystemRangeStart){pOffset=(PUCHAR)src;while(pOffset<=(PUCHAR)src+count-sizeof(DWORD)){if(*(DWORD*)pOffset==g_dwDwordFlags){//checked}}}//代码有省略.
.
.
}memcpy检测技术的实现memcpy检测技术特点实现简单,性能突出几乎没有性能损失兼容性好能够抓到漏洞第一现场,分析和编写POC简单优点突出,几无缺点memcpy深入研究size为变量,直接调用memcpysize为常数,memcpy被优化size为较大常数,优化为movsdmemmove不会被优化movsd检测方法探索memcpy会被优化成了什么最终都是编译成movsd指令通过movsd检测数据解决极个别情况下memcpy覆盖面不够的问题movsd如何实现检测movsddst,src;(F3A5)int20h;(CD20)都是两字节扫描nt模块代码段,替换所有movsd为int20h自定义int20h中断处理函数,KiTrap20KiTrap20中检测内存数据if(*(WORD*)pOffset==0xA5F3){//repmovsdwordptres:[edi],dwordptr[esi]MdlBuffer=GetMdlBuffer(&Mdl,pOffset,2);*(WORD*)MdlBuffer=0x20CD;//int20}__declspec(naked)VOIDHOOK_KiTrap20(){__asm{//代码有省略.
.
.
pushfd;pushad;callDetectMemory;popad;popfd;repmovsdwordptres:[edi],dwordptr[esi];//也可以检测类似指令iretd;}//代码有省略.
.
.
}movsd检测技术的实现VOIDDetectMemory(PVOIDDestAddress,PVOIDSrcAddress,SIZE_TSize){//代码有省略.
.
.
if((ULONG_PTR)DestAddress.
.
}}movsd检测技术的实现movsd检测技术特点检测数据较memcpy覆盖更全面能够抓到漏洞第一现场,分析和编写POC简单第3步:漏洞分析捕获到疑似漏洞时,通过调试器现场分析确认让代码执行回到用户态,确认用户态内存中是否存在特殊标志数据,如果存在那么就是内核信息泄露漏洞通过分析调用栈和逆向用户态的系统调用的相关代码,编写POC漏洞分析有些漏洞内存经过多次拷贝,造成分析和编写POC非常困难我们专门实现了一套内存追踪的工具来辅助分析,支持:内存trace内存条件断点这是win1017134x64检测到的一个漏洞现场,该漏洞已分配CVE-2018-8443CVE实例分析回溯到mpssvc.
dll,确认用户态内存是否包含特殊标记CVE实例分析回溯到mpssvc.
dll,找到漏洞触发代码CVE实例分析CVE实例分析最终完成pocCVE实例分析使用三个月就已挖掘windows内核信息泄露漏洞12个,都已分配CVE其中7个CVE获得当时最高5000$奖金成果思考仅此而已吗…用户态内存只读(去掉PTE写位)反向追踪…ThankyouTanghuiChenchenhui00530@163.
com
快云科技怎么样?快云科技是一家成立于2020年的新起国内主机商,资质齐全 持有IDC ICP ISP等正规商家。云服务器网(yuntue.com)小编之前已经介绍过很多快云科技的香港及美国云服务器了,这次再介绍一下新的优惠方案。目前,香港云沙田CN2云服务器低至29元/月起;美国超防弹性云/洛杉矶CUVIP低至33.6元/月起。快云科技的云主机架构采用KVM虚拟化技术,全盘SSD硬盘,RAID10...
麻花云在7月特意为主机测评用户群定制了促销活动:香港宽频CN2云服务器、安徽移动云服务器(BGP网络,非单线,效果更好)、安徽移动独立服务器、安徽电信独立服务器,全部不限制流量,自带一个IPv4,默认5Gbps的DDoS防御。活动链接:https://www.mhyun.net/act/zjcp特价云服务器不限流量,自带一个IPv4,5Gbps防御香港宽频CN2全固态Ⅲ型 4核4G【KVM】内存:...
标题【萤光云双十二 全场6折 15元/月 续费同价】今天站长给大家推荐一家国内云厂商的双十二活动。萤光云总部位于福建福州,其成立于2002 年。主打高防云服务器产品,主要提供福州、北京、上海 BGP 和香港 CN2 节点。萤光云的高防云服务器自带 50G 防御,适合高防建站、游戏高防等业务。这家厂商本次双十二算是性价比很高了。全线产品6折,上海 BGP 云服务器折扣更大 5.5 折(测试了一下是金...
8个CPU新漏洞为你推荐
centos6.5linux centos 6.5 怎么安装软件美要求解锁iPhone苹果美版有锁和无锁的区别支付宝账户是什么支付宝帐号,指的是什么帐号 是网营密码吗腾讯公司电话是多少腾讯公司电话是多少免费代理加盟哪有免费的代理可以做的?申请400电话400电话申请怎么办理?是不是免费的?商务软件EDI软件 包括那些软件?无忧代理网无忧考网怎么样建站无忧求好点的免费建站网discuz 代码谁能帮我把本地设置好的DISCUZ x2.5论坛放上服务器?或者怎么弄?能详细说下嘛?
.cn域名注册 长沙服务器租用 老左 亚洲大于500m highfrequency godaddy主机 国内永久免费云服务器 国外空间 租空间 怎么测试下载速度 服务器维护方案 美国免费空间 上海联通宽带测速 卡巴斯基是免费的吗 web服务器是什么 lamp架构 cdn网站加速 网页加速 美国迈阿密 七十九刀 更多