第 1章 红队初探 1
1.1 攻防演习概述 1
1.2渗透测试和红队评估 4
1.2.1渗透测试 4
1.2.2红队评估 4
1.2.3 渗透测试和红队评估的区别与联系 5
1.3常见的攻击模型 6
1.3.1 PTES模型 6
1.3.2 MITRE ATT&CK模型 6
1.3.3 网络杀伤链 7
1.4 安全风险参考列表 8
1.4.1 OWASP TOP 10 8
1.4.2 CWE/SANS TOP 25 9
1.5 APT 11
1.6 总结 13
第 2 章 基础设施建设 14
2.1 C2基本概念 14
2.1.1 常见的C2架构 15
2.1.2 C2的通信方式 18
2.2 部署Cobalt Strike 18
2.2.1 Cobalt Strike架构 19
2.2.2 Cobalt Strike部署步骤 19
2.2.3 Cobalt Strike客户端功能 21
2.3 部署内网实验环境 27
2.3.1 安装 VMware Workstation 27
2.3.2 安装 Kali Linux操作系统 28
2.3.3部署实验AD域环境 29
2.3.4配置 DMZ 区边界服务器 35
2.4 总结 36
第 3 章 信息收集 37
3.1 收集主机信息 37
3.1.1 基于 Linux 的主机信息收集 38
3.1.2 基于 Windows 的主机信息收集 43
3.2 收集网络信息 57
3.2.1 工作组信息收集 57
3.2.2 Windows 域信息收集 58
3.3 总结 69
第 4 章 终端安全对抗 70
4.1 常见的终端安全软件类型 70
4.1.1 反病毒引擎 70
4.1.2 EDR 72
4.1.3 XDR 74
4.2 AMSI 对抗 75
4.2.1 AMSI 的工作原理 75
4.2.2 AMSI 绕过技术 762 目 录
4.3 受保护进程对抗 80
4.3.1 PPL 的核心保护机制 81
4.3.2 攻击受PPL保护的lsass.exe 进程 82
4.3.3 攻击受PPL保护的反恶意软件进程 84
4.3.4 通过 DLL 劫持在PPL进程中执行代码 88
4.4 通过系统调用执行攻击载荷绕过终端安全 90
4.4.1 系统调用绕过EDR的原理 90
4.4.2 实战案例:通过系统调用实现Process Hollowing 91
4.5 通过APC注入绕过终端安全实例 96
4.5.1APC注入的流程 96
4.5.2 APC队列与线程状态的关联 96
4.5.3与APC相关的系统函数 97
4.5.4 APC注入的实战步骤 98
4.6 总结 100
第 5 章 隔离穿透 101
5.1 背景 101
5.2 防火墙配置 102
5.2.1 个人防火墙配置 102
5.2.2 域防火墙配置 104
5.2.3 利用命令行配置个人防火墙 107
5.3 判断网络连通性 110
5.3.1 TCP 110
5.3.2 HTTP 110
5.3.3 ICMP 111
5.3.4 DNS 111
5.4 SOCKS代理技术 112
5.4.1 SOCKS基础 112
5.4.2 在Metasploit上搭建SOCKS代理 113
5.4.3 在CobaltStrike上搭建SOCKS代理 116
5.5 常用的隧道技术 118
5.5.1 网络层隧道技术 118
5.5.2 传输层隧道技术 122
5.5.3 应用层隧道技术 127
5.6 常用内网穿透技术 134
5.6.1 基于NPS的内网穿透 135
5.6.2 基于SPP的内网穿透 137
5.6.3 基于FRP的内网穿透 138
5.7 总结 140
第 6 章 数据传输技术 141
6.1关键文件收集技术 141
6.1.1 敏感文件的特征与定位 142
6.1.2 重点路径与自动化收集 142
6.2 文件压缩打包技术 143
6.2.1 7-Zip压缩工具的实战应用 143
6.2.2 压缩后的验证与处理 144
6.3 数据传输途径 145
6.3.1 通过C2框架传输数据 145
6.3.2 利用Nishang框架传输数据 146
6.3.3 利用certutil传输数据 147
6.3.4 利用BITSAdmin传输数据 148
6.3.5 利用PowerShell传输数据 148
6.3.6 利用云OSS技术进行传输 151
6.3.7 限制数据传输大小 154
6.3.8 利用FTP传输数据 156
6.4 总结 158目 录 3
第 7 章 权限提升 160
7.1 Windows权限提升基础 160
7.1.1 Windows用户和组 160
7.1.2安全标识符 161
7.1.3 访问令牌 162
7.1.4 访问控制列表 162
7.2 Windows用户账户控制 163
7.2.1 使用Windows事件查看器绕过 UAC 163
7.2.2 使用Windows 10按需功能助手绕过 UAC 165
7.2.3 使用ComputerDefaults绕过UAC 166
7.3 使用Windows内核溢出漏洞提权 167
7.3.1 查找相关补丁 167
7.3.2 使用CVE-2021-1732提权示例 168
7.4 使用Windows错误配置提权 169
7.4.1 不安全的服务权限 170
7.4.2 可控的服务路径 170
7.4.3 不安全的注册表 170
7.4.4 Windows路径解析漏洞 171
7.5 Linux权限提升 172
7.5.1 使用内核漏洞提权 172
7.5.2 利用以root权限运行的服务漏洞 173
7.6 总结 175
第 8 章 横向移动 176
8.1 通过IPC横向移动 176
8.2 通过COM对象横向移动 178
8.3 通过WinRM横向移动 180
8.3.1 WinRM的通信过程 180
8.3.2 横向移动方法 180
8.4 通过WMI横向移动 182
8.5 使用Mimikatz的AD域横向移动 183
8.5.1DCSync攻击 183
8.5.2 Pass-The-Hash和Pass-The-Ticket 184
8.5.3 OverPass-The-Hash 185
8.5.4 黄金票据攻击 186
8.5.5 白银票据攻击 187
8.6 总结 188
第 9 章 权限维持 189
9.1 Windows权限维持 189
9.1.1 加入startup文件夹 190
9.1.2 服务加载 190
9.1.3 系统计划任务 193
9.1.4 注册表加载 194
9.1.5 映像劫持 196
9.1.6 屏保劫持 198
9.1.7 影子账户 199
9.2 Linux权限维持 203
9.2.1 使用sudoers维持权限 203
9.2.2 使用SSH软连接维持权限 204
9.2.3 创建SSH公私钥维持权限 205
9.2.4 使用系统后门管理员维持权限 207
9.2.5 使用Alias维持权限 208
9.2.6 使用crontab维持权限 210
9.2.7 修改bashrc文件维持权限 ..211
9.3 总结 213
第 10 章 域安全 214
10.1 域用户和域组 214
10.1.1 域用户 214
10.1.2 域组 217
10.2 域环境下的身份认证 219
10.2.1 NTLM域环境下的认证 220
10.2.2 Kerberos认证的三个阶段 220
10.3 域环境中的常见漏洞 223
10.3.1 Zerologon 漏洞(CVE-2020-1472) 223
10.3.2 PrintNightmare(CVE-2021-34527) 228
10.3.3 SAM 名称伪造(CVE-2021-42278) 231
10.3.4 Active Directory 证书服务(AD CS)漏洞 234
10.4 总结 243
第 11 章 Exchange安全 244
11.1 Exchange体系结构 244
11.1.1 客户端访问服务器 246
11.1.2 客户端/远程访问接口和协议 249
11.2 Exchange漏洞分析 251
11.2.1 CVE-2020-0688 251
11.2.2 ProxyLogon 256
11.2.3 ProxyShell 262
11.3 总结 267
第 12 章 钓鱼投递技术 268
12.1 网站钓鱼 268
12.1.1使用 Cobalt Strike克隆网站 269
12.1.2使用mip22克隆站点 270
12.2 邮件钓鱼 271
12.2.1 SPF 272
12.2.2 使用Swaks进行邮件钓鱼 273
12.2.3 使用Gophish进行邮件钓鱼 276
12.3 文件钓鱼 280
12.3.1 使用Lnk快捷方式进行攻击 280
12.3.2 制作压缩包自释放文件发起攻击 283
12.3.3 使用Microsoft Word宏文档发起攻击 285
12.4 标识隐藏技巧 287
12.4.1 使用默认隐藏的后缀名 288
12.4.2 使用.scr扩展名 288
12.4.3 使用Unicode控制字符反转拓展名 289
12.4.4 更改文件图标 290
12.5 总结 291
第 13 章 痕迹清理 292
13.1 清理Windows痕迹 292
13.1.1 Windows日志概述 292
13.1.2 清理Windows日志 294
13.1.3 清理网站日志 296
13.1.4 清理远程桌面连接记录 298
13.2 清理Linux痕迹 300
13.2.1 Linux中常见的日志文件 300
13.2.2无痕执行命令 301
13.2.3清理历史命令记录 303
13.2.4在Linux中擦除文件 304
13.2.5 隐藏远程SSH登录 306
13.2.6 更改日志记录位置 307
13.3 总结 308