首页
社区
课程
招聘
[原创]漏洞缓解技术整理总结
发表于: 2018-4-27 01:13 5483

[原创]漏洞缓解技术整理总结

2018-4-27 01:13
5483

通过在间接跳转前插入校验代码,检查目标地址的有效性,进而可阻止执行流跳到预期之外的地点,最终及时有并效的进行异常处理。

启用EPM后渲染过程将在拥有网络隔离的AppContainer沙箱内运行,阻止沙箱进程和本地机器建立连接,并且阻止它接受新的网络连接。(Internet Explorer中不同的安全设置对应不同的zone:Internet上的页面通常在Internet Zone里进行渲染,本地内网上的页面则在Local Intranet Zone里进行渲染)


 https://paper.seebug.org/196/中提到,由Internet Explorer的PlainHostName规则可知,如果域名不包含任何句点,则将被自动映射到Local Intranet Zone。并且AppContainer的网络隔离功能仍允许沙箱进程向本地137端口发送UDP数据。所以可通过NetBIOS Spoofing注册符合条件的域名信息,遍历NBNS数据包中的负责校验的两字节TXID字段以获得正确结果。(该方法在MS16-077已被修复)


未开启GS时函数调用的系统栈的变化过程:

函数中的局部变量将从ESP所指的位置向下压栈,当写入的内存过大时,将会覆盖返回地址造成异常。

开启GS后,函数调用时会将一个DWORD随机数与ESP亦或后压入栈内,同时将其副本保存在.data段。在函数返回前,将有一个安全验证操作,防止函数返回地址被修改。

突破思路:覆盖异常处理机制 因为GS是在函数返回时检测,所以我们可以在返回前使程序发生异常,再覆盖异常处理函数达到EIP劫持。

SEHOP会检测SEH链的完整性,保证SEH链上最后一个异常处理函数是否为系统ntdll中的最终异常处理函数。


突破思路一:伪造SEH链 
具体条件: 
(1)当前覆盖Next SEH的值0xXXXXXXXX必须指向当前栈且能被4整除。 
(2) 0xXXXXXXXX处存放为SEH最后一项,0xXXXXXXXX+4指向ntdll中最终异常处理函数 
(3)未开启ASLR保护 

 突破思路二:覆盖虚表 
 常见的调用虚函数模式如: 

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2018-4-27 10:02 被luobobo编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (4)
雪    币: 2575
活跃值: (502)
能力值: ( LV2,RANK:85 )
在线值:
发帖
回帖
粉丝
2
很适合新手!赞!
2018-4-27 09:06
0
雪    币: 2694
活跃值: (80)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
3
学习了
2018-4-27 09:41
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2018-4-27 10:59
0
雪    币: 506
活跃值: (156)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
5
****
最后于 2019-2-1 12:10 被kanxue编辑 ,原因:
2018-5-4 10:30
0
游客
登录 | 注册 方可回帖
返回
//