Exploit 编写教程第一篇:基于栈的溢出
译:看雪论坛-moonife-2009-11-16
上个星期五(2009.7.17),一个叫„Crazy_Hacker‟的人(nick)在 packetstormsecurity.org.
网站报告了一个存在于 Easy RM to MP3 Conversion Utility (on XP SP2 En)软件中的漏洞
(http://packetstormsecurity.org/0907-exploits/)。同时还发布了漏洞利用的 POC 代码(顺便
说下,在我的虚拟机 xp sp3 英文版中利用不成功)。没多久另一个 Exploit 也放了出来。
漂亮。你可以复制这个 POC 代码,运行它,也许看到它没利用成功(或者你真的幸运的话,
会成功的)。又或者你试着理解它并编译自己的可以成功利用的 Exploit;在者你就从头开始
编写自己的 Exploit。
在啰嗦下:除非你真能够快速的反汇编和读懂 shellcode,否则我建议你不要拿到一个 Exploit
(特别是已经编译了的可执行文件)就运行它,假如它仅仅是为了在你电脑上开一个后门
呢?
问题是:Exploit 作者是怎样开发他们的利用程序的呢?从检测可能存在的问题到编写可以
利用成功的 Exploit 这个过程是怎么样的呢?您如何使用漏洞信息,编写自己的 Exploit 呢?
自从我这个 Blog 的建立,写缓冲区溢出利用的基础教程就摆到了我“To Do”列表上了,但
是我真的没时间去写(要不就是忘了)。
今天当我看到这个漏洞报告的时候,大致看来一下它的利用,我意识到这个漏洞报告可以用
来做为展示如何编写基本的 Exlpoit 的完美案例。它的简洁可以让我用来展示编写有效和稳
定的基于缓冲区溢出的 Exlpoit 的一些技术。
所以现在也许是个好时机.....尽管这个漏洞已经有了一个 Exploit(无论它是否真的有效),我
依然用这个存在于 Easy RM to MP3 Conversion Utility 上漏洞作为一个案例来迈出我们编写
有效的 Exploit 的第一步,当然是在手上没有其他人给出 Exploit 的情形下。我们将从头开始
开发(环境是在 XP sp3 下)。
在我们开始之前,我先做如下声明:这个文档只作为纯粹的教育目的,我不想任何人用这个
文档上或我博客上的任何信息真的去攻击电脑或破坏行为。因此我对使用这些信息而做出的
破坏行为不负任何的责任。到时如果我不允许,你将不能继续访问我的网站,所以如果你怀
着龌龊的目的,请你马上离开!
不管怎么样,开始吧!通常你可以在漏洞报告中得到基本的信息。在本例中,基本信息有:
“通过创建一个恶意的.m3u 文件将触发 Easy RM to MP3 Converter version 2.7.3.700 缓冲区
溢出利用。”这些报告往往没什么特别之处,但在多数情况下,你会从中得到一些灵感来模
拟一次崩溃或让程序行为异常。如果没有,那么第一个发现的安全研究人员可能会透露给供
应商,给他们机会修补...或者只是想保密为他/她所用...
评论16
最新资源