首页
社区
课程
招聘
[技术专题]软件漏洞分析入门
2007-12-12 17:57 101763

[技术专题]软件漏洞分析入门

2007-12-12 17:57
101763
软件漏洞分析入门


1 引子

To be the apostrophe which changed “Impossible” into “I’m possible”

—— failwest

凉风有讯,秋月无边。

您是否梦想过能够像电影上演的那样黑进任意一台机器远程操控?您的梦想是否曾经被书店里边满架子的反黑,防毒,擒木马的扫盲书强暴的体无完肤?

从今天开始,准备陆续发一系列关于软件漏洞方面基础知识的帖子,包括软件漏洞的研究价值,研究方法,堆栈利用的基础知识,shellcode的调试方法,漏洞调试方法,漏洞分析,漏洞挖掘,软件安全性测试等等,此外还将介绍一些metasploit架构和fuzz测试方面的入门知识。

软件漏洞分析,利用,发掘是当今安全技术界中流砥柱级别话题,如果您关注过black hat或者defcon之类的顶级安全技术峰会的话,就知道我不是在吹牛了。可惜的是这方面的中文资料很少,偶尔有一篇比较优秀的文章但又不够系统,目前为止也没有形成像破解技术这样的讨论风气,菜鸟们在黑灯瞎火的夜晚瞎折腾,没有交流和指导,兴趣就像被拔了气弥儿芯的车胎,很快就泄气了。

虽然漏洞分析与利用与破解在技术上各有侧重点,但逆向基础是共同的。以我个人的经验,能做crack的朋友只要稍加进修就能入门。就算没有任何汇编基础和逆向经验的朋友也不用担心,因为这个系列的文章将完全面向菜鸟,只要会C语言,跟着文章用ollydbg调试几次连猜带蒙的也应该能够上手。

今天我们暂时不谈堆栈这些技术细节,先让我们从比较宏观的地方着手。

如果您经历过冲击波蠕虫病毒的攻击话,应该明白操作系统出现漏洞时的后果。

漏洞往往是病毒木马入侵计算机的突破口。如果掌握了漏洞的技术细节,能够写出漏洞利用(exploit),往往可以让目标主机执行任意代码。

软件漏洞的技术细节是非常宝贵的资料,尤其是当软件漏洞对应的官方补丁尚未发布时,只有少数攻击者秘密的掌握漏洞及其利用方法,这时往往可以通过漏洞hack任意一台internet上的主机!

这种未被公开的漏洞被称作zero day (0 day)。可以把0day理解成未公开的系统后门。由于0day的特殊性质和价值,使得很多研究者和攻击者投身于漏洞挖掘的行列。一个0day漏洞的资料根据其影响程度的不同,在黑市上可以卖到从几千元到几十万元不等的价钱。因此0day一旦被发现往往会被当作商业机密,甚至军事机密~~~~如果把冲击波蠕虫的shellcode从原先的一分钟倒计时关机改为穷凶极恶的格式化硬盘之类~~~~~那么花一百万买这样一个电子炸弹可比花一百万买一枚导弹来得划算~~~~~~试想一下某天早上起来发现全国的windows系统都被格式化,计算机系统完全瘫痪造成的影响和一颗导弹在城市里炸个坑造成的影响哪个更严重?

在今天这一讲的最后,让我们回顾一下几个可能曾经困惑过您的问题:

我从不运行任何来历不明的软件,为什么还会中病毒?

如果病毒利用重量级的系统漏洞进行传播,您将在劫难逃。因为系统漏洞可以引起计算机被远程控制,更何况传播病毒。横扫世界的冲击波蠕虫,slamer蠕虫等就是这种类型的病毒。
如果服务器软件存在安全漏洞,或者系统中可以被RPC远程调用的函数中存在缓冲区溢出漏洞,攻击者也可以发起“主动”进攻。在这种情况下,您的计算机会轻易沦为所谓的“肉鸡”。

我只是点击了一个URL链接,并没有执行任何其他操作,为什么会中木马?

如果您的浏览器在解析HTML文件时存在缓冲区溢出漏洞,那么攻击者就可以精心构造一个承载着恶意代码的HTML文件,并把其链接发给您。当您点击这种链接时,漏洞被触发从而导致HTML中所承载的恶意代码(shellcod)被执行。这段代码通常是在没有任何提示的情况下去指定的地方下载木马客户端并运行。

此外,第三方软件所加载的ActiveX控件中的漏洞也是被“网马”所经常利用的对象。所以千万不要忽视URL链接。

Word文档、Power Point文档、Excel表格文档并非可执行文件,他们会导致恶意代码的执行吗?

和html文件一样,这类文档本身虽然是数据文件,但是如果Office软件在解析这些数据文件的特定数据结构时存在缓冲区溢出漏洞的话,攻击者就可以通过一个精心构造的word文档来触发并利用漏洞。当您在用office软件打开这个word文档的时候,一段恶意代码可能已经悄无声息的被执行过了。

好,第一讲暂时结束,如果您有兴趣,不妨关注一下这个系列,说不定听完几讲之后会深深的爱上这个门技术。

顺便预告一下本系列讲座的内容:
2_漏洞利用,分析,挖掘概述
3_初级栈溢出A
4_初级栈溢出B
5_自制简单的shellcode
6_初级栈溢出C
7_windows下shellcode的开发
在后面嘛,还没确定下来,大概会给几个真实的windows漏洞调试案例,给大家一起交流

欢迎大家踊跃讨论,积极讨论,大肆讨论,猛烈讨论

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞8
打赏
分享
最新回复 (231)
雪    币: 32406
活跃值: (18800)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2007-12-12 18:06
2
0
这次特别邀请了赛门铁克的安全工程师failwest为PEDIY论坛组织了一个漏洞分析专题,这次专题定位在漏洞分析的普及入门阶段,在这感谢failwest为大家无私所做的一切!

软件公司很重视漏洞分析技术,漏洞的出现可能会影响到产品和用户的安全,及时发现或尽可能避免漏洞的出现,对企业发展具有重要的意义。对于正在找工作的朋友,除了掌握一些基本的调试分析技术,如果在漏洞分析与预防方面有所擅长,能提高自己就业的竞争力,对自己求职十分有帮助的。

这次漏洞普及结束后,等有机会,联系相关公司搞一些漏洞分析攻击比赛。
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
softworm 30 2007-12-12 18:08
3
0
西方失败,东方不败
雪    币: 334
活跃值: (17)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
likunkun 1 2007-12-12 18:12
4
0
太好了,顶顶顶!!!!
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
手链魔咒 2007-12-12 18:12
5
0
觉得病毒离我好远``
雪    币: 296
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
XiaosanAiq 2007-12-12 18:41
6
0
支持。。。支持!!
雪    币: 259
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
网络断魂 3 2007-12-12 19:11
7
0
这么精彩的贴子怎么不顶,继续关注中!
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
shoooo 16 2007-12-12 19:28
8
0
占个位子向西方失败学习
雪    币: 10123
活跃值: (1769)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wzmooo 2007-12-12 19:30
9
0
我也来看看哈哈
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pensive 2007-12-12 19:31
10
0
好铁!期待中。。。
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
soychino 2007-12-12 20:01
11
0
不错 ,学习!
雪    币: 222
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Leesan 2007-12-12 20:09
12
0
学习了
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
colboy 2007-12-12 20:23
13
0
[QUOTE=;]...[/QUOTE]
期待热切期待ing!!!!!!
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
北极星2003 25 2007-12-12 20:28
14
0
很好,支持!
雪    币: 235
活跃值: (23)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
hfyy 2 2007-12-12 20:29
15
0
期待。。。。。。。。
雪    币: 381
活跃值: (130)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
HSQ 8 2007-12-12 20:59
16
0
学习一下,争取能自己搞个0DAY
雪    币: 266
活跃值: (52)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
szdbg 5 2007-12-12 21:15
17
0
热切期待下文。。。
雪    币: 709
活跃值: (2240)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
sudami 25 2007-12-12 21:20
18
0
顶个~

学习啊~
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
hawking 12 2007-12-12 21:47
19
0

菜鸟们在黑灯瞎火的夜晚瞎折腾,没有交流和指导,兴趣就像被拔了气弥儿芯的车胎,很快就泄气了。

于我心有戚戚焉


这次专题定位在漏洞分析的普及入门阶段


再多些此类的普及入门系列 我等菜鸟就更是福份不浅了 (有句古话是怎么说的来着 人心不足啊 哈哈)
雪    币: 466
活跃值: (119)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
kusky 4 2007-12-12 21:50
20
0
感觉这帖子不好。楼主光夸夸而谈漏洞的威力与价值,好像发现漏洞就是为发黑财。抱着这样的态度来学习,实在不敢想象结果会怎样。
雪    币: 350
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
要学会编 2007-12-12 23:53
21
0
这是引子,楔子,序子,介子
雪    币: 175
活跃值: (211)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
DonQuixote 8 2007-12-13 00:03
22
0
强烈支持,我想学这个东西,呵呵
建议failwest的教程侧重于面向cracker读者,毕竟这论坛上大多数人都熟悉crack
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
combojiang 26 2007-12-13 00:11
23
0
,支持
雪    币: 314
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
throb 2007-12-13 00:26
24
0
没有得玩,溢出理论在vista 上如果没有突破的话,学了也是没有用。05年后,国外和国内都很萧条,除了fuzzing,javascript和驱动简单的bug 的有点玩外,这两年都没有发展了,找应用程序的漏洞很无聊。浏览器如果过不了IE 7的保护模式的话,肯定也很难溢出。还是等大牛把vista 研究透了再说
雪    币: 314
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
throb 2007-12-13 00:34
25
0
贴一下我原来在论坛里回复的帖子:
有一本叫非安全的杂志出的王炜写的window版的<<缓冲区溢出入门>>,比较简单,入入门,还有就是国外的几本溢出书,本站翻译的有,English好的话,最好看英文版,翻译的最好不要看,出来混的英语迟早要还的。自己搜一下,学一下写shellcode,yuangge,yellow,hume的溢出通用版.溢出从stack overflow(2002以前)->heap overflow(2002---)--> interget(整数?) overflow,还有就是2004-2005年的一些文件格式溢出的研究,也是整数溢出的一部分;内核溢出的一些研究。最近2年国内安全研究人员或者由于生计原因或者由于兴趣原因研究气氛不太好。有些都到国外公司工作了。hehe.
有三步可以走:
1.学习各种基本溢出理论:各种漏洞原理,以及shellcode 的编写
2.订阅安全邮件列表并跟随各个已发布的漏洞,写出自己的分析报告,并写出通用版的溢出程序
3.自己发现漏洞

到了第3步很难,2-3步的界限不太好区分,发现一个漏洞靠自己的运气,实力,安全模型....
其他的靠的是自己的天赋和实力,这辈子发现自己的0Day就要靠你自己了,呵呵
安焦的不推荐,太多体系了,又很精练,你如果没有切身经历的话.你不知道他说什么的,其实也很简单,不过跨度很大,当当手册就行了,也就是论坛帖子的纸版
游客
登录 | 注册 方可回帖
返回