灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)
《灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)》
基本信息
原书名:GrayHatHacking:TheEthicalHacker'sHandbook,ThirdEdition
作者:[美]ShonHarrisAllenHarper[作译者介绍]
译者:杨明军韩智文程文俊
丛书名:安全技术经典译丛
出版社:清华大学出版社
ISBN:9787302301509
上架时间:2012-10-17
出版日期:2012年11月
开本:16开
页码:1
版次:1-1
所属分类:计算机>安全>网络安全/防火墙/黑客
更多关于》》》《灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)》
内容简介
书籍
计算机书籍
运用最新策略揭示当今最具破坏力的攻击
《灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)》在上一版的基础上做了全面更新,新增了9章内容。本书内容丰富,讲解透彻,浓墨重彩地描述最新漏洞、修复方法以及合法的公开途径,详细介绍恶意软件分析、渗透测试、scada、voip和web安全等主题,分析黑客们如何定位系统、破坏保护方案、编写恶意代码以及利用windows和linux系统的缺陷。通过本书的学习,您将可以借助最新技术查找和修复安全缺陷,从而能够得心应手地阻止恶意网络攻击。
《灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)》主要内容
使用backtrack和metasploit来模拟漏洞攻击
分析潜入、社交工程和内部攻击技术
模拟构建用来发起栈缓冲区溢出攻击的perl、python和ruby脚本
理解并阻止adobe、office和多媒体文件中的恶意内容
检测和阻止客户端、web服务器、voip和scada攻击
介绍针对windows和linux软件的逆向工程、模糊处理及反编译
讨论sql注入、跨站脚本和伪造攻击
使用蜜罐和沙箱技术来捕获恶意软件和加壳软件
目录
灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)》
第ⅰ部分“合乎道德的揭秘行为”简介1
第1章正义黑客的道德规范3
1.1理解敌方策略的意义3
1.2认识安全领域的灰色区域7
1.3本书与正义黑客类图书的关系8
1.3.1漏洞评估8
1.3.2渗透测试9
1.4关于黑客类图书和课程的争议12
1.4.1工具的双重性13
1.4.2识别攻击14
1.4.3模拟攻击15
1.5攻击者最喜欢利用的漏洞15
第2章合乎道德的正常揭秘行为19
2.1各方看待问题的不同角度20
2.2cert目前采取的工作流程21
2.3完全揭秘策略—rainforestpuppypolicy23
2.4internet安全组织24
2.4.1发现漏洞25
2.4.2 通知 25.2.4.3 验证 27
2.4.4解决29
2.4.5发布30
2.5争议仍将存在30
2.6案例分析34
2.6.1正当揭秘过程的优缺点35
2.6.2供应商更加关注38
2.7接下来应该做什么38
第ⅱ部分渗透测试及工具41
第3章社会工程攻击43
3.1社会工程攻击原理43
3.2实施社会工程攻击44
3.3渗透测试中常用到的攻击手段46
3.3.1好心人47
3.3.2会议室51
3.3.3加入公司53
3.4准备好进行面对面的攻击54
3.5防御社会工程攻击56
第4章潜入攻击57
4.1潜入攻击如此重要的原因57
4.2实施潜入攻击58
4.2.1侦察58
4.2.2思想准备60
4.3进入目标建筑物的常用方法60
4.3.1吸烟区入口61
4.3.2人工检查点62
4.3.3锁住的门64
4.3.4物理方式开锁66
4.3.5进入目标之后69
4.4防御潜入攻击69
第5章内部攻击71
5.1模拟内部攻击的重要性71
5.2实施内部攻击72
5.2.1工具和准备工作72
5.2.2了解情况72
5.2.3获得本地管理员权限73
5.2.4禁用防病毒软件76
5.2.5使用cain77
5.3防御内部攻击83
第6章使用backtracklinux发行85
6.1backtrack简介85
6.2将backtrack安装到dvd或优盘86
6.3直接在虚拟机中使用backtrackiso映像文件87
6.3.1使用virtualbox创建backtrack虚拟机88
6.3.2引导backtracklivedvd系统88
6.3.3探索backtrackx窗口环境89
6.3.4启动网络服务90
6.4永久性更改backtrack90
6.4.1将backtrack完整地安装在硬盘或者优盘中91
6.4.2新建一个包含永久性更改信息的iso文件92
6.4.3使用自定义文件自动保存和恢复更改94
6.5研究backtrack引导菜单95
6.6更新backtrack97
第7章使用metasploit99
7.1metasploit简介99
7.2获取metasploit99
7.3使用metasploit控制台加载攻击工具100
7.4使用metasploit攻击客户端漏洞105
7.5使用metasploitmeterpreter进行渗透测试107
7.5.1使用meterpreter进行键盘记录110
7.5.2使用meterpreter以不同的已登录用户身份运行代码110
7.5.3使用meterpreter的hashdump命令和metasploit的psexec命令以及共享口令登录112
7.6metasploit的自动化与脚本化113
7.7更进一步探讨metasploit115
第8章渗透测试管理117
8.1制定渗透测试计划117
8.1.1渗透测试的类型117
8.1.2渗透测试的范围118
8.1.3渗透测试的位置118
8.1.4渗透测试小组成员构成118
8.1.5方法和标准118
8.1.6渗透测试的各个阶段119
8.1.7渗透测试计划120
8.2签署渗透测试协议121
8.2.1工作声明121
8.2.2“保释信”121
8.3实施渗透测试122
8.3.1测试启动会议122
8.3.2渗透测试中的资源访问122
8.3.3测试预期值管理123
8.3.4测试问题管理123
8.3.5欲速则不达123
8.3.6外部和内部协同123
8.4在渗透测试中进行信息共享124
8.5生成渗透测试结果报告128
8.5.1报告格式128
8.5.2报告摘要128
第ⅲ部分漏洞攻击129
第9章编程技能131
9.1c编程语言131
9.1.1c语言基本结构131
9.1.2程序范例135
9.1.3使用gcc进行编译136
9.2计算机内存137
9.2.1随机存取存储器(ram)137
9.2.2字节序137
9.2.3内存分段138
9.2.4内存中的程序138
9.2.5缓冲区139
9.2.6内存中的字符串139
9.2.7指针139
9.2.8内存知识小结140
9.3intel处理器141
9.3.1寄存器141
9.4汇编语言基础142
9.4.1机器指令、汇编语言与c语言142
9.4.2at&t与nasm142
9.4.3寻址模式144
9.4.4汇编文件结构145
9.4.5汇编过程146
9.5使用gdb进行调试146
9.5.1gdb基础146
9.5.2使用gdb进行反汇编148
9.6python编程技能149
9.6.1获取python149
9.6.2python中的helloworld程序149
9.6.3python对象150
9.6.4字符串150
9.6.5数字151
9.6.6列表152
9.6.7字典153
9.6.8python文件操作154
9.6.9python套接字编程155
第10章基本的linux漏洞攻击157
10.1栈操作157
10.1.1函数调用过程158
10.2缓冲区溢出159
10.2.1meet.c溢出160
10.2.2缓冲区溢出的后果163
10.3本地缓冲区溢出漏洞攻击164
10.3.1漏洞攻击组成部分165
10.3.2在命令行上进行栈溢出漏洞攻击167
10.3.3使用通用漏洞攻击代码进行栈溢出漏洞攻击168
10.3.4对小缓冲区进行漏洞攻击170
10.4漏洞攻击开发过程173
10.4.1控制eip173
10.4.2确定偏移173
10.4.3确定攻击途径176
10.4.4构建漏洞攻击三明治176
10.4.5测试漏洞攻击177
第11章高级linux漏洞攻击179
11.1格式化字符串漏洞攻击179
11.1.1问题描述179
11.1.2从任意内存读取183
11.1.3写入任意内存184
11.1.4利用.dtors获得根特权级186
11.2内存保护机制189
11.2.1编译器改进190
11.2.2内核补丁和脚本193
11.2.3“返回到libc”漏洞攻击194
11.2.4综合比较202
第12章shellcode策略203
12.1用户空间shellcode203
12.1.1系统调用203
12.1.2基本shellcode204
12.1.3端口绑定shellcode205
12.1.4反向shellcode206
12.1.5查找套接字shellcode207
12.1.6命令执行代码208
12.1.7文件传输代码208
12.1.8多级shellcode209
12.1.9系统调用代理shellcode209
12.1.10进程注入shellcode210
12.2其他shellcode考虑因素211
12.2.1shellcode编码211
12.2.2自我破坏shellcode212
12.2.3反汇编shellcode213
12.3内核空间shellcode214
12.3.1内核空间考虑因素214
第13章编写linuxshellcode217
13.1基本的linuxshellcode217
13.1.1系统调用217
13.1.2使用c进行系统调用218
13.1.3使用汇编语言进行系统调用219
13.1.4系统调用exit219
13.1.5系统调用setreuid221
13.1.6利用execve实现创建shell的shellcode222
13.2实现端口绑定shellcode226
13.2.1linux套接字编程226
13.2.2采用汇编语言编程建立一个套接字228
13.2.3测试shellcode231
13.3实现反向连接shellcode234
13.3.1反向连接c语言编程234
13.3.2反向连接汇编程序235
13.4shellcode编码237
13.4.1简单的xor编码237
13.4.2编码后shellcode的结构238
13.4.3jmp/callxor解码器示例238
13.4.4fnstenvxor示例239
13.4.5将代码组合起来241
13.5利用metasploit自动生成shellcode244
13.5.1利用metasploit生成shellcode244
13.5.2利用metasploit对shellcode进行编码245
第14章windows漏洞攻击247
14.1windows程序编译与调试247
14.1.1在windows上进行编译247
14.1.2在windows上用ollydbg进行调试249
14.2编写windows漏洞攻击程序253
14.2.1漏洞攻击程序开发过程回顾254
14.2.2prosshd服务器254
14.2.3控制eip255
14.2.4确定偏移257
14.2.5确定攻击途径258
14.2.6构建攻击三明治261
14.2.7根据需要调试漏洞攻击程序262
14.3理解seh264
14.3.1seh的实现264
14.4理解windows内存保护(xpsp3、vista、7和server2008)266
14.4.1基于栈的缓冲区溢出检测(/gs)266
14.4.2safeseh268
14.4.3sehop268
14.4.4堆保护268
14.4.5dep268
14.4.6aslr269
14.5绕开windows内存保护270
14.5.1绕开/gs270
14.5.2绕开safeseh271
14.5.3绕开aslr272
14.2.4绕开dep272
14.5.5绕开sehop278
14.5.6内存保护绕开方法小结285
第15章content-type攻击原理与检测287
15.1content-type攻击原理287
15.2现今可被攻击的文件格式289
15.3pdf文件格式简介290
15.4恶意pdf漏洞攻击分析293
15.5恶意pdf文件检测工具296
15.5.1pdfid296
15.5.2pdf-parser.py300
15.6content-type攻击防御测试工具303
15.7content-type攻击防御方法304
15.7.1安装所有的安全更新304
15.7.2在adobereader中禁用javascript305
15.7.3针对微软office应用程序和adobereader启用dep305
第16章web应用程序安全漏洞307
16.1最流行的web应用程序安全漏洞概述307
16.1.1注入漏洞307
16.1.2跨站脚本漏洞308
16.1.3owasp十大隐患中的其他内容308
16.2sql注入漏洞攻击308
16.2.1sql数据库与语句310
16.2.2测试web应用程序,搜寻sql注入漏洞312
16.3跨站脚本漏洞攻击317
16.3.1“脚本”的含义317
16.3.2跨站脚本的含义318
第17章oip攻击323
17.1voip的含义323
17.2voip使用的协议324
17.2.1sip324
17.2.2megacoh.248325
17.2.3h.323325
17.2.4tls和dtls326
17.2.5srtp327
17.2.6zrtp327
17.3voip攻击类型327
17.3.1枚举328
17.3.2sip口令破解328
17.3.3与分组捕获 329
17.3.4拒绝服务329
17.4如何防范voip攻击335
第18章scada攻击337
18.1scada的含义337
18.2scada使用的协议338
18.2.1opc338
18.2.2iccp338
18.2.3modbus338
18.2.4dnp3339
18.3scadafuzzing测试340
18.3.1使用autodafé进行scadafuzzing测试340
18.3.2使用tftpdaemonfuzzer进行scadafuzzing测试346
18.4stuxnet恶意软件(网络恐怖主义新浪潮)349
18.5防范scada攻击349
第ⅳ部分漏洞分析351
第19章被动分析353
19.1道德的逆向工程353
19.2使用逆向工程的原因354
19.2.1逆向工程注意事项354
19.3源代码分析355
19.3.1源代码审计工具355
19.3.2源代码审计工具的实用性357
19.3.3手工源代码审计359
19.3.4自动化源代码分析363
19.4二进制分析365
19.4.1二进制代码的手工审计365
19.4.2自动化的二进制分析工具376
第20章使用idapro进行高级静态分析381
20.1静态分析难点381
20.1.1剥离的二进制文件381
20.1.2静态链接程序和flair383
20.1.3数据结构分析389
20.1.4已编译的c++代码的诡异之处393
20.2扩展idapro396
20.2.1idc脚本编程396
20.2.2idapro插件模块及idaprosdk398
20.2.3构建idapro插件400
20.2.4idapro加载器及处理器模块402
第21章高级逆向工程技术405
21.1软件攻击的目的405
21.2软件开发过程概述406
21.3检测工具407
21.3.1调试器407
21.3.2代码覆盖分析工具409
21.3.3统计分析工具410
21.3.4流程分析工具410
21.3.5内存使用监视工具412
21.4模糊测试416
21.5定制的模糊测试工具和技术417
21.5.1一个简单的url模糊测试工具417
21.5.2对未知协议进行模糊测试420
21.5.3spike421
21.5.4spike静态内容原语421
21.5.5spikeproxy424
21.5.6sharefuzz424
第22章客户端浏览器的漏洞攻击427
22.1客户端软件漏洞的重要性427
22.1.1客户端漏洞可以规避防火墙保护427
22.1.2客户端应用程序经常在管理权限下运行428
22.1.3客户端漏洞易于针对特定人群或机构目标428
22.2internetexplorer的安全概念429
22.2.1activex控件429
22.2.2internetexplorer安全区域430
22.3客户端漏洞攻击的历史与发展趋势431
22.3.1客户端漏洞的流行431
22.3.2历史上针对客户端攻击的著名漏洞431
22.4挖掘基于浏览器的新漏洞437
22.4.1mangleme437
22.4.2mozilla安全团队的模糊测试工具440
22.4.3axenum441
22.4.4axfuzz446
22.4.5axman446
22.5可利用的堆喷射技术451
22.5.1internetexploiter451
22.6防范客户端漏洞攻击452
22.6.1同步更新安全补丁452
22.6.2获取最新信息453
22.6.3在缩减权限下运行internet应用453
第23章攻击windows访问控制模型455
23.1攻击访问控制机制的理由455
23.1.1多数人不理解访问控制机制455
23.1.2访问控制漏洞易于攻击456
23.1.3访问控制漏洞数量巨大456
23.2windows访问控制的工作机制456
23.2.1安全标识符456
23.2.2访问令牌457
23.2.3安全描述符460
23.2.4访问检查463
23.3访问控制配置分析工具465
23.3.1转储进程令牌466
23.3.2转储安全描述符468
23.4特殊sid、特殊访问权限和“禁止访问”问题469
23.4.1特殊的sid469
23.4.2特殊访问权限471
23.4.3“禁止访问”的原理472
23.5访问控制引起的提权漏洞477
23.6各种对象类型的攻击模式478
23.6.1服务攻击478
23.6.2windows注册表dacl攻击484
23.6.3目录dacl攻击488
23.6.4文件dacl攻击493
23.7其他对象类型的枚举方法497
23.7.1共享内存段497
23.7.2命名管道498
23.7.3进程499
23.7.4其他已命名的内核对象(信号量、互斥锁、事件、设备)500
第24章智能模糊测试框架sulley503
24.1协议分析503
24.2sulley模糊测试框架504
24.2.1安装sulley505
24.2.2强大的模糊测试工具505
24.2.3块结构507
24.2.4监视进程中的错误511
24.2.5监视网络流量512
24.2.6控制vmware512
24.2.7综述513
24.2.8崩溃事件的事后分析515
24.2.9网络使用分析516
24.2.10进一步研究517
第25章漏洞的可利用性和漏洞攻击程序519
25.1漏洞的可利用性519
25.1.1通过调试分析可利用性520
25.1.2初始分析520
25.2理解漏洞攻击问题524
25.2.1先决条件和后置条件524
25.2.2可重复性525
25.3构造漏洞攻击程序有效载荷的有关考虑533
25.3.1漏洞攻击程序有效载荷的协议元素533
25.3.2缓冲区的方向534
25.3.3自毁式shellcode534
25.4对问题进行归档535
25.4.1背景知识535
25.4.2环境536
25.4.3研究结果536
第26章关闭漏洞:缓解问题537
26.1各种缓解方案537
26.1.1端口碰撞技术537
26.1.2迁移538
26.2打补丁539
26.2.1对源代码打补丁的注意事项539
26.2.2给二进制程序打补丁的注意事项541
26.2.3二进制变异545
26.2.4第三方打补丁方案549
第ⅴ部分恶意软件分析551
第27章收集恶意软件和初步分析553
27.1恶意软件553
27.1.1恶意软件类型553
27.1.2恶意软件的防护技术554
27.2蜜网技术的最新发展趋势555
27.2.1蜜罐555
27.2.2蜜网555
27.2.3为什么要使用蜜罐555
27.2.4蜜罐的局限性556
27.2.5低交互性蜜罐556
27.2.6高交互性蜜罐557
27.2.7蜜网的类型557
27.2.8规避vmware检测技术559
27.3捕捉恶意软件:设置陷阱561
27.3.1vmware宿主机设置561
27.3.2vmware客户机设置561
27.3.3使用nepenthes进行捕获562
27.4恶意软件的初步分析563
27.4.1静态分析563
27.4.2动态分析565
27.4.3normansandbox技术569
第28章破解恶意软件573
28.1恶意软件的发展趋势573
28.1.1嵌入的组件573
28.1.2加密的使用574
28.1.3用户空间隐藏技术574
28.1.4rootkit技术的应用574
28.1.5持久化措施575
28.2对恶意软件进行去混淆处理575
28.2.1加壳程序基础576
28.2.2对二进制文件进行脱壳处理577
28.3对恶意软件进行逆向工程584
28.3.1恶意软件的设置阶段584
28.3.2恶意软件的运行阶段584
28.3.3自动化的恶意软件分析585