内容简介
译者序
致谢
第1章 导论:国际象棋游戏
目录
第一部分 基础材料
第2章 案例研究
2.1 Dalmedica
2.2 困境
2.3 调查
3.1 术语
3.1.1 脚本小子
第3章 了解对手
3.1.2 骇客
3.1.3 白帽子黑客
3.1.4 黑帽子黑客
3.1.5 黑客激进主义
3.1.6 专业攻击者
3.2 历史
3.2.1 计算机产业和大学
3.2.2 系统管理
3.2.3 家用计算机
3.2.4 家用计算机:商业软件
3.2.5 家用计算机:BBS
3.2.6 电话系统
3.3 道德规范和完全公开
3.4 内部对手
3.4.1 内部攻击者
3.4.2 企业策略
小结
第4章 攻击剖析
4.1 概览
4.2 探测
4.3 社会工程和场所探测
4.4 因特网探测
4.4.2 财务搜索工具、目录、黄页和其他资源
4.4.1 因特网搜索引擎和Usenet工具
4.5 IP和网络探测
4.5.1 域名注册商和whois搜索
4.5.2 网络域名注册商搜索(ARIN)
4.6 DNS探测
4.7 映射目标
4.8 网络映射(ICMP)
4.8.1 ICMP查询
4.8.2 TCP ping:ICMP的替代
4.8.3 traceroute
4.8.4 其他网络映射工具
4.9 端口扫描
4.9.3 包分片选项
4.9.2 标志获取
4.9.1 TCP和UDP扫描
4.9.4 欺骗扫描能力
4.9.5 标识扫描
4.9.6 FTP反弹扫描
4.9.7 源端口扫描
4.9.8 栈指纹识别技术
4.10 漏洞扫描(网络操作系统及应用问询)
4.11 漏洞的研究和探测
4.12.2 应用程序攻击
4.12.4 文件系统攻击
4.12.3 缓存利用
4.12.1 账号(口令)破解
4.12 系统/网络穿透
4.12.5 恶意和自我复制代码
4.12.6 编程策略
4.12.7 进程操纵
4.12.8 shell攻击
4.12.9 会话劫持
4.12.10 哄骗
4.12.11 基于状态的攻击
4.12.12 流量捕获(嗅探)
4.12.13 可信关系滥用
4.13 拒绝服务攻击
4.15 安全
4.14 巩固
参考文献
第5章 防御武器库
5.1 防御武器库
5.1.1 访问控制
5.1.2 系统访问控制
5.2 鉴别
5.2.1 IP鉴别
5.2.2 口令鉴别
5.2.3 窃听攻击
5.2.5 基于令牌的鉴别
5.2.6 会话鉴别
5.2.4 口令猜测攻击
5.2.7 客户端会话/ID窃取
5.2.8 密码(基于密钥的)鉴别
5.2.9 密钥传输和密钥管理漏洞
5.2.10 密钥绑定和假冒漏洞
5.2.11 针对弱密钥的字典攻击和蛮力攻击
5.2.12 集中式鉴别服务器
5.2.13 人体特征鉴别(生物测定学)
5.3 资源控制
5.4 抗抵赖性
5.5 私密性
5.5.1 虚拟专用网
5.5.2 会话和协议加密
5.5.3 文件系统加密
5.6 入侵检测
5.6.1 NIDS和HIDS
5.6.2 基于异常(基于行为)的IDS
5.6.3 基于特征(基于知识)的IDS
5.6.4 针对IDS的攻击
5.6.5 文件系统完整性检查器
5.6.6 安全信息管理
5.7 数据完整性
参考文献
6.1 语言
6.2 速度和安全的折衷
第6章 程序设计
6.2.1 本地的编译代码:C/C++/汇编语言
6.2.2 字节码/JIT编译代码(“受控”代码):C#/Java
6.2.3 解释语言(通常在运行时编译成字节码):Perl、Python(脚本语言),PHP、VB、.ASP、Lisp、JSP(Web语言)
6.3 具体语言的缺陷和防止受到这些缺陷影响的策略方法
6.4 缓冲区溢出和其他内存分配错误的基础知识
6.5 历史
6.5.1 基本的栈溢出
6.5.2 栈溢出后黑客的选择
6.5.3 什么是栈canary
6.5.4 堆溢出
6.5.5 格式字符串缺陷
6.5.8 什么是shellcode
6.5.6 整数溢出
6.5.7 UNIX上的信号竞争
6.6 解释器缺陷
6.7 文件名规范化
6.8 逻辑错误问题
6.9 特定平台的编程安全问题
6.10 应用的类型
6.11 跨站脚本漏洞
6.12 Java J2EE
6.13 传统的ASP
6.14 .Net
6.15 LAMP
6.17.1 UNIX上的setuid应用
6.16 创建一个RPC程序
6.17 特殊情况
6.17.2 DCOM服务
6.18 审查技术
6.18.1 协助代码审查的工具
6.18.2 反向工程可用的工具
6.18.3 fuzzing审查工具
6.18.4 Web安全性审查工具
6.18.5 一般的安全工具
6.19 加密和鉴别
6.21.2 使用不同的平台
6.21.1 非执行栈
6.20 分级防御
6.21 特定平台的防御
6.21.3 文件系统用户访问控制
6.21.4 进程日志
6.22 内部的问题、后门和逻辑炸弹
6.23 购买应用评估服务
小结
参考文献
第7章 IP和第2层协议
7.1 第2层协议
7.1.1 地址解析协议
7.1.2 反向地址解析协议
7.2 第3层协议
参考文献
第8章 协议
8.1 第3层协议
8.2 第4层协议
8.2.1 传输控制协议
8.2.2 用户数据报协议
参考文献
第二部分 系统和网络渗透
第9章 域名服务器
9.1 DNS协议
9.1.1 DNS协议和包结构(包数据攻击)
9.1.2 DNS漏洞
9.2.1 基于协议的攻击
9.2 DNS的利用和DNS攻击
9.2.2 基于应用的攻击
9.2.3 缓存中毒攻击
9.2.4 DNS劫持
9.3 DNS的安全和控制
9.3.1 漏洞利用对应的防御方法
9.3.2 防御策略
9.3.3 Microsoft Windows 2000 DNS日志控制
9.3.4 分层DNS拓扑结构(和DNS代理)
参考文献
10.2 目录的构成
10.2.1 架构
第10章 目录服务
10.1 什么是目录服务
10.2.2 叶对象
10.2.3 容器对象
10.2.4 命名空间
10.2.5 目录信息树
10.2.6 目录信息库
10.3 目录的特点
10.3.1 目录安全
10.4.3 全球目录
10.4.2 连接准备
10.4.4 公钥基础设施
10.3.2 单点登录
10.4.1 使用目录的网络
10.4 目录系统的使用
10.5 目录模型
10.5.1 物理与逻辑
10.5.2 扁平的与分等级的
10.6 X.500目录
10.6.1 X.500架构
10.6.2 X.500分区
10.6.3 X.500对象和命名
10.6.5 X.500后端处理
10.6.4 关于别名
10.6.6 X.500目录访问
10.6.7 X.500安全
10.6.8 访问控制
10.6.9 权限
10.6.10 小结
10.7 轻量级目录访问协议
10.7.1 LDAP架构
10.7.2 LDAP分割
10.7.3 LDAP对象和命名
10.7.5 LDAP数据相互交换格式
10.7.6 LDAP安全
10.7.4 LDAP查询
10.7.7 小结
10.8 活动目录
10.8.1 Windows NT
10.8.2 Windows 2000架构
10.8.3 Windows 2000分区
10.8.4 Windows 2000对象和命名
10.8.5 Windows 2000的命名标准和解析
10.8.6 活动目录的后端处理过程
10.8.7 Windows 2000安全
10.9.1 Sun ONE目录服务器5.1
10.9 利用LDAP
10.9.2 微软活动目录
10.10 小结
10.11 未来发展方向
10.12 深入读物
第11章 简单邮件传输协议
11.1 SMTP协议
11.1.1 SMTP协议和包结构(包数据攻击)
11.1.2 SMTP漏洞
11.1.3 SMTP协议命令和协议扩展
11.2 SMTP漏洞利用和SMTP攻击
11.2.1 SMTP协议攻击
11.2.2 ESMTP和命令集的漏洞
11.2.4 基于应用的拒绝服务
11.2.3 蠕虫和自动攻击工具
11.2.5 对邮件信任模型的攻击
11.2.6 数据完整性的攻击
11.2.7 投递状态通知的操纵
11.3 SMTP安全性和控制
11.3.1 漏洞利用与防御
11.3.2 防御策略
参考文献
第12章 超文本传输协议
12.1 HTTP协议
12.1.1 HTTP协议与数据包的构造(包数据攻击)
12.1.2 HTTP漏洞
12.1.3 HTTP协议的方法(以及相关漏洞)
12.2 HTTP漏洞利用和HTTP攻击
12.2.1 HTTP协议攻击
12.2.2 缓存技术漏洞利用
12.2.3 基于应用的攻击
12.2.4 对HTTP信任模型的攻击
12.3 HTTP安全和控制
12.3.1 漏洞利用与防御的对应
12.3.2 防御策略
参考文献
13.1 简介
13.2 弱点列举
第13章 数据库入侵和安全
13.3 SQL注入
13.3.1 简介
13.3.2 SQL注入的阶段
13.4 攻击微软SQL Server
13.4.1 微软SQL Server中的溢出
13.4.2 微软SQL Server鉴别后漏洞
13.4.3 微软SQL Server的SQL注入漏洞
13.4.4 攻击Cold Fusion Web应用程序的一个注释
13.4.5 默认的账号和配置
13.5 攻击Oracle
13.5.1 Oracle Server中的缓冲区溢出
13.5.3 默认的用户账号
13.5.2 Oracle中的SQL注入漏洞
13.5.4 Oracle评估的工具和服务
13.6 其他数据库
13.7 向后连接
13.8 证明和例子
13.8.1 阶段1:发现
13.8.2 阶段2:有漏洞的应用程序的逆向工程
13.8.3 阶段3:得到任意查询的结果
13.9 小结
第14章 恶意软件和病毒
14.1 再论道德
14.4 从Anna Kournikova中学习脚本病毒的基础知识
14.2 目标平台
14.3 脚本恶意软件
14.5 二进制病毒
14.5.1 二进制文件病毒
14.5.2 二进制引导型病毒
14.5.3 混合型病毒
14.5.4 二进制蠕虫
14.6 祸不单行
14.7 广告软件感染
14.8 小结
15.2.2 交换机
15.2.1 路由器
15.2 网络基础设施
15.1 概述
第15章 网络硬件
15.2.3 负载均衡设备
15.2.4 远程访问设备
15.2.5 无线技术
15.3 网络基础设施漏洞利用与攻击
15.3.1 设备策略攻击
15.3.2 拒绝服务
15.3.3 网络映射
15.3.4 信息窃取
15.3.6 口令或配置漏洞利用
15.3.5 哄骗
15.3.7 日志攻击
15.3.8 网络端口和协议的漏洞利用与攻击
15.3.9 设备管理攻击
15.3.10 管理协议
15.3.11 设备配置安全攻击
15.3.12 特定路由器漏洞利用
15.3.13 访问控制列表攻击
15.3.14 特定交换机漏洞利用
15.3.15 MAC地址漏洞利用
15.3.18 家庭用户系统漏洞利用
15.3.17 远程访问设备——特定漏洞利用
15.3.16 负载均衡设备——特定漏洞利用
15.3.19 无线技术——特定漏洞利用
15.4 网络基础设施安全和控制
15.4.1 防御策略
15.4.2 路由协议安全选项
15.4.3 管理安全选项
15.4.4 操作系统加固选项
15.4.5 配置审计和验证工具
15.4.6 无线网络控制
参考文献
第16章 了解攻击者的巩固策略
16.1 概述
第三部分 攻击防范
16.2 巩固(操作系统和网络设施)
16.2.1 账户和权限管理工具
16.2.2 文件系统和L/O资源
16.2.3 文件系统(操作系统)攻击
16.2.4 基于应用程序的文件系统攻击
16.2.5 服务和进程管理工具
16.2.6 进程、服务和权限标识
16.2.7 缓冲区溢出、格式化字符串和其他应用程序攻击
16.2.8 进程调试和内存操纵
16.2.9 设备和设备管理工具
16.2.10 库和共享库
16.2.11 shell访问和命令行工具
16.2.12 注册表工具(NT/2000)
16.2.13 客户端软件
16.2.14 监听器和网络服务
16.2.15 网络信息服务探测
16.2.16 SNMP探测
16.2.17 网络信任关系
16.2.18 应用/可执行环境
16.3 巩固(外来代码)
16.3.1 特洛伊木马
16.3.2 后门(和特洛伊后门)
16.3.3 后门程序
16.3.4 rootkit
16.3.5 内核级rootkit
16.4 安全性
16.5 漏洞利用与防御的对应
参考文献
第17章 取证调查中的问题
17.1 日志、审计和IDS逃避
17.1.1 日志和审计逃避
17.1.2 IDS逃避
17.2 取证逃避
17.2.1 环境清理
17.2.2 文件隐藏和文件系统操纵
17.2.3 隐蔽的网络活动
17.3 调查、取证和安全控制
参考文献
第18章 结论
18.1 结论:案例研究
18.1.1 Dalmedica的观点
18.1.2 接入点
18.1.3 堡垒主机
18.1.4 探测活动
18.1.5 目标系统
18.2 小结(最后的看法)
参考文献