目录
第1篇样本分析篇
第1章恶意代码分析基础3
1.1恶意代码3
1.1.1恶意代码的概念3
1.1.2恶意代码的生命周期5
1.1.3恶意代码与执行体和执行体安全6
1.1.4恶意代码的分类和命名规则7
1.1.5恶意代码的传播方式13
1.1.6恶意代码违法行为的法律责任14
1.2恶意代码的威胁15
1.2.1恶意代码对信息系统的威胁15
1.2.2恶意代码对受害主体的威胁16
1.3恶意代码分析流程17
1.3.1恶意代码样本的捕获和采集18
1.3.2恶意代码静态分析20
1.3.3恶意代码动态分析21
1.3.4恶意代码特征提取22
1.3.5恶意代码处置23
1.3.6报告撰写与分享23
1.4恶意代码分析技能基础24
1.4.1编程开发技能24
1.4.2汇编基础知识24
1.4.3操作系统知识24
1.4.4加密和解密技术25
1.4.5计算机网络知识25
第2章恶意代码分析环境搭建26
2.1引言26
2.1.1恶意代码分析环境26
2.1.2恶意代码分析环境搭建意义27
2.1.3恶意代码分析环境搭建原则27
2.2分析环境搭建要点28
2.2.1虚拟环境28
2.2.2硬件配置29
2.2.3操作系统配置30
2.2.4网络配置31
2.2.5分析环境分析软件配置31
2.2.6分析环境管理与维护32
2.3分析环境搭建实践34
2.3.1构建基本的硬件虚拟环境35
2.3.2安装操作系统36
2.3.3创建初始快照39
2.3.4部署基本软件41
2.3.5快照或克隆基础环境41
2.3.6部署分析软件41
2.3.7快照或克隆分析环境43
2.4常用工具44
2.4.1在线工具44
2.4.2离线工具45
2.4.3知识源46
2.5实践题47
第3章恶意代码取证技术48
3.1Windows取证技术48
3.1.1系统信息取证48
3.1.2进程取证52
3.1.3服务取证56
3.1.4网络取证 57
3.1.5注册表取证58
3.1.6任务计划取证59
3.1.7文件取证61
3.1.8日志取证62
3.2Linux取证技术68
3.2.1系统信息取证68
3.2.2进程取证70
3.2.3服务取证73
3.2.4系统启动项取证73
3.2.5计划任务取证75
3.2.6文件取证76
3.2.7日志取证 78
3.3内存取证技术79
3.3.1系统内存镜像提取80
3.3.2内存分析 80
3.4挖矿木马事件取证分析实例84
3.4.1挖矿木马取证环境介绍84
3.4.2取证分析实践过程85
3.4.3取证分析总结93
3.5实践题93
第4章恶意代码静态分析94
4.1静态分析方法94
4.2恶意代码信息检索94
4.2.1反病毒引擎扫描95
4.2.2恶意代码哈希值匹配95
4.2.3威胁情报平台检索95
4.3恶意代码格式分析97
4.3.1文件格式97
4.3.2字符串97
4.3.3壳信息99
4.3.4PE文件格式99
4.3.5导入函数103
4.3.6导出函数103
4.4静态反汇编基础104
4.4.1寄存器104
4.4.2指令105
4.4.3栈106
4.4.4条件指令107
4.4.5分支指令108
4.5二进制分析工具109
4.5.1加载可执行文件109
4.5.2IDA界面110
4.5.3交叉引用116
4.5.4函数分析118
4.5.5增强反汇编118
4.6静态分析实例120
4.7实践题126
第5章恶意代码动态分析127
5.1动态分析方法127
5.2样本行为监控128
5.2.1API Monitor128
5.2.2Sysinternals套件129
5.2.3Process Hacker129
5.3沙箱和虚拟机131
5.3.1Sandboxie131
5.3.2在线沙箱131
5.4网络分析133
5.4.1Wireshark133
5.4.2TCPDump134
5.4.3TCPView135
5.4.4FakeNetNG136
5.4.5Packet Sender136
5.5二进制调试器137
5.5.1OllyDbg137
5.5.2x64dbg137
5.5.3IDA138
5.5.4dnSpy139
5.5.5WinDbg139
5.5.6GDB139
5.6二进制Hook140
5.6.1使用Frida tools141
5.6.2编写Python脚本141
5.7模拟执行141
5.7.1Unicorn引擎142
5.7.2Qiling142
5.7.3scdbg和speakeasy142
5.8脚本动态分析143
5.8.1Windows PowerShell143
5.8.2Vbs143
5.8.3Windows批处理文件143
5.8.4Shell脚本144
5.9动态分析实例144
5.9.1本地行为监控144
5.9.2网络监控分析145
5.9.3确认网络数据包146
5.9.4动态调试147
5.9.5案例总结147
5.10实践题148
第6章二进制恶意代码分析技术149
6.1二进制恶意代码149
6.2二进制恶意代码发展历史149
6.3PE文件病毒150
6.3.1PE文件病毒的运行过程150
6.3.2重定位151
6.3.3获取API函数151
6.3.4搜索目标文件152
6.3.5感染152
6.4二进制恶意代码文件结构分析和识别153
6.4.1通用文件结构分析和识别153
6.4.2恶意代码特异性文件结构分析和识别154
6.5二进制恶意代码静态分析154
6.5.1控制流分析154
6.5.2数据流分析156
6.5.3程序切片158
6.5.4污点分析159
6.5.5相似性分析161
6.6二进制恶意代码动态分析161
6.6.1文件行为分析161
6.6.2进程行为分析162
6.6.3注册表行为分析163
6.6.4网络行为分析163
第7章脚本恶意代码分析技术164
7.1脚本文件格式164
7.2脚本分析工具165
7.2.1Windows PowerShell ISE165
7.2.2Visual Studio Code166
7.2.3文本编辑器167
7.3PowerShell脚本恶意代码分析168
7.3.1PowerShell介绍168
7.3.2参数168
7.3.3混淆方法169
7.4PowerShell脚本恶意代码分析实例172
7.5实践题174
第8章宏恶意代码分析技术176
8.1Office文件格式176
8.1.1OLE复合文件176
8.1.2Open XML177
8.2宏恶意代码分析工具178
8.2.1VBA编辑器179
8.2.2oledump181
8.2.3olevba182
8.3宏恶意代码常见技术分析183
8.3.1VBA184
8.3.2自动执行宏185
8.3.3调用API和命令执行186
8.3.4特定字符串 187
8.4宏恶意代码分析实例190
8.4.1实例一190
8.4.2实例二195
8.4.3实例三199
8.5实践题200
第9章恶意代码生存技术分析与实践201
9.1恶意代码混淆与加密技术201
9.1.1代码混淆201
9.1.2代码加密208
9.2恶意代码逃避技术210
9.2.1环境检测210
9.2.2反调试技术215
9.2.3反虚拟机技术223
9.3加壳与脱壳227
9.3.1流行壳软件227
9.3.2常见脱壳技术228
9.4生存技术分析实例230
9.4.1手动脱UPX壳230
9.4.2样本实例分析234
9.5实践题240
第2篇网络分析篇
第10章僵尸网络分析与实践243
10.1僵尸网络243
10.1.1僵尸网络类别243
10.1.2僵尸网络攻击手法245
10.2僵尸网络分析要点250
10.3僵尸网络分析实例256
10.4实践题259
第11章挖矿木马分析与实践261
11.1挖矿木马261
11.1.1挖矿木马概述261
11.1.2挖矿术语263
11.1.3挖矿活动现状264
11.1.4挖矿主流方式 264
11.1.5挖矿木马常见攻击手法266
11.2Linux挖矿木马分析要点267
11.2.1总体思路267
11.2.2Linux挖矿木马分析要点268
11.3挖矿木马分析实例276
11.3.1攻击流程276
11.3.2样本功能与技术梳理276
11.4实践题281
第12章窃密木马分析与实践283
12.1窃密木马283
12.2窃密木马分析要点284
12.2.1窃取软件数据的分析要点284
12.2.2窃取高价值文件的分析要点284
12.2.3键盘记录器的分析要点285
12.2.4捕获屏幕截图的分析要点285
12.2.5网络监听的分析要点285
12.2.6回传数据的分析要点286
12.3分析实例286
12.3.1检查样本格式286
12.3.2查看字符串287
12.3.3动态执行288
12.3.4分析核心代码289
12.3.5实例总结289
12.4实践题291
第13章远控木马分析与实践292
13.1远控木马292
13.1.1远控木马功能292
13.1.2远控木马危害296
13.1.3远控木马对关键基础设施的攻击298
13.1.4远控木马防范299
13.2远控木马分析要点300
13.2.1文件格式及字符串300
13.2.2指令分支303
13.2.3收集信息303
13.2.4网络相关函数304
13.3远控木马分析实例305
13.3.1查看文件基本信息306
13.3.2查看字符串306
13.3.3指令分支307
13.3.4收集信息308
13.3.5构建上线包,并加密回传311
13.3.6在虚拟分析环境中运行样本311
13.4实践题314
第14章勒索软件分析与实践315
14.1勒索软件315
14.1.1起源及发展过程315
14.1.2传播模式316
14.1.3造成的影响与危害317
14.1.4应对与防护318
14.2勒索软件分析要点319
14.2.1删除卷影副本319
14.2.2禁用系统修复319
14.2.3遍历系统磁盘、目录、文件320
14.2.4加密策略和加密算法322
14.2.5更改文件后缀名,生成勒索信,修改桌面背景等324
14.3勒索软件分析实例326
14.4总结331
14.5实践题332
第3篇APT分析篇
第15章高级持续性威胁分析335
15.1APT基本概念335
15.1.1APT基本定义335
15.1.2APT组织与行动340
15.1.3APT攻击活动中的技战术346
15.2APT与威胁情报349
15.2.1APT威胁情报来源349
15.2.2IoC情报350
15.2.3主机侧情报352
15.2.4网络侧情报354
15.3APT分析要点357
15.3.1攻击阶段分析357
15.3.2攻击路径分析359
15.3.3关联与溯源分析364
第16章综合分析实验372
16.1案例介绍372
16.2环境准备372
16.2.1工具准备372
16.2.2环境搭建372
16.3取证377
16.3.1工具准备377
16.3.2取证过程378
16.4分析381
16.4.1工具准备381
16.4.2分析过程381
16.5总结382