[转载]《The Shellcoder's handbook》中文翻译PDF格式(不断更新)
标 题: 《The Shellcoder's handbook》第一章_在开始之前作 者: arhat
时 间: 2006-10-22,19:45
链 接: [url]http://bbs.pediy.com/showthread.php?threadid=33670[/url]
The Shellcoder's Handbook—Discovering and Exploiting Security Holes
Shellcoder手册
1
在开始之前
在阅读本书之前,我们先介绍一些基础概念,这些概念和大学计算机课程中所要求的阅读材料类似,希望你们早就了熟于心。但因篇幅所限,我们所介绍的内容不可能面面俱到,所以你应该以本章为起点,主动学习相关的知识。
在阅读过程中,如果不太理解某些概念,建议你多读几遍,如果实在弄不明白,可以查阅相关资料,或向他人请教,直到弄明白为止。如果你把本章介绍的每个概念都弄明白了,在后面的学习过程中,会节约很多时间和精力。
[url]www.wiley.com/compbooks/kozior[/url]是本书的有益补充,你可以在它上面找到一些文档、操作指南或其它的好东西,它们会对你的学习有所帮助。在这个站点上,还有本书所有例子的源码。 转下作者的话
既然孕育了24个月,再加上后续章节有些地方还有待斟酌,我决定以连载的形式发布,每次一章。(整本书分为4个部分,24个章节)。每次发布的间隔应该不超过一周。 5
堆溢出
本章主要介绍Linux上的堆溢出,使用的堆实现源自Doug Lee最初的malloc实现,因此也把它称为dlmolloc。虽然这里介绍的只是Linux上的dlmolloc,但深入理解这些内容,将使你在面对其它malloc()实现的时候有所帮助。实际上,写堆溢出攻击代码对我们来说是个转折点,它使我们不再局限于从栈上保存的指针来争夺EIP。许多函数库存储重要的元数据时,其中夹杂着用户的数据,Dlmalloc只是这些函数库中的一个。理解怎样利用malloc错误是一把发现革新方法的钥匙,可以用于利用那些不属于任何已有分类的错误。
6
Windows的广阔原野
在学习了前面的内容之后,我们现在来学习一个崭新的操作系统—Windows。本章主要从经验丰富的Win32黑客的角度来阐述Windows问题,同时使Unix黑客对Win32有较好的理解。结束本章学习后,你应该可以编写简单的Windows破解;并在尝试一些复杂的破解时,避免出现常见的错误。
在本章,你还可以学习怎样使用常见的Windows调试工具。沿着这条路,你将进一步学习Windows安全、编程模型、Distributed Component Object Model (DCOM)、和Portable Executable-Common File Format(PE-COFF) 的基础知识。简而言之,本章包含的内容是老黑客多年经验的结晶,当你准备攻击Windows平台时,你会深深喜欢上这些内容 如果是chm的格式那就好鸟....貌似是电子工业出版社出版的,好象我买了一本 [s:39] [s:37]
arhat在看雪发的~~
我转过来的
呵呵 7 Windows Shellcode
本书一位作者的女友经常说写shellcode很容易,凭心而论,在Linux上是不太难,但在Windows上还是有一定难度的,有时候会使人垂头丧气。在开始学习本章之前,我们将先回顾一些shellcode的要点,然后研究Windows shellcode那令人着迷的特性。沿着这条主线,我们还将讨论AT&T与Intel句法间的不同,某些Win32漏洞给我们带来的影响,并探讨高级Windows shellcode的发展方向。 8.Windows 溢出
如果你正在阅读本章,我们将假设你熟悉Windows NT或更新版本的Windows操作系统,并且知道如何破解Windows系统上的缓冲区溢出。本章重点介绍Windows溢出的高级部分,比如说挫败Windows 2003内建的栈保护机制,深入理解堆溢出等。在学习本章之前,你应该熟悉诸如线程环境块(Thread Environment Block,TEB)、进程环境块(Process Environment Block,PEB)、进程在内存中的布局、映像文件(image)、PE文件头等内容。如果对这些概念还有稍许疑问,建议你先把它们弄清楚后再开始学习本章。本书站点([url]www.wiley.com/compbooks/koziol[/url])提供的一些资源将会对你有所帮助
9
战胜过滤器
因为某些程序在接受输入时会过滤不良数据,所以编写缓冲区溢出的破解时,可能会碰到一些问题;比如说,目标程序可能只接受字母和数字:从A到Z,a到z,0到9。在这种情况下,我们需要绕过两个障碍。第一,我们写的破解必须符合过滤器的要求;第二,必须找到合适的值来改写保存的返回地址或函数指针,而这又要看是破解何种溢出,而且这个值也需要被过滤器接受。假如碰到不太苛刻的过滤器,比如说,接受可打印的ASCII或Unicode字符,那我们通常可以解决第一个问题;但要解决第二个问题,在一定程度上要看运气、毅力和技巧了。
BTW:在圣诞前夕,感谢那些为我们提供学习资料的外国友人。虽然他们看不到我的祝福 标 题: 《The Shellcoder's handbook》第十章_Solaris 破解入门
作 者: arhat
时 间: 2007-01-01,11:23
链 接: [url]http://bbs.pediy.com/showthread.php?threadid=37269[/url]
10
Solaris破解入门
很长一段时间以来,Solaris主要支持高端的Web和数据库服务。尽管Solaris有Interl发行版,但绝大多数的Solaris还是运行在SPARC平台之上。我们在本章将把精力放在SPARC上的Solaris,而它也是影响深远的操作系统之一。Solaris在以前被称为SunOS,当然这样的称呼已渐渐被大家遗忘了,现在常见的版本是2.6,7,8,和9。
当其它的操作系统倾向于在默认安装情况下只提供基本服务时,Solaris 9仍提供了大量的网络服务,例如,默认安装的Solaris 9启用近20个RPC服务。在以前,RPC服务里涌现了大量的漏洞;现在,在网络上可以获得大量的Solaris源代码,似乎预示着在RPC里可能会发现更多的漏洞。
从历史上说,几乎所有的Solaris RPC服务都出现过漏洞(sadmind,cmsd,statd,automount 通过statd,snmXdmid,dmispd,cachefsd,等等),也发现了通过inetd使用的远程错误,如telnetd,/bin/login(通过telnetd和rshd),dtspcd,lpd等。Solaris在缺省状态下有大量带setuid位的文件,因此,在正式使用Solaris前,应该对它进行仔细地加固。
当然,Solars也内置了一些安全功能,包括进程记帐、审计、和可选的non-executable栈。从管理员的立场来看,启用这个选项是值得的,因为它提供了一定程度上的保护。
注:大家不要把这里的破解(exploit)和通常所说的破解(crack)搞混淆了。
前两天特忙,这算是迟到的新年祝福吧!
祝大家的劳动都有收获
祝大家的生活天天快乐 标 题: 《The Shellcoder's handbook》第十一章_高级 Solaris 破解
作 者: arhat
时 间: 2007-01-07,15:40
链 接: [url]http://bbs.pediy.com/showthread.php?threadid=37575[/url]
11
高级Solaris破解
本章将介绍利用动态链接程序的高级Solaris破解技术,也会介绍怎样加密Shellcode,以挫败网络IDS(Intrusion Detection System)和/或IPS(Intrusion Prevention System)设备。
BTW:[url]http://bbs1.pediy.com:8081/index.php?s=[/url] 访问不了,不知是不是我网络的问题? 谢谢zhouzhen哈
最近忙着实习
忘了更新这事
12
破解HP Tru64 Unix
从Digital Corporation发行Dec OSF/1(也称为Digital Unix)开始,Tru64操作系统已经走过了很长一段路;它在Digital Unix的商标下发行了4个主要版本(DG-UX 4.0A到4.0B)。Compaq收购Digital Corporation后,把它改名为Compaq Tru64 4.0F;2003年1月发行了最后一个版本Tru64 5.1B。
不久前,Hewlett-Packard收购了Compaq,Tru64再次被改名为HP Tru64 Unix
13
建立工作环境
如果你打算(或正在)研究堆栈溢出、格式化串、或其它与shellcode相关的问题,毫无疑问,你需要一个舒适的工作环境。环境?当然了,我不是指在一间昏暗的地下室里,桌上有零星的匹萨屑和满地的可乐瓶;而是指那些优秀的编程工具、调试分析工具、参考资料等。合理使用它们,将事半功倍。如果你正准备DIY舒适的工作环境,本章将是很好的指南。
14
故障注入
在大半个世纪前,人们就开始用故障注入技术检测硬件产品的容错性了,如今,故障注入更是广泛应用于各行各业。比如说,人们用它测试汽车的零部件、飞机引擎、甚至包括咖啡壶的加热环。这些硬件故障注入系统一般是通过集成电路和引脚注入故障来测试产品的容错性,这些故障通常包括EMI(电磁干扰)猝发、电压变换等,在某些情况下,甚至会使用辐射。目前,大型硬件制造商在产品测试过程中或多或少都会使用故障注入系统。
随着信息技术从模拟向数字发展,软件数量成倍增长。一个问题浮现在人们面前,用什么测试软件的稳定性呢? 完整版PDF格式,
页:
[1]