黑客攻防技术宝典:系统实战篇(第2版)

黑客攻防技术宝典:系统实战篇(第2版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [英] , ,
2010-01
版次: 1
ISBN: 9787115217967
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 545页
字数: 826千字
正文语种: 简体中文
原版书名: The Shellcoder's Handbook
54人买过
  •   《黑客攻防技术宝典:系统实战篇(第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
  • 内容简介:
      《黑客攻防技术宝典:系统实战篇(第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
查看详情
相关图书 / 更多
黑客攻防技术宝典:系统实战篇(第2版)
黑客攻防从入门到精通
博蓄诚品 编著
黑客攻防技术宝典:系统实战篇(第2版)
黑客与画家(10万册纪念版)
[美]保罗·格雷厄姆(Paul Graham)
黑客攻防技术宝典:系统实战篇(第2版)
黑客点击:神奇的135均线(135战法系列的奠基之作,拥有18年市场生命力的股票投资著作)
宁俊明 著
黑客攻防技术宝典:系统实战篇(第2版)
黑客攻防从入门到精通(绝招版)第2版
王叶、武新华、张明真 著
黑客攻防技术宝典:系统实战篇(第2版)
黑客攻防从入门到精通:黑客与反黑客工具篇(第2版)
李书梅、张明真 著
黑客攻防技术宝典:系统实战篇(第2版)
黑客攻防从入门到精通:实战篇(第2版)
王叶、李瑞华、孟繁华 著
黑客攻防技术宝典:系统实战篇(第2版)
黑客攻防从入门到精通(命令版)第2版
武新华、李书梅、孟繁华 著
黑客攻防技术宝典:系统实战篇(第2版)
黑客地球:地球工程让我们重新想象未来
[美]托马斯·科斯蒂根
黑客攻防技术宝典:系统实战篇(第2版)
黑客攻击与防范技术
宋超 编
黑客攻防技术宝典:系统实战篇(第2版)
黑客秘笈 渗透测试实用指南 第3版
[美]皮特·基姆(Peter Kim)
黑客攻防技术宝典:系统实战篇(第2版)
黑客攻防与网络安全从新手到高手(绝招篇)
网络安全技术联盟
黑客攻防技术宝典:系统实战篇(第2版)
黑客:暗夜守护人(“金盾文学奖”作者丁一鹤全新力作!)
丁一鹤 著;新华先锋 出品
您可能感兴趣 / 更多
黑客攻防技术宝典:系统实战篇(第2版)
汗青堂丛书133·战争、法律与现代世界的形成
[英]琳达·科利 后浪
黑客攻防技术宝典:系统实战篇(第2版)
石头,剪刀,布(苏格兰废弃教堂版《婚姻故事》 变爱为恨是比化水为酒更容易的把戏)午夜文库
[英]爱丽丝˙芬尼 著;左昌 译
黑客攻防技术宝典:系统实战篇(第2版)
最后一个人(《时代》杂志评其为“十大后世界末日小说”之一)
[英]玛丽·雪莱 著;新华先锋 出品
黑客攻防技术宝典:系统实战篇(第2版)
不能赢的辩护【当当定制“检方证物线索卡*5】金匕首奖得主史蒂夫·卡瓦纳推理神作
[英]史蒂夫·卡瓦纳 著;酷威文化 出品
黑客攻防技术宝典:系统实战篇(第2版)
鼓楼新悦.狗狗都市观: 犬与人类如何共同打造现代纽约、伦敦和巴黎(特装版 刷边精美书签0-500编号)
[英]克里斯·皮尔逊(Chris.Pearson) 著;邹赜韬 林青青 译/校
黑客攻防技术宝典:系统实战篇(第2版)
谢林与现代欧洲哲学
[英]安德鲁·鲍伊
黑客攻防技术宝典:系统实战篇(第2版)
科普勒斯顿阿哲学史11
[英]弗雷德里克·科普勒斯顿 后浪
黑客攻防技术宝典:系统实战篇(第2版)
哈利·波特 一段魔法史
[英]大英图书馆 编;向寻 冬翌 译
黑客攻防技术宝典:系统实战篇(第2版)
管教的常识:直面孩子成长的88个问题
[英]苏珊·伊莎克丝 译者;李江艳
黑客攻防技术宝典:系统实战篇(第2版)
钢琴技巧实践
[英]默里·麦克拉克伦(Murray McLachlan) 著;孙晓雪 译
黑客攻防技术宝典:系统实战篇(第2版)
踏入荒野:给孩子的野外生存指南(5大板块,60多个主题,涵盖野外生存的方方面面知识)
[英]泰迪·基恩
黑客攻防技术宝典:系统实战篇(第2版)
野蔷薇村的故事(全8册):40周年官方特别纪念版
[英]吉尔·巴克莲 著;[中]马爱农 译