第1章 绪论 1
1.1木马的基本概念 1
1.2木马的发展历程 4
1.3木马的类型 7
1.4本书组织结构 8
第2章 木马的隐藏 11
2.1木马自身文件的隐藏 11
2.1.1基于文件枚举函数Hook的隐藏 12
2.1.2基于FSD Hook的文件隐藏 20
2.1.3基于自定义文件系统的隐藏 25
2.2木马模块的隐藏 30
2.2.1“摘链”隐藏 30
2.2.2基于PE Loader的隐藏 34
2.3网络端口的隐藏 38
2.3.1Windows XP系统下的端口隐藏 39
2.3.2Vista之后的端口隐藏 45
2.3.3端口复用 51
2.4小结 55
第3章 木马驱动加载与启动 56
3.1Windows存储与启动过程 56
3.1.1Windows系统硬盘与分区 56
3.1.2基于BIOS的系统启动过程 59
3.1.3基于UEFI的启动过程 65
3.2基于MBR的Bootkit 66
3.2.1MBR结构解析 66
3.2.2MBR的修改 69
3.3基于VBR的Bootkit 71
3.3.1VBR结构解析 71
3.3.2VBR的修改 73
3.4Bootkit控制系统启动与加载驱动 74
3.4.1挂钩中断 74
3.4.2监控系统启动 76
3.4.3加载驱动 79
3.5小结 81
第4章 木马的免杀 82
4.1免杀原理 82
4.2针对静态查杀的免杀 84
4.2.1特征字符串变形 84
4.2.2木马组件加密和存储 86
4.2.3基于泛型的API动态调用 89
4.3针对动态查杀的免杀 93
4.3.1时间延迟方式 94
4.3.2资源耗尽方式 94
4.3.3上下文差异 95
4.3.4多次启动 96
4.3.5虚拟环境中的Windows API差异 97
4.3.6已知特定目标机器信息 98
4.4其他免杀方法 99
4.4.1代码注入 99
4.4.2傀儡进程 101
4.4.3DLL劫持 102
4.5脚本化木马 104
4.6小结 105
第5章 木马反分析技术 106
5.1反调试 106
5.1.1调试器的工作机制 106
5.1.2反调试 108
5.2反反汇编 116
5.3反虚拟机 119
5.4反沙盒 125
5.4.1沙盒原理 125
5.4.2沙盒检测 126
5.5反内存扫描 127
5.6小结 129
第6章 Windows64位系统下的木马技术 130
6.1Windows64位系统 130
6.2Wow64子系统 132
6.3Wow64中执行64位代码 136
6.3.1 32位进程中执行64位的指令 136
6.3.2 32位进程中调用64位API 139
6.4小结 141
第7章 木马通信与防火墙穿透 142
7.1基于TCP的木马控制通信 143
7.1.1粘包和分包处理 144
7.1.2链接保活 145
7.2基于UDP的木马控制通信 147
7.3基于HTTP/HTTPS的木马通信 150
7.4边界防火墙穿透 155
7.5Forefront TMG穿透解析 158
7.5.1Forefront TMG实验网络拓扑 160
7.5.2穿透思路与实现 161
7.6小结 163
第8章 木马实例解析 164
8.1模块化的木马系统架构 164
8.2生成器 166
8.3被控端 168
8.3.1木马释放组件 169
8.3.2常驻模块 172
8.4控制端 177
8.4.1控制端的架构 177
8.4.2控制端的通信 178
8.5小结 182
第9章 木马技术的发展趋势 183
9.1通信更加隐蔽化 183
9.1.1基于Tor的通信 183
9.1.2基于公共服务的中转通信 184
9.1.3基于内核的网络通信 185
9.2实现呈现硬件化 186
9.3植入平台多样化 188
9.4小结 189
参考文献 190