博客网 >

编写exploit(二)
作者:分类:默认分类标签:

      昨天,我们简单的讨论了一下如何在xp sp2的环境下制造缓冲区溢出。相信大家都还记得,sp2使用了特殊的堆栈段保护手段,从而使得常用的缓冲区溢出制造方式在sp2下失效。为了更加容易的在今后制造溢出,编写exploit,今天就让我们讨论一下sp2的这个功能。

      按照ms官方的说明,该功能叫做数据执行保护(DEP),用以禁止执行数据页中的代码。当程序尝试运行标记的数据页中的代码时,就会立即发生异常并禁止执行代码,从而防止攻击者使用代码致使数据缓冲区溢出,然后执行该代码。DEP与防火墙或杀毒软件不同,它不能阻止在机器上安装有害软件,但是,它能够通过监视运行的程序,以确定程序是否安全的使用系统内存。因此,DEP会将某些内存位置标识为不可执行,如果程序(不管是否为恶意代码)尝试从受保护的位置运行代码,DEP将关闭该程序,并发出一个异常报告。

      同时,ms还提供了对堆管理结构中双向链表操作的sanity检查,检查的内容主要包括内存块前后的指针是否相等及是否正好是该块地址,以及该块的标识是否正确。目前,除非dep程序自身存在漏洞,否则还没有合适的方法来制造xp sp2的缓冲区溢出。

      现在再来回头看看我昨天那篇文章里的那段缓冲区溢出制造的程序,我是通过函数bug自己构造一个对自身的溢出,但是,这样的函数在现实存在的程序中是不存在的。难道sp2已经彻底的将缓冲区溢出封印了吗?bug的怨魂在无底地狱中咆哮,希望还是非常的渺茫......

      还有一点或许是希望,就是vc++的/od选项,会影响到windows的堆栈分配,总是会为堆栈多分配10H字节,但是这些多分配的空间也是不能使用的。不知道这一块是为什么而分配的,或许这里会存在有攻破sp2防线的可能......

      p.s. 一篇比较好的文章是Alexander写的Defeating Microsoft Windows XP SP2 Heap protection and DEP bypass,虽然有些老了,还是建议大家去看看。

<< 如何跟踪目标人物并获取信息 / 编写exploit(一) >>

专题推荐

不平凡的水果世界

不平凡的水果世界

平凡的水果世界,平凡中的不平凡。 今朝看水果是水果 ,看水果还是水果 ,看水果已不是水果。这境界,谁人可比?在不平凡的水果世界里,仁者见仁,智者见智。

中国春节的那些习俗

中国春节的那些习俗

正月是农历新年的开始,人们往往将它看作是新的一年年运好坏的兆示期。所以,过年的时候“禁忌”特别多。当然,各个地方的风俗习惯不一样,过年的禁忌也是不一样的。

评论
0/200
表情 验证码:

Romeo

  • 文章总数0
  • 画报总数0
  • 画报点击数0
  • 文章点击数0
个人排行
        博文分类
        日期归档