本书内容导读
本书分为4篇,共17章。
第1篇 基础知识
第1章 漏洞概述
简介漏洞研究中的一些基础概念和原理
第2章 二进制文件概述
不管是漏洞挖掘,漏洞分析还是漏洞利用,我们所面对的都是二进制、机器码、内存地址。第2章将简单介绍Windows平台下可执行文件的结构和内存方面的一些基础知识。PE文件和虚拟内存的细节枯燥乏味,长篇累牍地介绍很容易让人失去学习的兴趣和激情。但在进行静态反汇编和动态调试的过程中,如果没有PE和虚拟内存方面的基础知识,您甚至无法把反汇编的内容和正在执行的指令对应起来。根据漏洞分析的特点,这章给出了调试漏洞所必须的二进制基础知识。
第3章 必备工具
第3章介绍了一批漏洞分析中经常使用的软件工具。包括调试工具、反汇编工具、二进制编辑工具等。您会在后面的调试实验中反复见到这些工具的身影。在这章的最后一节,我设计了一个非常简单的破解小实验,用于实践工具的应用,消除您对二进制的恐惧感,希望能够给您带来一些乐趣。
第2篇 漏洞利用
第4章 栈溢出利用
基于栈的溢出是最基础的漏洞利用方法。第4章首先用大量的示意图,深入浅出地讲述了操作系统中函数调用、系统栈操作等概念和原理;随后通过三个调试实验逐步讲解如何通过栈溢出,一步一步地劫持进程并植入可执行的机器代码。即使您没有任何汇编语言基础,从未进行过二进制级别的调试,在本章详细的实验指导下也能轻松完成实验,体会到exploit的乐趣。
第5章 开发shellcode的艺术
第5章紧接第4章的讨论,比较系统地介绍了溢出发生后,如何布置缓冲区、如何定位shellcode、如何编写和调试shellcode等实际的问题。第5章的最后两小节还给出了一些编写shellcode的高级技术,供有一定汇编基础的朋友参考。
第6章 堆溢出利用
在很长一段时间内,Windows下的堆溢出被认为是不可利用的,然而事实并非如此。第6章将用精辟的论述点破堆溢出利用的原理,让您轻松领会堆溢出的精髓。此外,这章的一系列调试实验将加深您对概念和原理的理解。用通俗易懂的方式论述复杂的技术是本书始终坚持的原则。
第7章 Windows异常处理机制深入浅出
对异常处理的利用是Windows平台下缓冲区溢出漏洞利用的一大特点。第7章除了介绍如何在溢出发生时利用S.E.H外,还对Windows异常处理机制做了较深入的剖析,供有一定基础的读者参考。
第8章 高级内存攻击技术
集中介绍了一些曾发表于Black Hat上的著名论文中所提出的高级利用技术。对于安全专家,了解这些技巧和手法不至于在分析漏洞时错把可以利用的漏洞误判为低风险类型;对于黑客技术爱好者,这些知识很可能成为激发技术灵感的火花。
第9章 揭秘Windows安全机制
微软在Windows XP SP2和Windows 2003之后,向操作系统中加入了许多安全机制。本章将集中讨论这些安全机制对漏洞利用的影响。
第10章 用MetaSploit开发Exploit
MetaSploit是软件工程中的Frame Work(架构)在安全技术中的完美实现,它把模块化、继承性、封装等面向对象的特点在漏洞利用程序的开发中发挥得淋漓尽致。使用这个架构开发Exploit要比直接使用C语言写出的Exploit简单得多。第10章将集中介绍如何使用这个架构进行Exploit开发,这也将是第一次在中文书籍中集中介绍MetaSploit通用漏洞测试平台。
第11章 其他漏洞利用技术
格式化串漏洞在Windows平台上非常罕见,所以我把这种漏洞利用单独放在本章介绍。除此以外,由于脚本注入漏洞与缓冲区溢出漏洞的攻防在技术上差异较大,故也被安排在这章。鉴于基于Web的漏洞利用种目繁杂,且自成体系,本书目前只做了简单的介绍。如有机会,我将单独著书述之。
第3篇 漏洞分析
第12章 漏洞分析技术概述
第12章纵览了漏洞分析与调试的思路,并介绍了一些辅助漏洞调试分析的高级逆向工具。
第13章 MS06-040分析:系统入侵与蠕虫
通过对真实案例的分析,彻底揭秘攻击者入侵操作系统的全过程。在您获得操作系统控制权限的那一刻,相信伴随着强烈的成就感,您也将切身体会0day的真正危害和安全补丁的重要性。
第14章 MS06-055分析:揭秘“网马”
通过网页“挂马”是近年来攻击者惯用的手法。本章通过分析微软IE浏览器中真实的缓冲区溢出漏洞,告诉您为什么不能随便点击来历不明的URL链接。
第15章 MS07-060分析:Word文档中的阴谋
稍懂计算机知识的人都不会随便点击可执行文件,但是谁会想到打开Word文档也会导致shellcode的执行呢?如果Office中存在漏洞,那么打开Word文档就也有可能导致shellcode被执行。
第4篇 漏洞挖掘与软件安全性测试
第16章 漏洞挖掘技术浅谈
不论从工程上讲还是从学术上讲,漏洞挖掘都是一个相当前沿的领域。本章将介绍一些目前比较流行的漏洞挖掘方法,并着重介绍Fuzz测试的方法。相信本章的内容对于QA工程师和软件测试人员也会有用。
第17章 安全的软件生命周期
要做到尽可能地避免软件中的安全漏洞,仅仅靠安全测试和漏洞挖掘是远远不够的,那需要在软件生命周期的各个环节中加入安全因素。
本书源代码及相关文档
本书中调试实验所涉及的所有源代码和PE文件都被收录在附带光盘中。
这些代码都经过了仔细调试,如在使用中发现问题,请查看实验指导中对实验环境的要求。个别攻击实验的代码可能会被部分杀毒软件鉴定为存在风险的文件,请您调试前详细阅读实验说明。
此外,“看雪论坛”相关版面可以找到更多本书中所涉及的资源:http://zeroday.pediy.com
对读者的要求
虽然溢出技术经常涉及汇编语言,但本书并不要求读者一定具备汇编语言的开发能力。所用到的指令和寄存器在相关的章节都有额外介绍,只要您有C语言基础就能消化本书的绝大部分内容。
我并不推荐在阅读本书之前先去系统的学习汇编知识和逆向知识,枯燥的寻址方式和指令介绍很容易让人失去学习的兴趣。本书将带您迅速跨过漏洞分析与利用技术的进入门槛。即使您并不懂汇编与二进制也能完成书中的调试实验,并获得一定的乐趣。当然,在您达到一定水平想进一步提高时,补习逆向知识和汇编语言将是绝对必要的。
本书适合的读者群体包括:
安全技术工作者 本书比较全面、系统地收录了Windows平台下缓冲区溢出攻击所涉及的各种方法,将会是一本不错的技术字典。
信息安全理论研究者 本书中纰漏的许多漏洞利用、检测方法在学术上具有一定的前沿性,在一定程度上反映了目前国内外安全技术所关注的焦点问题。
QA工程师、软件测试人员 本书第4篇中集中介绍了产品安全性测试方面的知识,这些方法可以指导QA人员审计软件中的安全漏洞,增强软件的安全性,提高软件质量。
软件开发人员 知道漏洞利用原理将有利于编写出安全的代码。
高校信息安全专业的学生 本书将在一定程度上弥补高校教育与信息安全公司人才需求脱节的现象。用一套过硬的调试技术和逆向技术来武装自己可以让您在未来的求职道路上利于不败之地。精通exploit的人才可以轻松征服任何一家杀毒软件公司或安全资讯公司的求职门槛,获得高薪工作。
本科二年级以上计算机系学生 通过调试实验,你们将更加深入地了解计算机体系架构和操作系统。这些知识一样将成为您未来求职时过硬的敲门砖。
所有黑客技术爱好者 如果您厌倦了网络嗅探、端口扫描之类的扫盲读物,您将在本书中学到实施有效攻击所必备的知识和技巧。
反馈与提问
读者在阅读本书时如遇到任何问题,可以到看雪论坛相关版面提出或发送E-mail给我。
致谢
感谢电子工业出版社对本书的大力支持,尤其是毕宁与韩明编辑为本书出版所做的大量工作。
感谢看雪对本书的大力推荐和支持以及看雪论坛为本书提供的交流平台。
感谢Dafydd Stuttard和Matthew Conover在我编写shellcode技术和堆溢出技术的相关章节时提供的热情帮助。你们不但
拥有精湛的技术,难能可贵的共享精神也是我学习的榜样。
感谢金山毒霸反病毒引擎组给我提供的实习机会,尤其感谢Bani Cai、大灰、涂老师和Zmworm,是你们带我跨过了逆向技术的门槛。
感谢赛门铁克产品安全部的同事,尤其是我的经理Cassio Goldschmid。宽松的技术氛围和一流的技术培训为我的成长提供了强有力的支持,一起去参加Black Hat对我来说胜过任何节日。
感谢“下一代互联网和网络安全国家重点实验室”,尤其感谢我的导师管晓宏教授,是您为我提供了开放的研究环境和丰富的研究资源。
感谢114实验室的兄弟姐妹,和你们在一起的日子我非常开心。
感
谢我的爸爸、妈妈,谢谢你们的理解与支持。
感谢司徒雪岚,我会永远记得著书期间那段让我欢喜让我忧的日子。
最后感谢我的母校西安交通大学,是那里踏实求是的校风与校训激励着我不断进步。
| 回书目 上一节 下一节 |
|
· 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. · 网络工程师模拟测试获.. · 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. |
· 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. · 构建可扩展的Web站点的.. · 2008年全国计算机等级.. · 网络数据安全与保密自.. |
|
||||
| · 首届中国IT工程师生态.. · 思科全球CEO钱伯斯第七.. · 北漂技术人90天求职纪实 · 2007年互联网大会 · 龙芯要做中国的“奔腾” · IPv6协议--拓展网络无.. · 国际文档格式标准开战 · 微软出价446亿美元收购.. |
· 贝恩资本携手华为22亿.. · Linux——从菜鸟到高手 · SOA 面向服务架构 · 2008年4月全国计算机等.. · 微软Forefront企业安全.. · 技术人求职简历完备手册 · 勇闯IT培训黑色围城 · 隐私保护技术探讨 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · SQL Server入门到精通 · 病毒查杀专题 |
· 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux防火墙 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · ADSL应用面面俱到 · 入侵防护系统(IPS)初探 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · iSCSI应用与发展 · RAID——磁盘阵列基础 · 病毒查杀专题 |
· 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 · PHP开发应用手册 · 中间件应用技术专题 |
|||