本书由世界杰出黑客打造,细致讲解了IE、Firefox、Chrome等主流浏览器及其扩展和应用上的安全问题和漏洞,介绍了大量的攻击和防御技术,具体内容包括:初始控制,持续控制,绕过同源策略,攻击用户、浏览器、扩展、插件、Web应用、网络,等等。它是你在实践中的必读参考指南,对实际开发具有重要指导作用,能够助你在浏览器安全领域有所作为。
《黑客攻防技术宝典 浏览器实战篇》目录
第1章 浏览器安全概述
1.1 首要问题
1.2 揭密浏览器
1.2.1 与Web应用休戚与共
1.2.2 同源策略
1.2.3 HTTP首部
1.2.4 标记语言
1.2.5 CSS
1.2.6 脚本
1.2.7 DOM
1.2.8 渲染引擎
1.2.9 Geolocation
1.2.10 Web 存储
1.2.11 跨域资源共享
1.2.12 HTML5
1.2.13 隐患
1.3 发展的压力
1.3.1 HTTP首部
1.3.2 反射型XSS过滤
1.3.3 沙箱
1.3.4 反网络钓鱼和反恶意软件
1.3.5 混入内容
1.4 核心安全问题
1.4.1 攻击面
1.4.2 放弃控制
1.4.3 TCP协议控制
1.4.4 加密通信
1.4.5 同源策略
1.4.6 谬论
1.5 浏览器攻防方法
1.5.1 初始化
1.5.2 持久化
1.5.3 攻击
1.6 小结
1.7 问题
1.8 注释
第2章 初始控制
2.1 理解控制初始化
2.2 实现初始控制
2.2.1 使用XSS攻击
2.2.2 使用有隐患的Web应用
2.2.3 使用广告网络
2.2.4 使用社会工程攻击
2.2.5 使用中间人攻击
2.3 小结
2.4 问题
2.5 注释
第3章 持续控制
3.1 理解控制持久化
3.2 通信技术
3.2.1 使用XMLHttpRequest轮询
3.2.2 使用跨域资源共享
3.2.3 使用WebSocket通信
3.2.4 使用消息传递通信
3.2.5 使用DNS隧道通信
3.3 持久化技术
3.3.1 使用内嵌框架
3.3.2 使用浏览器事件
3.3.3 使用底层弹出窗口
3.3.4 使用浏览器中间人攻击
3.4 躲避检测
3.4.1 使用编码躲避
3.4.2 使用模糊躲避
3.5 小结
3.6 问题
3.7 注释
第4章 绕过同源策略
4.1 理解同源策略
4.1.1 SOP与DOM
4.1.2 SOP与CORS
4.1.3 SOP与插件
4.1.4 通过界面伪装理解SOP
4.1.5 通过浏览器历史理解SOP
4.2 绕过SOP技术
4.2.1 在Java中绕过SOP
4.2.2 在Adobe Reader中绕过SOP
4.2.3 在Adobe Flash中绕过SOP
4.2.4 在Silverlight中绕过SOP
4.2.5 在IE中绕过SOP
4.2.6 在Safari中绕过SOP
4.2.7 在Firefox中绕过SOP
4.2.8 在Opera中绕过SOP
4.2.9 在云存储中绕过SOP
4.2.10 在CORS中绕过SOP
4.3 利用绕过SOP技术
4.3.1 代理请求
4.3.2 利用界面伪装攻击
4.3.3 利用浏览器历史
4.4 小结
4.5 问题
4.6 注释
第5章 攻击用户
5.1 内容劫持
5.2 捕获用户输入
5.2.1 使用焦点事件
5.2.2 使用键盘事件
5.2.3 使用鼠标和指针事件
5.2.4 使用表单事件
5.2.5 使用IFrame按键记录
5.3 社会工程学
5.3.1 使用标签绑架
5.3.2 使用全屏
5.3.3 UI期望滥用
5.3.4 使用经过签名的Java小程序
5.4 隐私攻击
5.4.1 不基于cookie的会话追踪
5.4.2 绕过匿名机制
5.4.3 攻击密码管理器
5.4.4 控制摄像头和麦克风
5.5 小结
5.6 问题
5.7 注释
第6章 攻击浏览器
6.1 采集浏览器指纹
6.1.1 使用HTTP首部
6.1.2 使用DOM属性
6.1.3 基于软件bug
6.1.4 基于浏览器特有行为
6.2 绕过cookie检测
6.2.1 理解结构
6.2.2 理解属性
6.2.3 绕过路径属性的限制
6.2.4 cookie存储区溢出
6.2.5 使用cookie实现跟踪
6.2.6 Sidejacking攻击
6.3 绕过HTTPS
6.3.1 把HTTPS降级为HTTP
6.3.2 攻击证书
6.3.3 攻击SSL/TLS层
6.4 滥用URI模式
6.4.1 滥用iOS
6.4.2 滥用三星Galaxy
6.5 攻击JavaScript
6.5.1 攻击JavaScript加密
6.5.2 JavaScript和堆利用
6.6 使用Metasploit取得shell
6.6.1 Metasploit起步
6.6.2 选择利用
6.6.3 仅执行一个利用
6.6.4 使用Browser Autopwn
6.6.5 结合使用BeEF和Metasploit
6.7 小结
6.8 问题
6.9 注释
第7章 攻击扩展
7.1 理解扩展的结构
7.1.1 扩展与插件的区别
7.1.2 扩展与附加程序的区别
7.1.3 利用特权
7.1.4 理解Firefox扩展
7.1.5 理解Chrome扩展
7.1.6 IE扩展
7.2 采集扩展指纹
7.2.1 使用HTTP首部采集指纹
7.2.2 使用DOM采集指纹
7.2.3 使用清单文件采集指纹
7.3 攻击扩展
7.3.1 冒充扩展
7.3.2 跨上下文脚本攻击
7.3.3 执行操作系统命令
7.3.4 操作系统命令注入
7.4 小结
7.5 问题
7.6 注释
第8章 攻击插件
8.1 理解插件
8.1.1 插件与扩展的区别
8.1.2 插件与标准程序的区别
8.1.3 调用插件
8.1.4 插件是怎么被屏蔽的
8.2 采集插件指纹
8.2.1 检测插件
8.2.2 自动检测插件
8.2.3 用BeEF检测插件
8.3 攻击插件
8.3.1 绕过点击播放
8.3.2 攻击Java
8.3.3 攻击Flash
8.3.4 攻击ActiveX控件
8.3.5 攻击PDF阅读器
8.3.6 攻击媒体插件
8.4 小结
8.5 问题
8.6 注释
第9章 攻击Web应用
9.1 发送跨域请求
9.1.1 枚举跨域异常
9.1.2 前置请求
9.1.3 含义
9.2 跨域Web应用检测
9.2.1 发现内网设备IP地址
9.2.2 枚举内部域名
9.6 跨域资源检测
检测跨域资源
9.7 跨域Web应用漏洞检测
9.7.1 SQL注入漏洞
9.7.2 检测XSS漏洞
9.8 通过浏览器代理
9.8.1 通过浏览器上网
9.8.2 通过浏览器Burp
9.8.3 通过浏览器Sqlmap
9.8.4 通过Flash代理请求
9.9 启动拒绝服务攻击
9.9.1 Web应用的痛点
9.9.2 使用多个勾连浏览器DDoS
9.10 发动Web应用利用
9.10.1 跨域DNS劫持
9.10.2 JBoss JMX跨域远程命令执行
9.10.3 GlassFish跨域远程命令执行
9.10.4 m0n0wall跨域远程命令执行
9.10.5 嵌入式设备跨域命令执行
9.11 小结
9.12 问题
9.13 注释
9.5 利用跨站点请求伪造
9.5.1 理解跨站点请求伪造
9.5.2 通过XSRF攻击密码重置
9.5.3 使用CSRF token获得保护
9.4 跨域认证检测
9.3 跨域Web应用指纹采集
请求已知资源
第10章 攻击网络
10.1 识别目标
10.1.1 识别勾连浏览器的内部IP
10.1.2 识别勾连浏览器的子网
10.2 ping sweep
10.2.1 使用XMLHttpReqeust
10.2.2 使用Java
10.3 扫描端口
10.3.1 绕过端口封禁
10.3.2 使用IMG标签扫描端口
10.3.3 分布式端口扫描
10.4 采集非HTTP服务的指纹
10.5 攻击非HTTP服务
10.5.1 NAT Pinning
10.5.2 实现协议间通信
10.5.3 实现协议间利用
10.6 使用BeEF Bind控制shell
10.6.1 BeEF Bind Shellcode
10.6.2 在利用中使用BeEF Bind
10.6.3 把BeEF Bind作为Web shell
10.7 小结
10.8 问题
10.9 注释
《黑客攻防技术宝典 IOS实战篇》目录
第1 章 iOS 安全基础知识
1.1 iOS硬件/设备的类型
1.2 苹果公司如何保护App Store
1.3 理解安全威胁
1.4 理解iOS的安全架构
1.4.1 更小的受攻击面
1.4.2 精简过的iOS
1.4.3 权限分离
1.4.4 代码签名
1.4.5 数据执行保护
1.4.6 地址空间布局随机化
1.4.7 沙盒
1.5 iOS攻击简史
1.5.1 Libtiff
1.5.2 短信攻击
1.5.3 Ikee蠕虫
1.5.4 Storm8
1.5.5 SpyPhone
1.5.6 Pwn2Own 2010
1.5.7 Jailbreakme.com 2(“Star”)
1.5.8 Jailbreakme.com 3(“Saffron”)
1.6 小结
第2 章 企业中的iOS
2.1 iOS配置管理
2.1.1 移动配置描述文件
2.1.2 iPhone配置实用工具
2.2 移动设备管理
2.2.1 MDM网络通信
2.2.2 Lion Server描述文件管理器
2.3 小结
第3 章 加密
3.1 数据保护
3.2 对数据保护的攻击
3.2.1 对用户密码的攻击
3.2.2 iPhone Data Protection Tools
3.3 小结
第4 章 代码签名和内存保护
4.1 强制访问控制
4.1.1 AMFI钩子
4.1.2 AMFI和execv
4.2 授权的工作原理
4.2.1 理解授权描述文件
4.2.2 如何验证授权文件的有效性
4.3 理解应用签名
4.4 深入了解特权
4.5 代码签名的实施方法
4.5.1 收集和验证签名信息
4.5.2 如何在进程上实施签名
4.5.3 iOS如何确保已签名页不发生改变
4.6 探索动态代码签名
4.6.1 MobileSafari的特殊性
4.6.2 内核如何处理即时编译
4.6.3 MobileSafari内部的攻击
4.7 破坏代码签名机制
4.7.1 修改iOS shellcode
4.7.2 在iOS上使用Meterpreter
4.7.3 取得App Store的批准
4.8 小结
第5 章 沙盒
5.1 理解沙盒
5.2 在应用开发中使用沙盒
5.3 理解沙盒的实现
5.3.1 理解用户空间库的实现
5.3.2 深入内核
5.3.3 沙盒机制对App Store应用和平台应用的影响
5.4 小结
第6 章 对iOS 应用进行模糊测试
6.1 模糊测试的原理
6.2 如何进行模糊测试
6.2.1 基于变异的模糊测试
6.2.2 基于生成的模糊测试
6.2.3 提交和监测测试用例
6.3 对Safari进行模糊测试
6.3.1 选择接口
6.3.2 生成测试用例
6.3.3 测试和监测应用
6.4 PDF模糊测试中的冒险
6.5 对快速查看(Quick Look)的模糊测试
6.6 用模拟器进行模糊测试
6.7 对MobileSafari进行模糊测试
6.7.1 选择进行模糊测试的接口
6.7.2 生成测试用例
6.7.3 MobileSafari的模糊测试与监测
6.8 PPT模糊测试
6.9 对SMS的模糊测试
6.9.1 SMS基础知识
6.9.2 聚焦协议数据单元模式
6.9.3 PDUspy的使用
6.9.4 用户数据头信息的使用
6.9.5 拼接消息的处理
6.9.6 其他类型UDH数据的使用
6.9.7 用Sulley进行基于生成的模糊测试
6.9.8 SMS iOS注入
6.9.9 SMS的监测
6.9.10 SMS bug
6.10 小结
第7 章 漏洞攻击
7.1 针对bug类的漏洞攻击
7.2 理解iOS系统自带的分配程序
7.2.1 区域
7.2.2 内存分配
7.2.3 内存释放
7.3 驯服iOS的分配程序
7.3.1 所需工具
7.3.2 与分配/释放有关的基础知识
7.4 理解TCMalloc
7.4.1 大对象的分配和释放
7.4.2 小对象的分配
7.4.3 小对象的释放
7.5 驯服TCMalloc
7.5.1 获得可预知的堆布局
7.5.2 用于调试堆操作代码的工具
7.5.3 堆风水:以TCMalloc对算术漏洞进行攻击
7.5.4 以TCMalloc就对象生存期问题进行漏洞攻击
7.6 对ASLR的挑战
7.7 案例研究:Pwn2Own 2010
7.8 测试基础设施
7.9 小结
第8 章 面向返回的程序设计
8.1 ARM基础知识
8.1.1 iOS的调用约定
8.1.2 系统调用的调用约定
8.2 ROP简介
8.2.1 ROP与堆bug
8.2.2 手工构造ROP有效载荷
8.2.3 ROP有效载荷构造过程的自动化
8.3 在iOS中使用ROP
8.4 iOS中ROP shellcode的示例
8.4.1 用于盗取文件内容的有效载荷
8.4.2 利用ROP结合两种漏洞攻击程序(JailBreakMe v3)
8.5 小结
第9 章 内核的调试与漏洞攻击
9.1 内核的结构
9.2 内核的调试
9.3 内核扩展与IOKit驱动程序
9.3.1 对IOKit驱动程序对象树的逆向处理
9.3.2 在内核扩展中寻找漏洞
9.3.3 在IOKit驱动程序中寻找漏洞
9.4 内核漏洞攻击
9.4.1 任意内存的重写
9.4.2 未初始化的内核变量
9.4.3 内核栈缓冲区溢出
9.4.4 内核堆缓冲区溢出
9.5 小结
第10 章 越狱
10.1 为何越狱
10.2 越狱的类型
10.2.1 越狱的持久性
10.2.2 漏洞攻击程序的类型
10.3 理解越狱过程
10.3.1 对bootrom进行漏洞攻击
10.3.2 引导ramdisk
10.3.3 为文件系统越狱
10.3.4 安装完美越狱漏洞攻击程序
10.3.5 安装AFC2服务
10.3.6 安装基本实用工具
10.3.7 应用转存
10.3.8 应用包安装
10.3.9 安装后的过程
10.4 执行内核有效载荷和补丁
10.4.1 内核状态修复
10.4.2 权限提升
10.4.3 为内核打补丁
10.4.4 安全返回
10.5 小结
第11 章 基带攻击
11.1 GSM基础知识
11.2 建立OpenBTS
11.2.1 硬件要求
11.2.2 OpenBTS的安装和配置
11.3 协议栈之下的RTOS
11.3.1 Nucleus PLUS
11.3.2 ThreadX
11.3.3 REX/OKL4/Iguana
11.3.4 堆的实现
11.4 漏洞分析
11.4.1 获得并提取基带固件
11.4.2 将固件镜像载入IDA Pro
11.4.3 应用/基带处理器接口
11.4.4 栈跟踪与基带核心转储
11.4.5 受攻击面
11.4.6 二进制代码的静态分析
11.4.7 由规范引路的模糊测试
11.5 对基带的漏洞攻击
11.5.1 本地栈缓冲区溢出:AT+XAPP
11.5.2 ultrasn0w解锁工具
11.5.3 空中接口可利用的溢出
11.6 小结
附录 参考资料
图书介绍
封底
《黑客攻防技术宝典 浏览器实战篇》目录
第1章 Web应用程序安全与风险
1.1 Web应用程序的发展历程
1.2 Web应用程序安全
1.3 小结
第2章 核心防御机制
2.1 处理用户访问
2.2 处理用户输入
2.3 处理攻击者
2.4 管理应用程序
2.5 小结
2.6 问题
第3章 Web应用程序技术
3.1 HTTP
3.2 Web功能
3.3 编码方案
3.4 下一步
3.5 问题
第4章 解析应用程序
4.1 枚举内容与功能
4.2 分析应用程序
4.3 小结
4.4 问题
第5章 避开客户端控件
5.1 通过客户端传送数据
5.2 收集用户数据:HTML表单
5.3 收集用户数据:浏览器扩展
5.4 安全处理客户端数据
5.5 小结
5.6 问题
第6章 攻击验证机制
6.1 验证技术
6.2 验证机制设计缺陷
6.3 验证机制执行缺陷
6.4 保障验证机制的安全
6.5 小结
6.6 问题
第7章 攻击会话管理
7.1 状态要求
7.2 会话令牌生成过程中的薄弱环节
7.3 会话令牌处理中的薄弱环节
7.4 保障会话管理的安全
7.5 小结
7.6 问题
第8章 攻击访问控制
8.1 常见漏洞
8.2 攻击访问控制
8.3 保障访问控制的安全
8.4 小结
8.5 问题
第9章 攻击数据存储区
9.1 注入解释型语言
9.2 注入SQL
9.2.1 利用一个基本的漏洞
9.2.2 注入不同的语句类型
9.2.3 查明SQL注入漏洞
9.2.4 “指纹”识别数据库
9.2.5 UNION操作符
9.2.6 提取杵⡶葥灣�
9.2.7 使用UNION提取数据
9.2.8 避开过滤
9.2.9 二阶SQL注入
9.2.10 高级利用
9.2.11 SQL注入之外:扩大数据库攻击范围
9.2.12 使用SQL注入工具
9.2.13 SQL语法与错误参考
9.2.14 防止SQL注入
9.3 注入NoSQL
9.4 注入XPath
9.5 注入LDAP
9.6 小结
9.7 问题
第10章 测试后端组件
10.1 注入操作系统命令
10.2 操作文件路径
10.3 注入XML解释器
10.4 注入后端HTTP请求
10.5 注入电子邮件
10.6 小结
10.7 问题
第11章 攻击应用程序逻辑
11.1 逻辑缺陷的本质
11.2 现实中的逻辑缺陷
11.3 避免逻辑缺陷
11.4 小结
11.5 问题
第12章 攻击其他用户
12.1 XSS的分类
12.2 进行中的XSS攻击
12.3 查找并利用XSS漏洞
12.3.1 查找并利用反射型XSS漏洞
12.3.2 查找并利用保存型XSS漏洞
12.3.3 查找并利用基于DOM的XSS漏洞
12.4 防止XSS攻击
12.5 小结
12.6 问题
第13章 攻击用户:其他技巧
13.1 诱使用户执行操作
13.2 跨域捕获数据
13.3 同源策略深入讨论
13.4 其他客户端注入攻击
13.5 本地隐私攻击
13.6 攻击ActiveX控件
13.7 攻击浏览器
13.8 小结
13.9 问题
第14章 定制攻击自动化
14.1 应用定制自动化攻击
14.2 枚举来䡶葨ދ왻�
14.3 获取杵⡶葥灣�
14.4 常见漏洞模糊测试
14.5 整合全部功能:Burp Intruder
14.6 实施自动化的限制
14.7 小结
14.8 问题
第15章 利用信息泄露
15.1 利用错误消息
15.2 收集公布的信息
15.3 使用推论
15.4 防止信息泄露
15.5 小结
15.6 问题
第16章 攻击本地编译型应用程序
16.1 缓冲区溢出漏洞
16.2 整数漏洞
16.3 格式化字符串漏洞
16.4 小结
16.5 问题
第17章 攻击应用程序架构
17.1 分层架构
17.2 共享主机与应用程序服务提供商
17.3 小结
17.4 问题
第18章 攻击Web服务器
18.1 Web服务器配置缺陷
18.2 易受攻击的服务器软件
18.3 Web应用程序防火墙
18.4 小结
18.5 问题
第19章 查找源代码中的漏洞
19.1 代码审查方法
19.2 常见漏洞签名
19.3 Java平台
19.4 ASP.NET
19.5 PHP
19.6 Perl
19.7 JavaScript
19.8 数据库代码组件
19.9 代码浏览工具
19.10 小结
19.11 问题
第20章 Web应用程序黑客工具包
20.1 Web浏览器
20.2 集成测试套件
20.3 独立漏洞扫描器
20.4 其他工具
20.5 小结
第21章 Web应用程序渗透测试方法论
21.1 解析应用程序内容
21.2 分析应用程序
21.3 测试客户端控件
21.4 测试验证机制
21.5 测试会话管理机制
21.6 测试访问控件
21.7 测试基于输入的漏洞
21.8 测试特殊功能方面的输入漏洞
21.9 测试逻辑缺陷
21.10 测试共享主机漏洞
21.11 测试Web服务器漏洞
21.12 其他检查
21.13 检查信息泄露
《黑客攻防技术宝典 反病毒篇》目录
第一部分 反病毒技术入门
第1章 反病毒软件入门 2
1.1 何谓反病毒软件 2
1.2 反病毒软件的历史与现状 2
1.3 反病毒扫描器、内核和产品 3
1.4 反病毒软件的典型误区 4
1.5 反病毒软件功能 5
1.5.1 基础功能 5
1.5.2 高级功能 8
1.6 总结 10
第2章 逆向工程核心 11
2.1 逆向分析工具 11
2.1.1 命令行工具与GUI工具 11
2.1.2 调试符号 12
2.1.3 提取调试符号的技巧 13
2.2 调试技巧 16
2.3 移植内核 22
2.4 实战案例:为Linux版Avast编写Python binding 23
2.4.1 Linux版Avast简介 23
2.4.2 为Linux版Avast编写简单的Python binding 25
2.4.3 Python binding的最终版本 30
2.5 实战案例:为Linux版Comodo编写本机C C 工具 30
2.6 内核加载的其他部分 46
2.7 总结 47
第3章 插件系统 48
3.1 插件加载原理 48
3.1.1 反病毒软件的全功能链接器 49
3.1.2 理解动态加载 49
3.1.3 插件打包方式的利弊 50
3.2 反病毒插件的种类 52
3.2.1 扫描器和通用侦测程序 52
3.2.2 支持文件格式和协议 53
3.2.3 启发式检测 54
3.3 高级插件 57
3.3.1 内存扫描器 57
3.3.2 非本机代码 58
3.3.3 脚本语言 59
3.3.4 模拟器 60
3.4 总结 61
第4章 反病毒特征码技术 62
4.1 典型特征码 62
4.1.1 字节流 62
4.1.2 校验和 63
4.1.3 定制的校验和 63
4.1.4 加密散列算法 64
4.2 高级特征码 64
4.2.1 模糊散列算法 65
4.2.2 基于程序图的可执行文件散列算法 66
4.3 总结 68
第5章 反病毒软件的更新系统 69
5.1 理解更新协议 69
5.1.1 支持SSL TLS 70
5.1.2 验证更新文件 71
5.2 剖析更新协议 72
5.3 错误的保护 79
5.4 总结 79
第二部分 绕过反病毒软件
第6章 绕过反病毒软件 82
6.1 谁会使用反病毒软件的绕过技术 82
6.2 探究反病毒软件侦测恶意软件的方式 83
6.2.1 用于侦测恶意软件的老把戏:分治算法 83
6.2.2 二进制指令和污点分析 88
6.3 总结 89
第7章 绕过特征码识别 90
7.1 文件格式:偏门案例和无文档说明案例 90
7.2 绕过现实中的特征码 91
7.3 绕过特定文件格式的相关提示和技巧 96
7.3.1 PE文件 96
7.3.2 JavaScript 98
7.3.3 PDF 100
7.4 总结 102
第8章 绕过扫描器 104
8.1 绕过技术的通用提示和策略 104
8.1.1 识别分析模拟器 105
8.1.2 高级绕过技巧 106
8.2 自动化绕过扫描器 117
8.2.1 初始步骤 117
8.2.2 MultiAV配置 121
8.2.3 peCloak 125
8.2.4 编写终极工具 126
8.3 总结 128
第9章 绕过启发式引擎 130
9.1 启发式引擎种类 130
9.1.1 静态启发式引擎 130
9.1.2 绕过简单的静态启发式引擎 131
9.1.3 动态启发式引擎 137
9.2 总结 142
第10章 确定攻击面 144
10.1 理解本地攻击面 145
10.1.1 查找文件和系统目录权限的弱点 145
10.1.2 权限提升 146
10.2 错误的访问控制列表 146
10.2.1 在Unix平台上利用SUID和SGID二进制文件漏洞 148
10.2.2 程序和二进制文件的ASLR和DEP保护 149
10.2.3 利用Windows对象的错误权限 151
10.2.4 利用逻辑缺陷 153
10.3 理解远程攻击面 155
10.3.1 文件解析器 155
10.3.2 通用侦测和感染文件修复代码 156
10.3.3 网络服务、管理面板和控制台 156
10.3.4 防火墙、入侵监测系统和解析器 157
10.3.5 更新服务 157
10.3.6 浏览器插件 157
10.3.7 安全增强软件 158
10.4 总结 159
第11章 拒绝服务攻击 161
11.1 本地拒绝服务攻击 161
11.1.1 压缩炸弹 162
11.1.2 文件格式解析器中的缺陷 165
11.1.3 攻击内核驱动 165
11.2 远程拒绝服务攻击 166
11.2.1 压缩炸弹 166
11.2.2 文件格式解析器中的缺陷 167
11.3 总结 167
第三部分 分析与攻击
第12章 静态分析 170
12.1 手动二进制审计 170
12.1.1 文件格式解析器 170
12.1.2 远程服务 177
12.2 总结 181
第13章 动态分析 182
13.1 模糊测试 182
13.1.1 模糊测试工具是什么 182
13.1.2 简单的模糊测试 183
13.1.3 对反病毒产品的自动化模糊测试 185
13.1.4 找到好的模糊测试模版 192
13.1.5 查找模版文件 194
13.1.6 使代码覆盖率最大化 196
13.1.7 模糊测试套组Nightmare 201
13.2 总结 207
第14章 本地攻击 209
14.1 利用后门和隐藏功能 209
14.2 挖掘非法特权、权限分配和访问控制列表 213
14.3 在内核态查找隐蔽的功能特性 217
14.4 更多的内核逻辑漏洞 223
14.5 总结 231
第15章 远程漏洞 233
15.1 实施客户端漏洞利用攻击 233
15.1.1 利用沙盒的缺陷 233
15.1.2 利用ASLR、DEP和位于固定地址的RWX页面漏洞 234
15.1.3 编写复杂的payload 235
15.1.4 利用更新服务中的漏洞 240
15.2 服务器端的漏洞利用 248
15.2.1 客户端和服务器端漏洞利用的区别 248
15.2.2 利用ASLR、DEP和地址固定的RWX内存页面相关漏洞 249
15.3 总结 249
第四部分 当前趋势与建议
第16章 当前反病毒防护趋势 252
16.1 匹配攻击技术与目标 252
16.1.1 多种多样的反病毒产品 252
16.1.2 针对家庭用户 253
16.1.3 针对中小型公司 254
16.2 针对政府机构和大型公司 254
16.3 总结 255
第17章 一些建议和未来展望 256
17.1 给反病毒软件用户的建议 256
17.1.1 盲目信任是错误的 256
17.1.2 隔离机器来增强防护 260
17.1.3 审计反病毒产品 261
17.2 给反病毒厂商的建议 261
17.2.1 优秀的工程师并不代表安全 261
17.2.2 利用反病毒软件的漏洞很简单 262
17.2.3 进行审计 262
17.2.4 模糊测试 262
17.2.5 安全地使用权限 263
17.2.6 减少解析器中的危险代码 263
17.2.7 改进升级服务和协议的安全性 264
17.2.8 删除或禁用旧代码 264
17.3 总结 265
文件大小:154MB
内附PC端和移动端阅读器