目录
●第1章 简介
第2章 编程
2.1 编程的含义
2.2 伪代码
2.3 控制结构
2.3.1 If-Then-Else
2.3.2 While/Until循环
2.3.3 For循环
2.4 更多编程基本概念
2.4.1 变量
2.4.2 算术运算符
2.4.3 比较运算符
2.4.4 函数
2.5 动手练习
2.5.1 了解全局
2.5.2 x86处理器
2.5.3 汇编语言
2.6 接着学习基础知识
2.6.1 字符串
2.6.2 signed、unsigned、long和short
2.6.3 指针
2.6.4 格式化字符串
2.6.5 强制类型转换
2.6.6 命令行参数
2.6.7 变量作用域
2.7 内存分段
2.7.1 C语言中的内存分段
2.7.2 使用堆
2.7.3 对malloc()进行错误检查
2.8 运用基础知识构建程序
2.8.1 文件访问
2.8.2 文件权限
2.8.3 用户ID
2.8.4 结构
2.8.5 函数指针
2.8.6 伪随机数
2.8.7 猜扑克游戏
第3章 漏洞发掘
3.1 通用的漏洞发掘技术
3.2 缓冲区溢出
3.3 尝试使用BASH
3.4 其他内存段中的溢出
3.4.1 一种基本的基于堆的溢出
3.4.2 函数指针溢出
3.5 格式化字符串
3.5.1 格式化参数
3.5.2 格式化参数漏洞
3.5.3 读取任意内存地址的内容
3.5.4 向任意内存地址写入
3.5.5 直接参数访问
3.5.6 使用short写入
3.5.7 使用.dtors
3.5.8 notesearch程序的另一个漏洞
3.5.9 重写全局偏移表
第4章 网络
4.1 OSI模型
4.2 套接字
4.2.1 套接字函数
4.2.2 套接字地址
4.2.3 网络字节顺序
4.2.4 Internet地址转换
4.2.5 一个简单的服务器示例
4.2.6 一个Web客户端示例
4.2.7 一个微型Web服务器
4.3 分析较低层的处理细节
4.3.1 数据链路层
4.3.2 网络层
4.3.3 传输层
4.4 网络嗅探
4.4.1 原始套接字嗅探
4.4.2 libpcap嗅探器
4.4.3 对层进行解码
4.4.4 活动嗅探
4.5 拒绝服务
4.5.1 SYN泛洪
4.5.2 死亡之ping
4.5.3 泪滴攻击
4.5.4 ping泛洪
4.5.5 放大攻击
4.5.6 分布式DoS泛洪
4.6 TCP/IP劫持
4.6.1 RST劫持
4.6.2 持续劫持
4.7 端口扫描
4.7.1 秘密SYN扫描
4.7.2 FIN、X-mas和null扫描
4.7.3 欺骗诱饵
4.7.4 空闲扫描
4.7.5 主动防御(shroud)
4.8 发动攻击
4.8.1 利用GDB进行分析
4.8.2 投弹
4.8.3 将shellcode绑定到端口
第5章 shellcode
5.1 对比汇编语言和C语言
5.2 开始编写shellcode
5.2.1 使用堆栈的汇编语言指令
5.2.2 使用GDB进行分析
5.2.3 删除null字节
5.3 衍生shell的shellcode
5.3.1 特权问题
5.3.2 进一步缩短代码
5.4 端口绑定shellcode
5.4.1 复制标准文件描述符
5.4.2 分支控制结构
5.5 反向连接shellcode
第6章 对策
6.1 用于检测入侵的对策
6.2 系统守护程序
6.2.1 信号简介
6.2.2 tinyweb守护程序
6.3 攻击工具
6.4 日志文件
6.5 忽略明显征兆
6.5.1 分步进行
6.5.2 恢复原样
6.5.3 子进程
6.6 高级伪装
6.6.1 伪造记录的IP地址
6.6.2 无日志记录的漏洞发掘
6.7 完整的基础设施
6.8 偷运有效载荷
6.8.1 字符串编码
6.8.2 隐藏NOP雪橇的方式
6.9 缓冲区约束
6.10 加固对策
6.11 不可执行堆栈
6.11.1 ret2libc
6.11.2 进入system()
6.12 随机排列的堆栈空间
6.12.1 用BASH和GDB进行研究
6.12.2 探测linux-gate
6.12.3 运用知识
6.12.4 第一次尝试
6.12.5 多次尝试终获成功
第7章 密码学
7.1 信息理论
7.1.1 绝对安全
7.1.2 一次性密码簿
7.1.3 量子密钥分发
7.1.4 计算安全性
7.2 算法运行时间
7.3 对称加密
7.4 非对称加密
7.4.1 RSA
7.4.2 PeterShor的量子因子算法
7.5 混合密码
7.5.1 中间人攻击
7.5.2 不同的SSH协议主机指纹
7.5.3 模糊指纹
7.6 密码攻击
7.6.1 字典攻击
7.6.2 穷举暴力攻击
7.6.3 散列查找表
7.6.4 密码概率矩阵
7.7 无线802.11b加密
7.7.1 WEP
7.7.2 RC4流密码
7.8 WEP攻击
7.8.1 离线暴力攻击
7.8.2 密钥流重用
7.8.3 基于IV的解密字典表
7.8.4 IP重定向
7.8.5 FMS攻击
第8章 写在最后
内容介绍
作为一本黑客破解方面的畅销书和长销书,本书接近从程序开发的角度讲述黑客技术,虽然篇幅不长,但内容丰富,涉及了缓冲区、堆、栈溢出、格式化字符串的编写等编程知识,网络嗅探、端口扫描、拒绝服务攻击等网络知识,以及信息论、密码破译、各种加密方法等密码学方面的知识。通过阅读本书,读者可以了解黑客攻击的精髓、各种黑客技术的作用原理,甚至利用并欣赏各种黑客技术,使自己的网络系统的安全性更高,软件稳定性更好,问题解决方案更有创造性。
值得一提的是,书中的代码示例都是在基于运行Linux系统的x86计算机上完成的,与本书配套的LiveCD(可从异步社区下载)提供了已配置好的Linux环境,鼓励读者在拥有类似结构的计算机上进行实践。读者将看到自己的工作成果,并不断实验和尝试新的技术,而这正是黑客所崇尚的精神。本书适合具有一定编程基础且对黑客技术感兴趣的读者阅读。