windows系统典型漏洞分析

内存结构

 缓冲区溢出漏洞

        缓冲区溢出漏洞就是在向缓冲区写入数据时,由于没有做边界检查,导致写入缓冲区的数据超过预先分配的边界,从而使溢出数据覆盖在合法数据上而引起系统异常的一种现象。

ESP、EPB

        ESP:扩展栈指针(Extended Stack Pointer)寄存器,其存放的指针指向当前栈帧的栈顶。

        EBP:扩展基址指针(Extended Base Pointer)寄存器,其存放的指针指向当前栈帧的栈底。

        EIP:控制了进程的执行流程,EIP指向哪里,CPU就会执行哪里的指令!

一个函数栈帧中主要包含如下信息:

        1)前一个栈帧的栈底位置,即前栈帧EBP,用于在函数调用结束后恢复主调函数的栈帧(前栈帧的栈顶可计算得到)。

        2)该函数的局部变量。

        3)函数调用的参数。

        4)函数的返回地址RET,用于保存函数调用前指令的位置,以便函数返回时能恢复到调用前的代码区中继续执行指令。 

栈溢出攻击

        栈溢出攻击是一种利用栈溢出漏洞所进行的攻击行动,目的在于扰乱具有某些特权运行的程序的功能,使得攻击者取得程序的控制权。

JMP ESP覆盖方法

        在实际的漏洞利用中,由于动态链接库的装入和卸载等原因,Windows进程的函数栈帧可能发生移位,即Shellcode在内存中的地址是动态变化的,所以上述采用直接赋地址值的简单方式在以后的运行过程中会出现跳转异常。

        JMP ESP覆盖方法是覆盖函数返回地址的一种攻击方式。考虑到函数返回时ESP总是指向函数返回后的下一条指令,根据这一特点,如果用指令JMP ESP的地址覆盖返回地址,则函数也可以跳转到函数返回后的下一条指令,而从函数返回后的下一条指令开始都已经被Shellcode所覆盖,那么程序就可以跳转到该Shellcode上并执行,从而实现了程序流程的控制。

SEH覆盖方法

        SEH覆盖方法就是覆盖异常处理程序地址的一种攻击方式。由于SHE结构存放在栈中,因此攻击者可以利用栈溢出漏洞,设计特定的溢出数据,将SEH中异常函数的入口地址覆盖为Shellcode的起始地址或可以跳转到Shellcode的跳转指令地址,从而导致程序发生异常时,Windows异常处理机制执行的不是预设的异常处理函数,而是Shellcode。

堆溢出漏洞及利用 

        如果能够修改链表节点的指针,在“卸下”和“链入”的过程中就有可能获得一次读写内存的机会。

DWORD Shoot

        堆溢出利用的精髓就是用精心构造的数据去溢出覆盖下一个堆块的块首,使其改写块首中的前向指针(flink)和后向指针(blink),然后在分配、释放、合并等操作发生时伺机获得一次向内存任意地址写入任意数据的机会。 攻击者可以进而劫持进程,运行shellcode。

Heap Spray

        首先将shellcode放置到堆中,然后在栈溢出时,控制函数执行流程,跳转到堆中执行shellcode。

格式化串漏洞

        格式化串漏洞的产生源于数据输出函数中对输出格式解析的缺陷,其根源也是C语言中不对数组边界进行检查的缓冲区错误。

        printf函数进行格式化输出时,会根据格式化串中的格式化控制符在栈上取相应的参数,然后按照所需格式输出。 如果函数调用给出的输出数据列表少于格式控制符个数,甚至于没有给出输出数据列表,系统仍然会按照格式化串中格式化控制符的个数输出栈中的数据。

格式化串漏洞利用

格式化串漏洞的利用可以通过如下方法实现:

        通过改变格式化串中输出参数的个数实现修改指定地址的值:可以修改填充字符串长度实现;也可以通过改变输出的宽度实现,如%8d。

         通过改变格式化串中格式符的个数,调整格式符对应参数在栈中位置,从而实现对栈中特定位置数据的修改。

Windows平台溢出漏洞保护机制

栈溢出检测选项/GS

        调用函数时将一个随机生成的秘密值存放在栈上,当函数返回时,检查这个堆栈检测仪的值是否被修改,以此判断是否发生了栈溢出。

对抗/GS保护

  • 猜测Cookie值
  • 通过同时替换栈中的Cookie和Cookie副本
  • 覆盖SEH绕过Cookie检查
  • 覆盖父函数的栈数据绕过Cookie检查

数据执行保护DEP

        通过使可写内存不可执行或使可执行内存不可写来消除类似的威胁。

        执行已经加载的模块中的指令或调用系统函数则不受DEP影响,而栈上的数据只需作为这些函数/指令的参数即可。

对抗数据执行保护DEP

  • 利用ret-to-libc执行命令或进行API调用,如调用WinExec实现执行程序。
  • 将包含Shellcode的内存页面标记为可执行,然后再跳过去执行。
  • 通过分配可执行内存,再将Shellcode复制到内存区域,然后跳过去执行。
  • 先尝试关闭当前进程的DEP保护,然后再运行Shellcode。 

地址空间布局随机化ASLR 

        通过对堆、栈、共享库映射等线性区域布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止漏洞利用的目的。

ASLR机制的缺陷和绕过方法 

  • 对本地攻击者无能为力
  • 造成内存碎片的增多
  • 利用没有采用/DYNAMICBASE选项保护的模块做跳板   

安全结构化异常处理SafeSEH 

        SafeSEH保护机制的作用是防止覆盖和使用存储栈上的SEH结构。

        其实现原理是,编译器在链接生成二进制IMAGE时,把所有合法的异常处理函数的地址解析出来制成一张安全的SEH表,保存在程序的IMAGE数据块里面,当程序调用异常处理函数时会将函数地址与安全SEH表中的地址进行匹配,检查调用的异常处理函数是否位于该表中。

        微软在.Net编译器中加入了/safeSEH连接选项。

对抗SafeSEH机制的方法

  • 利用未启用SafeSEH的模块作为跳板进行绕过
  • 利用加载模块之外的地址进行绕过

增强缓解体验工具包EMET

  • 增强型DEP
  • SafeSEH的升级版——SEHOP
  • 强制性ASLR
  • HeapSpray防护
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
公司网络安全管理策略 一、网络概况 随着公司信息化水平的逐步提高,网络安全与否,直接关系到油田生产和科研的正常 进行。网络安全是一个系统的、全局的管理问题,网络上的任何一个漏洞,都会导致全 网的安全问题。如果不进行有效的安全防护,网络信息系统将会受到具有破坏性的攻击和 危害。 公司网络按访问区域可以划分为四个主要的区域:公司内部局域网、服务器群、外部In ternet区域. 二、 网络系统安全风险分析 随着公司客户和内部局域网上网用户迅速增加,风险变得更加严重和复杂。有一个安全 、稳定的网络环境对于公司的运营来说至关重要。   针对公司网络中存在的安全隐患,下述安全风险我们必须要认真考虑,并且要针对面临的 风险,采取相应的安全措施.下述风险由多种因素引起,与公司网络结构和系统的应用、 局域网内网络服务器的可靠性等因素密切相关。下面列出部分这类风险因素: 网络安全可以从以下三个方面来理解:1 网络物理是否安全;2 网络平台是否安全;3 系统是否安全;4 应用是否安全;5 管理是否安全。针对每一类安全风险,结合公司网络的实际情况,我们将具体的分析网络 的安全风险。 2。1物理安全风险分析  网络的物理安全的风险是多种多样的。 网络的物理安全主要是指地震、水灾、火灾等环境事故;电源故障;人为操作失误或错误 ;设备被盗、被毁;电磁干扰;线路截获。以及高可用性的硬件、双机多冗余的设计、机 房环境及报警系统、安全意识等。它是整个网络系统安全的前提,所以要制定制定健全的 安全管理制度,做好备份,并且加强网络设备和机房的管理,这些风险是可以避免的。 2。2网络平台的安全风险分析   网络结构的安全涉及到网络拓扑结构、网络路由状况及网络的环境等。 公开服务器面临的威胁   公司网络内公开服务器区作为公司的缴费运营平台,一旦不能运行后者受到攻击,对企业 的运营影响巨大。同时公开服务器本身要为外界服务,必须开放相应的服务,因此,规模 比较大网络的管理人员对Internet安全事故做出有效反应变得十分重要。我们有必 要将公开服务器、内部网络与外部网络进行隔离,避免网络结构信息外泄;同时还要对外 网的服务请求加以过滤,只允许正常通信的数据包到达相应主机,其他的请求服务在到达 主机之前就应该遭到拒绝.这些任务主要通过对路由、防火墙的设置来实现。 2.3系统的安全风险分析 所谓系统的安全显而易见是指整个局域网网络操作系统、网络硬件平台是否可靠且值得 信任。  网络操作系统、网络硬件平台的可靠性:对于中国来说,恐怕没有绝对安全的操作系统 可以选择,无论是Microsoft的Windows NT或者其他任何商用UNIX操作系统,其开发厂商必然有其Back- Door。我们可以这样讲:没有完全安全的操作系统.但是,我们可以对现有的操作平台 进行安全配置、对操作和访问权限进行严格控制,提高系统的安全性。因此,不但要选用 尽可能可靠的操作系统和硬件平台。而且,必须加强登录过程的认证(特别是在到达服务 器主机之前的认证),确保用户的合法性;其次应该严格限制登录者的操作权限,将其完成 的操作限制在最小的范围内。 2.4应用的安全风险分析  应用系统的安全跟具体的应用有关,它涉及很多方面。应用系统的安全是动态的、不 断变化的。应用的安全性也涉及到信息的安全性,它包括很多方面。    应用的安全性涉及到信息、数据的安全性:信息的安全性涉及到:机密信息泄露、未经 授权的访问、破坏信息完整性、假冒、破坏系统的可用性等.对于公司开发的软件的数据 安全性问题,可以针对具体的应用直接在应用系统开发时进行加密。 2.5管理的安全风险分析 管理是网络安全中最重要的部分  管理是网络中安全最最重要的部分。责权不明,管理混乱、安全管理制度不健全及缺乏 可操作性等都可能引起管理安全的风险。责权不明,管理混乱,使得一些员工或管理员随 便让一些非本地员工甚至外来人员进入机房重地,或者员工有意无意泄漏他们所知道的 一些重要信息,而管理上却没有相应制度来约束。 建立全新网络安全机制,必须深刻理解网络并能提供直接的解决方案,因此,最可行的做法 是管理制度和管理解决方案的结合. 2。6黑客攻击 黑客们的攻击行动是无时无刻不在进行的,而且会利用系统和管理上的一切可能利用的漏 洞。公开服务器存在漏洞的一个典型例证,是黑客可以轻易地骗过公开服务器软件,得到 服务器的口令并将之送回。黑客侵入服务器后,有可能修改特权,从普通用户变为高级用 户,一旦成功,黑客可以直接进入口令。在公司的局域网内我们可以综合采用防火墙技术 、Web页面保护技术、入侵检测技术、安全评估技术来保护网络内的信息资源,防止黑 客攻击。 2。7病毒的攻击   计算机病毒一直是计算机安全的主要威胁.现在很多病毒都是通过Internet传播,并且病

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笨笨同学‍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值