第1章 引言
1. l 计算机世界和攻击的黄金时代
1. 2 为什么要写这本书
1. 2. l 为什么讲述这些具体的工具和技术
1. 2. 2 本书有什么不同
1. 3 威胁--永远不要低估你的对手
1. 4 术语和插图
1. 4. l 黑客. 计算机窃贼和各种颜色的"帽子"--都是"攻击者"
1. 4. 2 插图和实例
l. 4. 3 命名
1. 5 警告--这些工具可能伤害你
1. 5. l 建立实验用的实验室
1. 5. 2 其他的问题
1. 6 本书的组织结构
1. 6. l 利用技术加速
1. 6. 2 攻击的一般阶段
1. 6. 3 未来预测. 结论和参考
1. 7 小结
第2章 网络简介
2. 1 OSI参考模型和协议分层
2. 2 如何适用TCP/IP
2. 3 理解TCP/IP
2. 4 传输控制协议
2. 4. 1 TCP端口号
2. 4. 2 TCP控制位. 3次握手和序列号
2. 4. 3 TCP首部里的其他字段
2. 5 用户数据报协议
2. 6 网际协议和网际控制消息协议
2. 6. 1 IP简介
2. 6. 3 IP地址
2. 6. 4 网络掩码
2. 6. 5 IP里的数据包分片
2. 6. 6 IP首部的其他部分
2. 6. 7 传统IP里安全
2. 7 ICMP
2. 8 其他的网络级别的问题
2. 8. l 路由数据包
2. 8. 2 网络地址转换
2. 8. 3 防火墙:网络流量警察和足球守门员
2. 8. 4 防火墙用于个人
2. 9 不要忘记数据链路层和物理层
2. 9. l 以太网--连接之王
2. 9. 2 ARP简介
2. 9. 3 集线器和交换机
2. 10 网络的安全解决方案
2. 10. l 应用层安全
2. 10. 2 安全套按字层
2. 10. 3 IP层的安全--IPSeC
2. 11 结论
2. 12 小结
第3章 UNIX概述
3. l 概述
3. 2 结构
3. 2. 1 UNIX文件系统结构
3. 2. 2 内核和进程
3. 2. 3 自启动进程--Init. Inetd和Cron
3. 2. 4 手工启动进程
3. 2. 5 与进程交互
3. 3 账号和组
3. 3. 1 /etc/passwd文件
3. 3. 2 /ete/group文件
3. 3. 3 Root
3. 4 权限控制--UNIX许可
3. 5 UNIX信任
3. 6 常用UNIX网络服务
3. 6. 1 Telnet:命令行远程访问
3. 6. 2 FTP:文件传输协议
3. 6. 3 TFTP:简单文件传输协议
3. 6. 4 Web服务器:HTFP
3. 6. 5 电子邮件
3. 6. 6 r一命令
3. 6. 7 域名服务
3. 6. 8 网络文件系统
3. 6. 9 X- Window系统
3. 7 结论
3. 8 小结
第4章 Windows NT/22概述
4. l 概述
4. 2 简短的历史
4. 3 基本的NT概念
4. 3. 1 域--将计算机组合在一起
4. 3. 2 共享--通过网络访问资源
4. 3. 3 服务包和 HOt FiX
4. 4 结构
4. 5 怎样获得 Windows NT 口令表示
4. 6 内核模式
4. 7 账号和组
4. 7. 1 账号
4. 7. 2 组
4. 8 权限控制
4. 9 策略
4. 9. l 账号策略
4. 9. 2 用户属性设置
4. 10 信任
4. 11 审核
4. 12 对象访问控制和权限
4. 12. l 所有权
4. 12. 2 NTFS和NTFS权限
4. 12. 3 共享权限
4. 12. 4 本地访问
4. 12. 5 脆弱的默认权限和加强向导
4. 13 网络安全
4. 14 远程访问服务
4. 15 Windows 2000:欢迎来到新千年
4. 15. 1 Windows 2000 提供什么
4. 15. 2 Windows 2000里的安全问题
4. 15. 3 结构:对WindoWS NT的一些改善
4 15. 4 账号和组
4. 15. 5 权限控制
4. 15. 6 Windows 2000信任
4. 15. 7 审核
4. 15. 8 对象访问控制
4. 15. 9 网络安全性
4. 16 结论
4. 17 小结
第5章 阶段一:侦察
5. 1 低级技术侦察
5. 1. 1 社交工程
5. 1. 2 物理闯人
5. l. 3 垃圾搜寻
5. 2 搜索好的Web(STFW)
5. 2. 1 搜索一个组织自己的 Web站点
5. 2. 2 使用搜索引擎的妙计
5. 2. 3 在虚拟"灌水洞"里侦听:Usenet
5 2. 4 防御基于 Web的侦察
5. 3 Whois数据库:信息的财宝箱
5. 3. l 研究. comi. net和. org域名
5. 3. 2 研究非. corn. . net和. org的域名
5. 4 我们已经知道注册机构, 现在该干些什么
5. 4. l 通过ARIN进行IP地址分配
5. 4. 2 防御Whois搜索
5. 5 域名系统
5. 5. l 询问DNS服务器
5. 5. 2 防御基于 DNS的侦察
5. 6 通用目标侦察工具
5. 6. 1 Sam Spade--通用目标侦察客户工具
5. 6. 2 基于 Web的侦察工具:研究和攻击人口
5. 7 结论
5. 8 小结
第6章 阶段二:扫描
6. l 战争拨号
6. 1. 1 战争拨号器与端口监督拨号器
6. 1. .2 问题清单:调制解调器. 远程访问产品和无知的用户
6. 1. 3 系统管理员和不安全的调制解调器
6. 1. 4 请拨打更多的免费电话
6. l. 5 为战争拨号器寻找电话号码
6. 1. 6 战争拨号工具简史
6. 1. 7 THC. Scan 2. 0
6. 1. 8 L0pht的TBA战争拨号工具
6. l. 9 战争拨号器提供了一个有调制解调器的线路列表:现在干什么呢
6. 1. 10 防御战争拨号
6. 2 网络测绘
6. 2. 1 扫描:发现活跃主机
6. 2. 2 跟踪路由:什么是跳
6. 2. 3 Cheops:一个非常好的网络测绘工具和通用管理工具
6. 2. 4 防御网络测绘
6. 3 使用端口扫描器确定开放端日
6. 3. 1 Nmap:一个功能齐全的端日扫描工具
6. 3. 2 对端口扫描的防御
6. 3. 3 用Firewalk确定防火墙过滤器的规则
6. 4 漏洞扫描工具
6. 4. l 完整的漏洞扫描器家族
6. 4. 2 Nessus
6. 4. 3 防御漏洞扫描
6. 5 躲避侵人检测系统
6. 5. 1 基于网络的侵人检测系统如何工作
6. 5. 2 攻击者如何能够躲避基于网络的侵人检测系统
6. 5. 3 防御IDS躲避
6. 6 结论
6. l 小结
第7章 阶段三:使用应用程序和操作系统的攻击获得访问权
7. l 脚本小孩对漏洞的寻找
7. 2 高级攻击者的编程手段
7. 3 基于堆栈的缓冲区溢出攻击
7. 3. 1 什么是堆栈
7. 3. 2 什么是基于堆栈的缓冲区溢出
7. 3. 3 利用基于堆栈的缓冲区溢出
7. 3. 4 发现缓冲区溢出漏洞
7. 3. 5 缓冲区溢出的组成
7. 3. 6 入侵检测系统和基于堆栈的缓冲区溢出
7. 3. 7 缓冲区溢出对应用层IDS躲避
7. 3. 8 一旦堆栈被攻陷怎么办
7. 3. 9 缓冲区溢出之外
7 3. 10 基于堆栈的缓冲区溢出攻击和相关防御
7. 4 密码攻击
7. 4. l 猜测缺省密码
7. 4. 2 通过登录脚本猜测密码
7. 4. 3 密码破解的科学和艺术性
7. 4. 4 破解那些密码
7. 4. 5 使用L0phCrack来破解Windows NT2000密码
7. 4. 6 使用 John the hippo破解 UNIX(和其他操作系统)密码
7. 4. 7 防范密码破解的攻击
7. 5 网络应用程序的攻击
7. 5. l 收集账号
7. 5. 2 破坏Web应用程序的会话跟踪
7 5. 3 SQL Rggylerking
7. 5. 4 防御 Piggybacking ny命令
7. 6 结论
7. 7 小结
第8章 阶段三:使用网络攻击获得访问权
8. l 嗅探
8. 1. 1 通过集线器进行嗅探:被动嗅探
8. 1. 2 主动唤探:通过交换机和其他
Cool Goodies进行嗅探
8. 1. 3 Dsinff:嗅探丰饶角
8. 1. 4 嗅探的防御
8. 2 IP地址欺骗
8. 2. 1 IP地址欺骗类型1:简单欺骗
8. 2. 2 IP地址欺骗类型2:破坏UNIX的r命令
8. 2. 3 IP地址欺骗类型3:源路由欺骗
8. 2. 4 IP欺骗的防范
8. 3 会话劫持
8. 3. l 使用Hun进行会话劫持
8. 3. 2 防御会话劫持
8. 4 Netcat:多功能网络工具
8. 4. 1 Netea用于文件传输
8. 4. 2 Netcat用于端口扫描
8. 4. 3 Netcat用于建立到开放端回连接
8. 4. 4 Netcat用于漏洞扫描
8. 4. 5 用Netcat创建被动的后门命令Shell
8. 4. 6 用NetCat主动地推动一个后门命令shell
8. 4. 7 用Netcat进行流量中继
8. 4. 8 Netcat的防御
8. 5 结论
8. 6 小结
第9章 阶段三:拒绝服务式攻击
9. l 停止本地服务
9. 2 本地资源消耗
9. 3 远程终止服务
9. 4 远程资源消耗
9. 4. 1 SYN洪泛
9. 4. 2 smurf攻击
9. 4. 3 分布拒绝服务式攻击
9. 5 结论
9. 6 小结
第10章 阶段四:维护访问权
10. 1 特洛伊木马
10. 2 后门
10. 3 嵌人特洛伊木马内的后门程序
10. 4 应用级特洛伊木马后门工具
10. 5 防御应用级特洛伊木马后门
10. 5. l 最低限度:使用反病毒工具
10. 5. 2 不要使用单一目的的BOZK监察器
10. 5. 3 了解你的软件
10. 5. 4 用户教育也很重要
10. 6 传统的RootKits
10. 6. l 传统的Rootalts做什么
10. 6. 2 传统的RootKits在UNIX上的中心:替换/bin/login
10. 6. 3 传统的Roobot:截获密码
10. 6. 4 传统的RootKit:隐藏嗅探
10. 6. 5 传统的Rookit:隐藏其他的所有东西
10. 6. 6 传统的Rootalt:掩盖踪迹
10. 6. 7 传统Rookit的一些特殊例子
10. 7 防御传统的Rootalt
10. 7. l 不要让攻击者得到根权限
10. 7. 2 寻找文件系统中的变化
10. 7. 3 基于主机的安全扫描器
10. 7. 4 最好的防御:文件完整性检查
10. 7. 5 遭到Rootalt攻击了该如何恢复
10. 8 内核级RootKit
10. 8. 1 执行重定向的威力
10. 8. 2 内核级RootKit的文件隐藏
10. 8. 3 内核级Rootkit的进程隐藏
10. 8. 4 内核级RootKit的网络隐藏
10. 8. 5 如何实现内核级Rootkit:可加载的内核模块
10. 8. 6 内核级Rookit的特殊例子
10. 9 防御内核级RootKit
10. 9. l 以火攻火:使不得
10. 9. 2 不要让他们获得根权限
10. 9. 3 寻找内核级RootKit的踪迹
10. 9. 4 自动RootKit检查器
10. 9. 5 最好的办法:不支持LKM的内核
10. 10 结论
10. 11 小结
第11章 阶段五:掩盖踪迹和隐藏
11. l 通过改变事件日志来隐藏事件
11. 1. l 攻击 WindowsNT2000的系统日志
11. 12 攻击 UNIX系统的系统日志和账号文件
11. 1. 3 改变 UNIX命令行历史记录文件
11. 2 日志和账号文件攻击的防御
11. 2. l 激活日志功能
11. 2. 2 设置适当的访问许可
11. 2. 3 使用独立的日志服务器
11. 2. 4 加密日志文件
11. 2. 5 使日志文件只能追加
11. 2. 6 用一次写介质存储日志文件
11. 3 建立一个难于发现的文件和目录
11. 3. l 在 UNIX系统内建立隐藏文件和目录
11. 3. 2 在 Windows NT2000系统建立隐含文件
11. 3. 3 隐藏文件的防御
11. 4 利用"秘密通道"技术隐藏证据
11. 4. 2 更隐秘的通道:使用 TCP和 IP来携带数据
11. 5 秘密通道的防御
11. 6 结论
11. 7 小结
第12章 攻击的分析
12. l 案例1:基于调制解调器拨号"M"
12. 2 案例2:远程交换的灭亡
12. 3 案例3:不满的立约者
12. 4 结论
12. 5 小结
第13章 未来. 资源和结论
13. 1 我们去往何方
13. 1. 1 情景1:哎呀
13. 1. 2 情景2:安全的未来
13. 1. 3 情景1, 然后情景2
13. 2 保持速度
13. 2. 1 Web站点
13. 2. 2 邮件列表
13. 2. 3 会议
13. 3 最后的思考
13. 4 小结