原帖:https://bbs.pediy.com/thread-226364.htm 作者:luobobo

GS

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


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

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

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

SEHOP

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

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

突破思路二:覆盖虚表
常见的调用虚函数模式如:
mov esi, dword ptr [eax]
mov ecx, dword ptr [esi+?h]
call

ASLR

开启ASLR后,系统在加载可执行程序、动态链接库等映像文件时会对其加载位置进行随机化处理,使得重启后每次加载进内存的基址不同。

突破思路:https://paper.seebug.org/182/
在CVE-2012-1876中,我们通过堆溢出读取Button对象中虚表的值,由于该值与mshtml模块基址偏移值固定,从而可计算出mshtml.dll模块基址。

在堆布局中,我们大量构造多个String E、A、B、Button object这样排列的内存模块。其中E、A、B均为BSTR,包含头部四字节的String Size以及两字节的块尾。之后我们释放掉部分内存模块中的String E,再为Column样式分配内存。由于其内存大小与释放掉的String E内存大小近似,Column样式将会被分配在其中某一个内存模块中之前String E所在布局位置中。Exp中通过js代码修改其写入的内存,导致覆盖String B的Sting Size为一较大值,扩大string B的可读范围,获取到Button对象中虚表vftable的值,通过计算可得到mshtml.dll模块基址。

DEP

数据执行保护(DEP) 是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码,拒绝运行被标记为不可执行内存页的代码。

突破思路: 利用ROP(返回导向编程)绕过DEP。
首先我们应该了解Gadget的概念,ROP链就是由一个个小部件Gadget组成的。Gadget指以RET结尾的指令序列,由于RET指令等价于pop + jmp,因此在我们可控栈空间布局的情况下,通过精心设计即可控制代码实现流程。在此基础下通过在shellcode前构造ROP链,执行VirtualAlloc这样的API修改内存页的属性为可执行。

EAF/EAF+

导出地址表过滤,当前绝大部份shellcode在运行时需要通过遍历相应模块导出表来搜索API地址,EAF通过对ntdll.dll、Kernel32.dll和Kernelbase.dll导出地址表相应位置下硬件断点来拦截在攻击载荷中查找API地址的shellcode。同时还检测MZ/PE读取以及堆栈指针是否指向堆栈边界之外的某处或者是否与堆栈指针之间不匹配。 突破思路:通过创建Blob对象,调用了未被限制的ntdll模块,从而解决安全限制问题。

突破思路:通过创建Blob对象,调用了未被限制的ntdll模块,从而解决安全限制问题。 https://www.slideshare.net/CanSecWest/csw2016-gawlik-bypassingdifferentdefenseschemes?qid=7ed6ffea-695a-438e-a224-44dc3f6ece06&v=&b=&from_search=3

CFG

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

EPM

启用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已被修复)

常见的漏洞缓解技术整理相关推荐

  1. 嵌入式系统——系统安全之常见病毒漏洞刷题整理

    系统安全之常见病毒漏洞 蠕虫病毒   蠕虫是一种可以自我复制的代码,并且通过网络传播,通常无需人为干预就能传播.蠕虫病毒入侵并完全控制一台计算机之后,就会把这台机器作为宿主,进而扫描并感染其他计算机. ...

  2. Linux系统漏洞复现分析,Linux环境下常见漏洞利用技术

    记得以前在drops写过一篇文章叫 linux常见漏洞利用技术实践 ,现在还可以找得到(https://woo.49.gs/static/drops/binary-6521.html), 不过当时开始 ...

  3. linux内核提取ret2usr,Linux内核漏洞利用技术详解 Part 2

    前言 在上一篇文章中,我们不仅为读者详细介绍了如何搭建环境,还通过一个具体的例子演示了最简单的内核漏洞利用技术:ret2usr.在本文中,我们将逐步启用更多的安全防御机制,即SMEP.KPTI和SMA ...

  4. 认识二进制安全与漏洞攻防技术 (Windows平台)

    二进制漏洞是指程序存在安全缺陷,导致攻击者恶意构造的数据(如Shellcode)进入程序相关处理代码时,改变程序原定的执行流程,从而实现破坏或获取超出原有的权限. 0Day漏洞 在计算机领域中,0da ...

  5. 鸿蒙OS架构及关键技术整理

    鸿蒙OS架构及关键技术整理 一. 鸿蒙OS整体介绍 二. 子系统架构 三. 关键技术 四. 参考资料 一. 鸿蒙OS整体介绍 HarmonyOS简介 原作者:xiangzhihong8 前两天,华为发 ...

  6. 常见web漏洞及防范(转)

    单个漏洞,需要进行排查与整改,借着别人的智慧,做一个简单的收集.最好能够将常见漏洞,不限于web类的,进行一个统一的整理.这是今年的任务. 进行漏洞的工具的收集,为未来的工作做好基础... 一.SQL ...

  7. 常见的web攻击技术

    今天看图解http,里面讲了些常见的web攻击技术,写一个博客对其原理及其应对方式进行一个整理 1.xss跨站攻击技术:主要是攻击者往网页里嵌入恶意脚本,或者通过改变html元素属性来实现攻击,主要原 ...

  8. Windows漏洞利用技术概述

    Windows漏洞利用技术总结 1. 前言 本文是我对漏洞利用技术的学习总结,也是自己践行QAD (Questions.Answer.Discussions)的一次实践.本文通过阅读几位大牛的文章.演 ...

  9. 信息安全-网络安全漏洞防护技术原理与应用

    一.网络安全漏洞概述 1.1 网络安全漏洞概念 网络安全漏洞:又称为脆弱性,简称漏洞.漏洞一般是致使网络信息系统安全策略相冲突的缺陷,这种缺陷通常称为安全隐患 安全漏洞的影响:主要有机密性受损.完整性 ...

  10. 常见web漏洞验证攻略(萌新入坑必备!)

    常见web漏洞验证攻略(萌新入坑必备 首先,祝大家愚人节快乐,玩笑有度,"愚"人同乐. 其次,回想当年刚入坑的时候了解的比较少,也没人带,一般过去就是xss,后来xss的防护了,就 ...

最新文章

  1. 图像识别-opencv
  2. 【Apache】 LXC 容器中重启 Apache 报错: Failed to set up mount namespacing: Permission denied
  3. HiveDuino开发套件
  4. C语言中.和->区别
  5. php 取数值整数的函数是,PHP取整数函数常用的四种方法小结
  6. 趋势 | AI技能排行榜:TensorFlow热度飙升,Python最火
  7. 子类怎么继承父类方法中的变量_关于继承的那些事!
  8. linux dpkg未找到命令_Linux安装软件时90%的人会遇到这个报错,如何解决?
  9. web.xml filter 不包含_PHP文件包含
  10. linux 测试网络端口通不通_【干货】网络中的各种互通与不通
  11. CSS Friendly 中的DetailsView的问题
  12. Atitit 可读性技术与实践范例 艾提拉著 目录 1. 提升可读性的技术类 2 1.1. 本地化命名封装 2 1.2. 表格映射表代替选择 2 1.3. 1.2. Dsl 提升抽象到dsl级别 2
  13. 营业执照在线生成_潍坊发出全省首张覆盖四大市场主体类型的“微信秒批”营业执照...
  14. 个别海康摄像机通过国标GB28181接入EasyCVR,视频无法打开的解决办法
  15. linux磁盘组修复,Linux磁盘坏道的检测及修复
  16. 时间换算:UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8
  17. ctfhub Git泄露学习
  18. UNIX的spctl命令
  19. 最新小旋风蜘蛛池X6.21解密版+绕过授权带教程
  20. 【已解决】Windows系统中提示,文件下载失败,检测到病毒

热门文章

  1. python可视化数据分析-纯干货:手把手教你用Python做数据可视化(附代码)
  2. 目标识别笔记:鸢尾花数据集决策树/随机森林MATLAB仿真
  3. 初学者教你如何连接数据库
  4. 在线钢琴练习小工具,很好玩!!!
  5. ResNet-50模型图像分类示例
  6. 全国移动联通电信基站数据(2014年5月更新升级包)
  7. HVV行动之态势感知平台(一)
  8. GEE上传、导出数据文件报错
  9. Element的MessageBox 弹框如何自定义图标
  10. ctfshow 网络迷踪-目之所及