黑客攻防技术宝典:系统实战篇(第2版)
¥
110
九品
仅1件
作者[英]安雷 著;罗爱国、郑艳杰 译
出版社人民邮电出版社
出版时间2010-01
版次1
装帧平装
货号11.2
上书时间2024-12-17
商品详情
- 品相描述:九品
图书标准信息
-
作者
[英]安雷 著;罗爱国、郑艳杰 译
-
出版社
人民邮电出版社
-
出版时间
2010-01
-
版次
1
-
ISBN
9787115217967
-
定价
79.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
545页
-
字数
826千字
-
正文语种
简体中文
-
原版书名
The Shellcoder's Handbook
-
丛书
图灵程序设计丛收·网络安全系列
- 【内容简介】
-
《黑客攻防技术宝典:系统实战篇(第2版)》由世界顶级安全专家亲自执笔,详细阐述了系统安全、应用程序安全、软件破解、加密解密等安全领域的核心问题,并用大量的实例说明如何检查Windows、Linux、Solaris等流行操作系统中的安全漏洞和Oracle等数据库中的安全隐患。
《黑客攻防技术宝典:系统实战篇(第2版)》适用于所有计算机安全领域的技术人员和管理人员以及对计算机安全感兴趣的爱好者。
- 【作者简介】
-
ChrisAnley,世界知名系统安全专家。具有各种操作系统漏洞挖掘的丰富经验。NextGeneration安全软件公司创始人、总监。
JohnHeasman,世界知名安全专家,尤其擅长于企业级软件安全攻防技术。著有多篇安全方面的颇有影响力的论文。现任NextGeneration安全软件公司研发总监。
FeIix“FX”Linder,世界知名安全专家。具有近20年的计算机安全领域工作经验,熟悉各种操作系统特性。目前领导着德国著名安全技术咨询公司SABRELabs。
GerardoRicharte,著名安全技术专家。精通漏洞挖掘和逆向工程。他还参与开发了著名的SqueakNOS项目。现为Core安全技术公司技术骨干。
- 【目录】
-
第一部分破解入门:x86上的Linux
第1章写在前面2
1.1基本概念2
1.1.1内存管理3
1.1.2汇编语言4
1.2识别汇编指令里的C和C++代码5
1.3小结7
第2章栈溢出8
2.1缓冲区8
2.2栈10
2.3栈上的缓冲区溢出13
2.4有趣的转换17
2.5利用漏洞获得根特权20
2.5.1地址问题21
2.5.2NOP法26
2.6战胜不可执行栈28
2.7小结31
第3章shellcode32
3.1理解系统调用32
3.2为exit()系统调用写shellcode34
3.3可注入的shellcode37
3.4派生shell39
3.5小结46
第4章格式化串漏洞47
4.1储备知识47
4.2什么是格式化串47
4.3什么是格式化串漏洞49
4.4利用格式化串漏洞52
4.4.1使服务崩溃53
4.4.2信息泄露54
4.5控制程序执行59
4.6为什么会这样67
4.7格式化串技术概述67
4.8小结69
第5章堆溢出70
5.1堆是什么70
5.2发现堆溢出71
5.2.1基本堆溢出72
5.2.2中级堆溢出77
5.2.3高级堆溢出83
5.3小结84
第二部分其他平台:Windows、Solaris、OSX和Cisco
第6章Windows操作系统86
6.1Windows和Linux有何不同86
6.2堆88
6.3DCOM、DCE-RPC的优缺点90
6.3.1侦察91
6.3.2破解93
6.3.3令牌及其冒用93
6.3.4Win32平台的异常处理95
6.4调试Windows96
6.4.1Win32里的bug96
6.4.2编写Windowsshellcode97
6.4.3Win32API黑客指南97
6.4.4黑客眼中的Windows98
6.5小结99
第7章Windowsshellcode100
7.1句法和过滤器100
7.2创建101
7.2.1剖析PEB102
7.2.2分析Heapoverflow.c102
7.3利用Windows异常处理进行搜索116
7.4弹出shell121
7.5为什么不应该在Windows上弹出shell122
7.6小结122
第8章Windows溢出123
8.1栈缓冲区溢出123
8.2基于帧的异常处理程序123
8.3滥用Windows2003Server上的基于帧的异常处理127
8.3.1滥用已有的处理程序128
8.3.2在与模块不相关的地址里寻找代码段,从而返回缓冲区129
8.3.3在没有LoadConfigurationDirectory的模块的地址空间里寻找代码段130
8.3.4关于改写帧处理程序的最后说明131
8.4栈保护与Windows2003Server131
8.5堆缓冲区溢出136
8.6进程堆136
8.6.1动态堆136
8.6.2与堆共舞136
8.6.3堆是如何工作的137
8.7破解堆溢出140
8.7.1改写PEB里指向RtlEnterCriticalSection的指针140
8.7.2改写指向未处理异常过滤器的指针146
8.7.3修复堆152
8.7.4堆溢出的其他问题154
8.7.5有关堆的总结154
8.8其他的溢出154
8.8.1.data区段溢出154
8.8.2TEBPEB溢出156
8.9破解缓冲区溢出和不可执行栈156
8.10小结161
第9章战胜过滤器162
9.1为仅接受字母和数字的过滤器写破解代码162
9.2为使用Unicode的过滤器写破解代码165
9.2.1什么是Unicode165
9.2.2从ASCII转为Unicode166
9.3破解Unicode漏洞166
9.4百叶窗法168
9.5译码器和译码171
9.5.1译码器的代码172
9.5.2在缓冲区地址上定位173
9.6小结174
第10章Solaris破解入门175
10.1SPARC体系结构介绍175
10.1.1寄存器和寄存器窗口176
10.1.2延迟槽177
10.1.3合成指令177
10.2SolarisSPARCshellcode基础178
10.2.1自定位和SPARCshellcode178
10.2.2简单的SPARCexecshellcode178
10.2.3Solaris里有用的系统调用179
10.2.4NOP和填充指令180
10.3SolarisSPARC栈帧介绍180
10.4栈溢出的方法180
10.4.1任意大小的溢出180
10.4.2寄存器窗口和栈溢出的复杂性181
10.4.3其他复杂的因素181
10.4.4可能的解决方法181
10.4.5off-by-one栈溢出漏洞182
10.4.6shellcode的位置182
10.5栈溢出破解实战183
10.5.1脆弱的程序183
10.5.2破解代码184
10.6SolarisSPARC上的堆溢出187
10.6.1SolarisSystemV堆介绍188
10.6.2堆的树状结构188
10.7基本的破解方法(t_delete)209
10.7.1标准堆溢出的限制210
10.7.2改写的目标211
10.8其他与堆相关的漏洞213
10.8.1off-by-one溢出213
10.8.2二次释放漏洞214
10.8.3任意释放漏洞214
10.9堆溢出的例子214
10.10破解Solaris的其他方法218
10.10.1静态数据溢出218
10.10.2绕过不可执行栈保护218
10.11小结219
第11章高级Solaris破解220
11.1单步执行动态链接程序221
11.2SolarisSPARC堆溢出的各种技巧235
11.3高级SolarisSPARCshellcode236
11.4小结248
第12章OSXshellcode249
12.1OSX就是BSD吗249
12.2OSX是否开源250
12.3UNIX支持的OSX250
12.4OSXPowerPCshellcode251
12.5OSXIntelshellcode257
12.5.1shellcode实例258
12.5.2ret2libc259
12.5.3ret2str(l)cpy261
12.6OSX跨平台shellcode263
12.7OSX堆利用264
12.8在OSX中寻找bug266
12.9一些有趣的bug266
12.10关于OSX破解的必读资料267
12.11小结268
第13章思科IOS破解技术269
13.1思科IOS纵览269
13.1.1硬件平台269
13.1.2软件包270
13.1.3IOS系统架构271
13.2思科IOS里的漏洞274
13.2.1协议剖析代码274
13.2.2路由器上的服务274
13.2.3安全特征274
13.2.4命令行接口275
13.3逆向分析IOS275
13.3.1仔细剖析映像275
13.3.2比较IOS映像文件276
13.3.3运行时分析277
13.4破解思科IOS281
13.4.1栈溢出282
13.4.2堆溢出283
13.4.3shellcode286
13.5小结294
第14章保护机制295
14.1保护295
14.1.1不可执行栈296
14.1.2W^X内存299
14.1.3栈数据保护304
14.1.4AAAS309
14.1.5ASLR310
14.1.6堆保护312
14.1.7WindowsSEH保护机制318
14.1.8其他保护机制321
14.2不同实现之间的差异322
14.2.1Windows322
14.2.2Linux325
14.2.3OpenBSD327
14.2.4MacOSX328
14.2.5Solaris329
14.3小结330
第三部分漏洞发现
第15章建立工作环境332
15.1需要什么样的参考资料332
15.2用什么编程333
15.2.1gcc333
15.2.2gdb333
15.2.3NASM333
15.2.4WinDbg333
15.2.5OllyDbg333
15.2.6VisualC++334
15.2.7Python334
15.3研究时需要什么334
15.3.1有用的定制脚本工具334
15.3.2所有的平台335
15.3.3UNIX336
15.3.4Windows336
15.4需要学习的资料337
15.5优化shellcode开发339
15.5.1计划339
15.5.2用内联汇编写shellcode340
15.5.3维护shellcode库341
15.5.4持续运行341
15.5.5使破解程序稳定可靠342
15.5.6窃取连接343
15.6小结343
第16章故障注入344
16.1设计概要345
16.1.1生成输入数据345
16.1.2故障注入347
16.1.3修正引擎347
16.1.4提交故障351
16.1.5Nagel算法351
16.1.6时序351
16.1.7试探法351
16.1.8无状态协议与基于状态的协议352
16.2故障监视352
16.2.1使用调试器352
16.2.2FaultMon352
16.3汇总353
16.4小结354
第17章模糊测试的艺术355
17.1模糊测试理论355
17.1.1静态分析与模糊测试359
17.1.2可扩缩的模糊测试359
17.2模糊测试法的缺点360
17.3建立任意的网络协议模型361
17.4其他可能的模糊测试法362
17.4.1位翻转362
17.4.2修改开源程序362
17.4.3带动态分析的模糊测试362
17.5SPIKE363
17.5.1什么是SPIKE363
17.5.2为什么用SPIKE数据结构模仿网络协议364
17.6其他的模糊测试工具371
17.7小结371
第18章源码审计:在基于C的语言里寻找漏洞372
18.1工具373
18.1.1Cscope373
18.1.2Ctags373
18.1.3编辑器373
18.1.4Cbrowser373
18.2自动源码分析工具374
18.3方法论374
18.3.1自顶向下(明确的)的方法374
18.3.2自底向上的方法375
18.3.3结合法375
18.4漏洞分类375
18.4.1普通逻辑错误375
18.4.2(几乎)绝迹的错误分类375
18.4.3格式化串376
18.4.4错误的边界检查377
18.4.5循环结构378
18.4.6off-by-one漏洞378
18.4.7非正确终止问题379
18.4.8跳过以\0结尾问题380
18.4.9有符号数比较漏洞381
18.4.10整数相关漏洞382
18.4.11不同大小的整数转换383
18.4.12二次释放错误384
18.4.13超出范围的内存使用漏洞384
18.4.14使用未初始化的变量384
18.4.15释放后再使用漏洞385
18.4.16多线程问题和重入安全代码386
18.5超越识别:真正的漏洞和错误386
18.6小结386
第19章手工的方法387
19.1原则387
19.2Oracleextproc溢出387
19.3普通的体系架构故障390
19.3.1问题发生在边界390
19.3.2在数据转换时出现问题391
19.3.3不对称区域里的问题393
19.3.4当认证和授权混淆的时候出现问题393
19.3.5在最显眼的地方存在的问题393
19.4绕过输入验证和攻击检测394
19.4.1剥离坏数据394
19.4.2使用交替编码394
19.4.3使用文件处理特征395
19.4.4避开攻击特征397
19.4.5击败长度限制397
19.5Windows2000SNMPDOS399
19.6发现DOS攻击399
19.7SQL-UDP400
19.8小结400
第20章跟踪漏洞402
20.1概述402
20.1.1脆弱的程序403
20.1.2组件设计404
20.1.3编译VulnTrace411
20.1.4使用VulnTrace416
20.1.5高级的技术418
20.2小结419
第21章二进制审计:剖析不公开源码的软件421
21.1二进制与源码审计之间的明显差异421
21.2IDApro——商业工具422
21.2.1IDA特征简介422
21.2.2调试符号423
21.3二进制审计入门423
21.3.1栈帧423
21.3.2调用约定424
21.3.3编译器生成的代码425
21.3.4类似memcpy代码构造428
21.3.5类似stlen的代码构造429
21.3.6C++代码构造429
21.3.7this指针429
21.4重构类定义430
21.4.1vtables430
21.4.2快速且有用的花絮431
21.5手动二进制分析431
21.5.1快速检查函数库调用431
21.5.2可疑的循环和写指令431
21.5.3高层理解和逻辑错误432
21.5.4二进制的图形化分析432
21.5.5手动反编译433
21.6二进制漏洞例子433
21.6.1微软SQLServer错误433
21.6.2LSD的RPC-DCOM漏洞434
21.6.3IISWebDav漏洞434
21.7小结436
第四部分高级内容
第22章其他载荷策略438
22.1修改程序438
22.2SQLServer3B补丁439
22.3MySQL1位补丁442
22.4OpenSSHRSA认证补丁443
22.5其他运行时修补方法444
22.6上载和运行(或proglet服务器)446
22.7系统调用代理446
22.8系统调用代理的问题448
22.9小结456
第23章编写在实际环境中运行的代码457
23.1不可靠的因素457
23.1.1魔术数字457
23.1.2版本458
23.1.3shellcode问题458
23.2对策459
23.2.1准备460
23.2.2暴力破解460
23.2.3本地破解461
23.2.4OS应用程序指纹461
23.2.5信息泄露463
23.3小结463
第24章攻击数据库软件464
24.1网络层攻击464
24.2应用层攻击474
24.3运行操作系统命令475
24.3.1微软SQLServer475
24.3.2Oracle475
24.3.3IBMDB2476
24.4SQL层的多种利用方法478
24.5小结480
第25章UNIX内核溢出481
25.1内核漏洞类型481
25.20day内核漏洞489
25.2.1OpenBSDexec_ibcs2_coff_prep_zmagic()栈溢出489
25.2.2漏洞490
25.3Solarisvfs_getvfssw()可加载内核模块遍历漏洞494
25.3.1sysfs()系统调用495
25.3.2mount()系统调用496
25.4小结497
第26章破解UNIX内核漏洞498
26.1exec_ibcs2_coff_prep_zmagic()漏洞498
26.1.1计算偏移量和断点503
26.1.2改写返回地址并重定向执行流程505
26.1.3查找进程描述符(或进程结构)506
26.1.4开发内核模式载荷508
26.1.5从内核载荷返回509
26.1.6得到根权限(uid=0)514
26.2Solarisvfs_getvfssw()可加载内核模块路径遍历破解520
26.2.1精心编写破解代码521
26.2.2加载内核模块522
26.2.3得到根权限(uid=0)525
26.3小结526
第27章破解Windows内核527
27.1Windows内核模式缺陷——逐渐增多的猎物527
27.2Windows内核介绍528
27.3常见内核模式编程缺陷528
27.3.1栈溢出529
27.3.2堆溢出532
27.3.3没有充分验证用户模式地址532
27.3.4多目的化攻击533
27.3.5共享的对象攻击533
27.4Windows系统调用533
27.4.1理解系统调用534
27.4.2攻击系统调用535
27.5与设备驱动程序通信536
27.5.1IOCTL组件536
27.5.2发现IOCTL处理程序中的缺陷537
27.6内核模式载荷538
27.6.1提升用户模式进程538
27.6.2运行任意的用户模式载荷540
27.6.3颠覆内核安全543
27.6.4安装rootkit544
27.7内核shellcoder的必读资料544
27.8小结545
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价