第1章 必需的工具 3
第1部分 shellcode简介 3
1.1 编程语言 7
1.2 分析、调试和逆向工程的工具 8
1.3 必读书目和其他的参考资料 10
第2章 汇编语言——概览 12
2.1 汇编语言基本原理 13
2.2 用C程序解释汇编概念 14
2.3 以内联汇编为平台 16
第3章 揭秘利用GPRS的入侵 18
3.1 匿名为什么也不安全 18
3.2 利用GPRS入侵 21
3.2.2 深入了解手机 22
3.2.1 GPRS调制解调器VS手机 22
3.2.3 从键盘改写NAM 24
3.2.4 手动改写NAM 26
3.2.5 参考资料 29
第2部分 溢出错误 33
第4章 受溢出影响的缓冲区(怪圈) 33
4.1 溢出错误分类(极度无聊) 34
4.2 产生溢出错误的历史必然性 36
4.3 有关溢出错误的神话与传说 37
4.4 攻击的目标和可能性 39
4.4.1 读敏感变量 39
4.4.2 修改秘密变量 39
4.4.4 把控制权传给入侵者的代码 40
4.4.5 溢出攻击的目标 40
4.4.3 把控制权传给程序中的秘密函数 40
4.4.6 不同溢出类型的特征 48
第5章 利用SEH 56
5.1 关于结构化异常的简短信息 56
5.2 捕获控制 62
5.3 抑制应用程序异常终止 63
第6章 受控的格式符 64
6.1 支持格式化输出的函数 65
6.2 Cfingerd补丁 66
6.3 潜在的威胁源 66
6.3.1 强制伪造格式符 66
6.3.2 DoS实现 67
6.3.3 Peek实现 69
6.3.4 Poke实现 71
6.3.6 目标缓冲区溢出 73
6.3.5 不均衡的格式符 73
第7章 溢出实例 75
7.1 威胁源 75
7.2 技术细节 76
7.3 攻击代码 77
7.4 使攻击代码复活 80
7.5 编写shellcode 81
7.6 成功或失败 81
7.7 路在何方? 83
第8章 搜索溢出的缓冲区 84
8.1 埋没在打印纸下 85
8.2 二进制代码历险 87
8.2.1 代码分析step by step 88
8.2.2 重要提示 95
8.3 溢出错误的实例 96
第9章 保护缓冲区免遭溢出之害 102
9.1 反黑客的技术 103
9.1.1 StackGuard 103
9.1.2 不可执行栈 104
9.1.3 ITS4软件安全工具 104
9.1.4 Flawfinder 104
9.2 内存分配的问题 105
9.2.1 CCured 105
9.2.2 Memwatch 105
9.2.3 Dmalloc,the Debug Malloc Library 106
9.2.4 Checker 106
改写地址的技巧 113
10.1 无效的字符 113
第10章 编写shellcode的问题 113
第3部分 设计shellCOde的秘密 113
10.2 大小很重要 118
10.3 寻找自我 119
10.4 调用系统函数的技术 121
10.4.1 在不同的操作系统里实现系统调用 127
10.4.2 溢出之后恢复脆弱的程序 132
10.5 关于shellcoding的有趣参考 132
第11章 编写可移植shellcode的技巧 134
11.1 可移植shellcode的需求 135
11.2 达成可移植之路 135
11.3 硬编码的缺点 136
11.4 直接在内存里搜索 138
11.5 Over Open Sights:PEB 140
11.6 展开SEH栈 141
11.7 原始API 142
11.8 确保可移植的不同方法 143
第12章 自修改基础 144
12.1 了解自修改代码 144
12.2 建立自修改代码的原则 147
12.2.1 The Matrix 153
12.2.2 通过因特网修改代码的问题 156
12.2.3 关于自修改的笔记 157
第13章 在Linux里捉迷藏 159
13.1 可加载内核模块 160
13.2 从任务列表里移走进程 164
13.3 捕获系统调用 168
13.4 捕获文件系统请求 169
13.5 当模块不可用时 171
13.6 其他的隐藏方法 174
第14章 在Linux里捕获Ring 0 176
14.1 Hacking的正道 176
14.2 Linux下内核蓝牙本地攻击 177
14.3 ELFs Fall into the Dump 178
14.4 多线程的问题 179
14.5 在多处理器机器上得到root 181
14.6 有趣的资源 183
第15章 编译与反编译shellcode 184
反编译shellcode 188
第4部分 网络蠕虫和本地病毒第16章 蠕虫的生存周期 193
16.1 真实介绍前的闲言碎语 194
16.2 蠕虫介绍 195
16.2.1 蠕虫的结构解剖 196
16.2.2 蠕虫传播机理 204
16.2.3 蠕虫的到达 205
16.2.4 感染的策略与战术 206
16.2.5 为自然生态环境而努力:在同伴面前的决择,生或死 209
16.2.6 怎样发现蠕虫 213
16.2.7 怎样战胜蠕虫 216
16.2.8 暴风雨前的平静结束了? 217
16.2.9 有趣的因特网资源 219
第17章 UNIX里的本地病毒 221
病毒活动需要的条件 223
第18章 scripts里的病毒 225
第19章 ELF文件 231
19.1 ELF文件的结构 233
19.2 常见结构和病毒行为的策略 235
19.2.1 通过合并来感染 236
19.2.2 通过扩展文件的最后一节来感染 238
19.2.3 通过压缩原始文件的部分内容来感染 241
19.2.4 通过延伸文件的代码节来感染 246
19.2.5 通过把代码节下移来感染 249
19.2.6 通过创建定制的节来感染 251
19.2.7 在文件和头部之间插入来感染 251
第20章 获取控制权的方法 253
20.1 替换进入点 253
20.2 在进入点附近插入病毒码 254
20.3 修改导入表 254
第21章 被病毒感染的主要征兆 256
21.1 反病毒程序有用吗? 261
21.2 有关病毒感染的因特网资源 262
第22章 最简单的windows NT病毒 263
22.1 病毒操作的算法 264
22.2 实验室病毒的源码 265
22.3 编译并测试这个病毒 268
22.4 枚举流 270
22.5 有用的资源 270
第5部分 防火墙、蜜罐和其他保护系统第23章 绕过防火墙 273
23.1 防火墙能防御和不能防御的威胁 274
23.2 探测并识别防火墙 276
23.3 穿过防火墙的扫描和跟踪 280
23.4 渗透防火墙 281
23.5 关于防火墙的连接 282
第24章 从防火墙逃脱 283
24.1 防火墙做与不做什么 283
24.2.1 绑定exploit——“幼稚的攻击” 285
24.2 与远程主机建立连接 285
24.2.2 反向exploit 288
24.2.3 Find Exploit 290
24.2.4 重用Exploit 292
24.2.5 Fork Exploit 294
24.2.6 Sniffer Exploit——被动扫描 295
第25章 在UNIX和Windows NT下组织远程shell 296
25.1 Blind Shell 296
25.2 多功能shell 297
第26章 黑客喜欢蜂蜜 300
26.1 罐里有什么? 301
26.2 准备攻击 302
26.3 对蜜罐的认识 303
26.4 骗人的诡计 303
26.5 攻击蜜罐 303
26.6 在蜜中淹死 304
第27章 窃听LAN 305
27.1 攻击的目标和方法 305
Hub和相关的缺陷 306
27.2 被动窃听 307
检测被动窃听 314
27.3 主动窃听或ARP欺骗 315
检测主动窃听 317
27.4 克隆网卡 318
检测克隆并抵制它 318
27.5 窃听Dial-up流量 318
27.6 使sniffers失效 319
27.7 秘密窃听 319
27.8 与窃听有关的资源 320
第28章 攻击之下的数据库 321
28.1 薄弱的密码加密算法 322
28.2 密码窃听 322
28.3 Hacking a script 323
28.4 难忘的查询或SQL注入 324
28.5 怎样检测SQL服务器的存在 327
28.6 抵抗入侵 328
第6部分 可用于插入的外来对象第29章 攻击蓝牙 331
29.1 什么是蓝牙? 332
29.2 精确射击型天线 333
与天线有关的有趣的连接 335
29.3 认证和授权 335
关于加密算法的有趣连接 337
29.4 攻击方法 338
29.5 蓝牙hacking工具概述 339
与蓝牙安全相关的连接 339
WIDCOMM里的溢出错误 340
第30章 节省GPRS费用 342
30.1 通过代理服务器工作 342
30.2 Google Web Accelerator 343
其他的Web加速器 344
30.3 通过telnet隧道 345
30.4 通过ICMP隧道 346
黑客软件 347
第31章 关于flashing BIOS的传说和神话 348
31.1 升级BIOS的好处 351
31.1.1 支持新设备 352
31.1.2 新操作模块 353
31.1.3 解决冲突 353
31.3 Hacking BIOS 355
31.2 什么时候升级BIOS 355
31.3.1 深入了解刷新工具 358
31.3.2 刷新BIOS的技巧 358
31.3.3 自我维护的BIOS 360
31.3.4 不能自我维护的BIOS 362
第32章 病毒感染BIOS 363
32.1 怎么进行 364
32.2 深入BIOS 365
32.3 Baptizing by fire,or creating an ISA ROM module 369
32.4 修改启动块 373
升高栅栏 374
32.5 系统超频 375
32.6 与BIOS有关的有用连接 376
CD内容 377