《Shellcoder编程揭秘》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)开斯宾革(Kaspersky,K.)著;罗爱国等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2006
  • ISBN:7121030306
  • 页数:377 页
图书介绍:本书的内容紧密围绕shellcoder编程展开,系统地阐述了作为一名shellcoder应该掌握的知识要点。除了shellcoder之外,作者还介绍了手机,BIOS等涉及安全的新领域。本书的第1部分介绍了编写shellcoder前应掌握的一些基本概念,应熟悉的软件工具等内容,还介绍了利用GPRS入侵的细节。第2部分则以常见的栈溢出、堆溢出问题开始,接着介绍了SEH、格式化漏洞等内容,最后介绍怎样解决这些漏洞,并以实际的漏洞为例,讲解怎样利用漏洞。第3部分主要放在编写shellcoder上,介绍怎样编写适应多种环境的shellcoder,除了以Windows平台为主,还稍带介绍了Linux平台上shellcoder。第4部分介绍了网络蠕虫与病毒。第5部分介绍了防火墙,蜜罐,和其他的保护系统。重点介绍了怎样突破这些保护系统。第6部分介绍了除常见攻击对象之外的其他目标,如无线网络、手机、BIOS等。书中还包括了大量未公开的用C/iC编语言编写攻击代码的高级技巧。

第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