描述
包 装: 平塑单衬是否套装: 否国际标准书号ISBN: 9787121478376
内容简介
本书是以内网攻防中红队的视角编写的,从内网的基础攻击原理出发,讲解红队的攻击思路和主流渗透测试工具的使用方法,旨在帮助安全行业从业人员建立和完善技术知识体系,掌握完整的后渗透流程和攻击手段。本书共分为15章,其中:第1~8章为第1部分,讲解常规内网渗透测试的常用方法与技巧;第9~15章为第2部分,聚焦域内攻防手法。本书主要通过命令和工具介绍各种内网渗透测试方法,同时分析了一部分工具的工作原理。 本书主要面向网络安全领域从业者、爱好者,特别是具有一定基础的渗透测试人员、红蓝对抗工程师,高等院校计算机科学、信息安全、密码学等相关专业的学生,以及对网络安全行业具有浓厚兴趣、准备转行从事红蓝对抗领域工作的技术人员。
目 录
第1部分 内网渗透测试
第1章 信息收集 2
1.1 端口扫描 2
1.1.1 使用Railgun进行端口扫描 3
1.1.2 使用fscan进行端口扫描 3
1.1.3 使用masscan进行端口扫描 5
1.2 口令爆破 5
1.2.1 集成多种协议的爆破工具 5
1.2.2 通过NTLM Hash爆破 7
1.3 主机信息收集 9
1.3.1 基本信息收集 9
1.3.2 文件目录信息收集 11
1.3.3 软件环境信息收集 12
1.4 数据库信息收集 15
1.4.1 MySQL数据库信息收集 15
1.4.2 MSSQL数据库信息收集 17
1.4.3 Oracle数据库信息收集 20
1.5 数据分析 23
1.5.1 获取数据 23
1.5.2 传输数据 25
1.5.3 分析数据 27
第2章 下载与执行 29
2.1 使用Web服务下载 29
2.1.1 通过Python开启HTTP服务 29
2.1.2 通过PHP开启HTTP服务 * 29
2.1.3 云对象存储 * 30
2.1.4 通过Python开启HTTPS服务 31
2.2 常用下载命令 31
2.3 启动可执行文件 32
2.3.1 通过wmic启动可执行文件 33
2.3.2 通过计划任务启动可执行文件 33
2.3.3 通过服务启动可执行文件 34
2.3.4 通过Linux反弹Shell启动可执行文件 34
2.3.5 通过绕过AppLocker限制启动可执行文件 35
2.3.6 通过NTFS交换数据流启动可执行文件 39
2.3.7 通过工具加载dll文件 40
2.3.8 使用PowerShell绕过AMSI 43
2.3.9 绕过父进程检测 43
2.4 下载后自动执行 43
2.4.1 使用msiexec下载并执行 43
2.4.2 使用regsvr32下载并执行 46
第3章 通道构建 47
3.1 判断目标以哪种协议出网 47
3.1.1 判断TCP是否出网 47
3.1.2 判断HTTPS是否出网 48
3.1.3 判断UDP是否出网 48
3.1.4 判断ICMP是否出网 49
3.1.5 判断DNS协议是否出网 49
3.2 反向代理 50
3.2.1 使用FRP搭建反向SOCKS代理 50
3.2.2 使用ICMP隧道配合frp搭建代理 56
3.2.3 使用ICMP隧道突破上网限制 59
3.2.4 使用spp通过ICMP隧道搭建代理 59
3.2.5 使用stowaway搭建多级网络 59
3.2.6 搭建反向DNS隧道 63
3.2.7 使用v2ray搭建反向代理 65
3.3 正向代理 68
3.3.1 Webshell类型代理的使用 68
3.3.2 使用goproxy搭建正向代理 70
3.3.3 基于端口分流思路的端口复用 70
3.3.4 通过SSH隧道搭建SOCKS5代理 72
3.3.5 使用openvpn搭建正向代理 73
3.3.6 使用v2ray搭建正向代理 74
3.4 如何使用SOCKS代理 75
3.4.1 通过Proxifiler使用SOCKS代理 76
3.4.2 通过proxychains使用SOCKS代理 77
3.4.3 多级代理的使用 78
第4章 密码获取 79
4.1 Windows密码获取 79
4.1.1 主机密码获取 79
4.1.2 浏览器密码获取 85
4.1.3 通用工具 87
4.1.4 其他常用软件 89
4.2 Linux密码获取 91
4.2.1 利用SSH后门记录密码 91
4.2.2 利用strace记录密码 91
4.2.3 利用SSH蜜罐记录密码 92
4.3 Web权限记录密码 93
4.4 密码碰撞 94
4.4.1 使用hashcat进行密码碰撞 95
4.4.2 使用passwarekit破解文档密码 95
第5章 权限提升 97
5.1 Windows提权 97
5.1.1 UAC的原理及绕过 97
5.1.2 烂土豆提权 102
5.1.3 利用错误配置提权 109
5.1.4 常用提权CVE 111
5.2 Linux提权 112
5.2.1 利用漏洞提权 112
5.2.2 利用错误配置提权 117
第6章 横向移动 118
6.1 在Windows中进行横向移动 118
6.1.1 使用远程计划任务进行横向移动 118
6.1.2 使用远程创建服务进行横向移动 119
6.1.3 使用WMI进行横向移动 119
6.1.4 使用crackmapexec进行横向移动 121
6.1.5 使用psexec进行横向移动 121
6.1.6 使用SCShell进行横向移动 122
6.1.7 通过哈希传递进行横向移动 122
6.1.8 在不连接远程445端口的情况下进行横向移动 123
6.1.9 横向移动中的拒绝访问问题 127
6.1.10 通过“永恒之蓝”漏洞进行横向移动 127
6.1.11 中间人攻击 128
6.2 利用数据库进行横向移动 129
6.2.1 通过MySQL UDF进行横向移动 129
6.2.2 通过MSSQL进行横向移动 130
6.2.3 使用Redis进行横向移动 134
6.2.4 数据库综合利用工具mdut 135
6.3 使用cs进行横向移动的常用命令 136
6.3.1 获取访问对方机器的权限 136
6.3.2 通过内置命令进行横向移动 138
6.3.3 在目标不出网的情况下正向上线 138
第7章 权限维持 141
7.1 Windows中的权限维持 141
7.1.1 后门账户 141
7.1.2 服务 143
7.1.3 计划任务 147
7.1.4 WMI 150
7.1.5 注册表 152
7.1.6 启动目录 153
7.1.7 Shell扩展处理程序 153
7.1.8 Shift后门 157
7.1.9 使用驱动程序隐藏文件 158
7.2 Linux中的权限维持 159
7.2.1 crontab计划任务 159
7.2.2 服务 160
7.2.3 配置文件 161
7.2.4 账号 161
7.2.5 SSH后门 162
7.2.6 SUID后门 166
7.2.7 隐藏技术 167
7.2.8 文件删除保护 169
7.3 数据库中的权限维持 169
7.3.1 MSSQL触发器 169
7.3.2 MySQL触发器 170
第8章 痕迹清理 172
8.1 防止恢复删除的文件 172
8.2 Windows中的痕迹清理 172
8.2.1 系统日志清理 172
8.2.2 系统日志抑制 173
8.2.3 进程创建的日志 173
8.2.4 文件相关处理 173
8.2.5 ETW 173
8.2.6 致盲Sysmon 175
8.3 Linux中的痕迹清理 175
8.3.1 登录时的相关操作 175
8.3.2 清理登录日志 176
8.3.3 更改文件修改时间 176
8.3.4 修改基础设施日志 176
第2部分 域渗透测试
第9章 发现域和进入域 180
9.1 发现域 180
9.1.1 查看当前计算机是否在域中 180
9.1.2 通过端口扫描寻找LDAP服务 180
9.2 进入域 181
9.2.1 通过SMB爆破域账号 181
9.2.2 通过LDAP服务爆破域账号 * 183
第10章 域信息收集 184
10.1 在域机器中使用net命令收集信息 184
10.2 在域中收集SPN信息 184
10.3 通过LDAP获取基本信息 185
10.3.1 使用AdFind收集常用信息 185
10.3.2 使用dsquery收集常用信息 187
10.4 DNS信息收集 188
10.4.1 在域外导出DNS信息 188
10.4.2 在域控制器上导出DNS信息 190
第11章 域控制器服务器权限获取分析 191
11.1 通过收集GPP中的密码进行碰撞 191
11.1.1 GPP中的密码从哪里来 191
11.1.2 收集GPP中的密码并解密 193
11.2 通过本地管理员组和登录用户进行迭代 194
11.2.1 获取域计算机本地管理员组的信息 194
11.2.2 获取登录用户的信息 194
11.3 使用BloodHound分析域 195
11.4 通过委派获取权限 198
11.4.1 Kerberos协议概述 198
11.4.2 非约束委派 201
11.4.3 约束委派 205
11.4.4 基于资源的约束委派 209
11.5 ACL配置问题 213
11.5.1 ACL的配置方法 213
11.5.2 委派控制的配置方法 215
11.5.3 获取和分析ACL信息 217
11.5.4 权限利用 219
11.6 AD CS配置问题 221
11.6.1 什么是AD CS 221
11.6.2 安装和配置AD CS 222
11.6.3 使用AD CS申请证书 225
11.6.4 创建一个存在AD CS配置漏洞的模板 228
11.6.5 AD CS配置漏洞的发现和利用 229
11.7 常见域漏洞 232
11.7.1 CVE-2020-1472(NetLogon特权提升漏洞) 232
11.7.2 CVE-2021-42278(域内提权漏洞) 239
11.7.3 CVE-2021-1675(PrintNightMare漏洞) 240
11.7.4 CVE-2022-26923(Windows域提权漏洞) 243
11.8 通过域信任关系获取信任域的权限 247
11.8.1 信任域环境配置 247
11.8.2 域信任关系的利用 249
第12章 NTLM中继 250
12.1 SMB/NTLM协议介绍 250
12.1.1 协议介绍 250
12.1.2 认证流程 250
12.1.3 NTLM Hash与Net-NTLM Hash 256
12.2 签名问题 256
12.2.1 SMB签名 256
12.2.2 LDAP签名 259
12.2.3 什么是EPA 259
12.2.4 什么是MIC 260
12.2.5 将SMB流量中继到LDAP服务时的签名处理 260
12.3 中间人 261
12.4 中继目标 261
12.4.1 将SMB流量中继到HTTP服务 262
12.4.2 将SMB流量中继到SMB服务 263
12.4.3 将SMB流量中继到LDAP服务 263
12.5 触发回连 263
12.5.1 被动触发 263
12.5.2 主动触发 269
12.6 中继的利用 273
12.6.1 利用 –escalate-user参数中继到LDAP服务 273
12.6.2 利用RBCD中继到LDAPS服务 275
12.6.3 利用RBCD中继到LDAP服务 276
12.6.4 利用AD CS中继到HTTP服务 278
12.7 中继工具 282
第13章 域管权限利用分析 284
13.1 在域内获取散列值 284
13.1.1 从ntds.dit文件中获取NTLM Hash 284
13.1.2 通过DCSync获取NTLM Hash 285
13.1.3 修改用户的NTLM Hash 286
13.2 通过系统日志定位用户 288
13.2.1 通过PowerShell在域控制器上查询 288
13.2.2 使用wevtutil在域控制器上查询 289
13.2.3 使用FullEventLogView离线分析evtx文件 289
13.2.4 使用SharpADUserIP在域控制器上查询 290
13.2.5 使用SharpGetUserLoginIPRPC远程查询 * 290
13.3 批量执行命令 290
13.4 域分发管理 291
13.4.1 分发到用户 291
13.4.2 将软件分发到计算机 293
13.4.3 通过组策略分发 * 294
第14章 域后门分析 296
14.1 可逆存储密码策略后门 296
14.1.1 为特定用户开启可逆存储 297
14.1.2 修改域控制器默认密码策略 297
第1章 信息收集 2
1.1 端口扫描 2
1.1.1 使用Railgun进行端口扫描 3
1.1.2 使用fscan进行端口扫描 3
1.1.3 使用masscan进行端口扫描 5
1.2 口令爆破 5
1.2.1 集成多种协议的爆破工具 5
1.2.2 通过NTLM Hash爆破 7
1.3 主机信息收集 9
1.3.1 基本信息收集 9
1.3.2 文件目录信息收集 11
1.3.3 软件环境信息收集 12
1.4 数据库信息收集 15
1.4.1 MySQL数据库信息收集 15
1.4.2 MSSQL数据库信息收集 17
1.4.3 Oracle数据库信息收集 20
1.5 数据分析 23
1.5.1 获取数据 23
1.5.2 传输数据 25
1.5.3 分析数据 27
第2章 下载与执行 29
2.1 使用Web服务下载 29
2.1.1 通过Python开启HTTP服务 29
2.1.2 通过PHP开启HTTP服务 * 29
2.1.3 云对象存储 * 30
2.1.4 通过Python开启HTTPS服务 31
2.2 常用下载命令 31
2.3 启动可执行文件 32
2.3.1 通过wmic启动可执行文件 33
2.3.2 通过计划任务启动可执行文件 33
2.3.3 通过服务启动可执行文件 34
2.3.4 通过Linux反弹Shell启动可执行文件 34
2.3.5 通过绕过AppLocker限制启动可执行文件 35
2.3.6 通过NTFS交换数据流启动可执行文件 39
2.3.7 通过工具加载dll文件 40
2.3.8 使用PowerShell绕过AMSI 43
2.3.9 绕过父进程检测 43
2.4 下载后自动执行 43
2.4.1 使用msiexec下载并执行 43
2.4.2 使用regsvr32下载并执行 46
第3章 通道构建 47
3.1 判断目标以哪种协议出网 47
3.1.1 判断TCP是否出网 47
3.1.2 判断HTTPS是否出网 48
3.1.3 判断UDP是否出网 48
3.1.4 判断ICMP是否出网 49
3.1.5 判断DNS协议是否出网 49
3.2 反向代理 50
3.2.1 使用FRP搭建反向SOCKS代理 50
3.2.2 使用ICMP隧道配合frp搭建代理 56
3.2.3 使用ICMP隧道突破上网限制 59
3.2.4 使用spp通过ICMP隧道搭建代理 59
3.2.5 使用stowaway搭建多级网络 59
3.2.6 搭建反向DNS隧道 63
3.2.7 使用v2ray搭建反向代理 65
3.3 正向代理 68
3.3.1 Webshell类型代理的使用 68
3.3.2 使用goproxy搭建正向代理 70
3.3.3 基于端口分流思路的端口复用 70
3.3.4 通过SSH隧道搭建SOCKS5代理 72
3.3.5 使用openvpn搭建正向代理 73
3.3.6 使用v2ray搭建正向代理 74
3.4 如何使用SOCKS代理 75
3.4.1 通过Proxifiler使用SOCKS代理 76
3.4.2 通过proxychains使用SOCKS代理 77
3.4.3 多级代理的使用 78
第4章 密码获取 79
4.1 Windows密码获取 79
4.1.1 主机密码获取 79
4.1.2 浏览器密码获取 85
4.1.3 通用工具 87
4.1.4 其他常用软件 89
4.2 Linux密码获取 91
4.2.1 利用SSH后门记录密码 91
4.2.2 利用strace记录密码 91
4.2.3 利用SSH蜜罐记录密码 92
4.3 Web权限记录密码 93
4.4 密码碰撞 94
4.4.1 使用hashcat进行密码碰撞 95
4.4.2 使用passwarekit破解文档密码 95
第5章 权限提升 97
5.1 Windows提权 97
5.1.1 UAC的原理及绕过 97
5.1.2 烂土豆提权 102
5.1.3 利用错误配置提权 109
5.1.4 常用提权CVE 111
5.2 Linux提权 112
5.2.1 利用漏洞提权 112
5.2.2 利用错误配置提权 117
第6章 横向移动 118
6.1 在Windows中进行横向移动 118
6.1.1 使用远程计划任务进行横向移动 118
6.1.2 使用远程创建服务进行横向移动 119
6.1.3 使用WMI进行横向移动 119
6.1.4 使用crackmapexec进行横向移动 121
6.1.5 使用psexec进行横向移动 121
6.1.6 使用SCShell进行横向移动 122
6.1.7 通过哈希传递进行横向移动 122
6.1.8 在不连接远程445端口的情况下进行横向移动 123
6.1.9 横向移动中的拒绝访问问题 127
6.1.10 通过“永恒之蓝”漏洞进行横向移动 127
6.1.11 中间人攻击 128
6.2 利用数据库进行横向移动 129
6.2.1 通过MySQL UDF进行横向移动 129
6.2.2 通过MSSQL进行横向移动 130
6.2.3 使用Redis进行横向移动 134
6.2.4 数据库综合利用工具mdut 135
6.3 使用cs进行横向移动的常用命令 136
6.3.1 获取访问对方机器的权限 136
6.3.2 通过内置命令进行横向移动 138
6.3.3 在目标不出网的情况下正向上线 138
第7章 权限维持 141
7.1 Windows中的权限维持 141
7.1.1 后门账户 141
7.1.2 服务 143
7.1.3 计划任务 147
7.1.4 WMI 150
7.1.5 注册表 152
7.1.6 启动目录 153
7.1.7 Shell扩展处理程序 153
7.1.8 Shift后门 157
7.1.9 使用驱动程序隐藏文件 158
7.2 Linux中的权限维持 159
7.2.1 crontab计划任务 159
7.2.2 服务 160
7.2.3 配置文件 161
7.2.4 账号 161
7.2.5 SSH后门 162
7.2.6 SUID后门 166
7.2.7 隐藏技术 167
7.2.8 文件删除保护 169
7.3 数据库中的权限维持 169
7.3.1 MSSQL触发器 169
7.3.2 MySQL触发器 170
第8章 痕迹清理 172
8.1 防止恢复删除的文件 172
8.2 Windows中的痕迹清理 172
8.2.1 系统日志清理 172
8.2.2 系统日志抑制 173
8.2.3 进程创建的日志 173
8.2.4 文件相关处理 173
8.2.5 ETW 173
8.2.6 致盲Sysmon 175
8.3 Linux中的痕迹清理 175
8.3.1 登录时的相关操作 175
8.3.2 清理登录日志 176
8.3.3 更改文件修改时间 176
8.3.4 修改基础设施日志 176
第2部分 域渗透测试
第9章 发现域和进入域 180
9.1 发现域 180
9.1.1 查看当前计算机是否在域中 180
9.1.2 通过端口扫描寻找LDAP服务 180
9.2 进入域 181
9.2.1 通过SMB爆破域账号 181
9.2.2 通过LDAP服务爆破域账号 * 183
第10章 域信息收集 184
10.1 在域机器中使用net命令收集信息 184
10.2 在域中收集SPN信息 184
10.3 通过LDAP获取基本信息 185
10.3.1 使用AdFind收集常用信息 185
10.3.2 使用dsquery收集常用信息 187
10.4 DNS信息收集 188
10.4.1 在域外导出DNS信息 188
10.4.2 在域控制器上导出DNS信息 190
第11章 域控制器服务器权限获取分析 191
11.1 通过收集GPP中的密码进行碰撞 191
11.1.1 GPP中的密码从哪里来 191
11.1.2 收集GPP中的密码并解密 193
11.2 通过本地管理员组和登录用户进行迭代 194
11.2.1 获取域计算机本地管理员组的信息 194
11.2.2 获取登录用户的信息 194
11.3 使用BloodHound分析域 195
11.4 通过委派获取权限 198
11.4.1 Kerberos协议概述 198
11.4.2 非约束委派 201
11.4.3 约束委派 205
11.4.4 基于资源的约束委派 209
11.5 ACL配置问题 213
11.5.1 ACL的配置方法 213
11.5.2 委派控制的配置方法 215
11.5.3 获取和分析ACL信息 217
11.5.4 权限利用 219
11.6 AD CS配置问题 221
11.6.1 什么是AD CS 221
11.6.2 安装和配置AD CS 222
11.6.3 使用AD CS申请证书 225
11.6.4 创建一个存在AD CS配置漏洞的模板 228
11.6.5 AD CS配置漏洞的发现和利用 229
11.7 常见域漏洞 232
11.7.1 CVE-2020-1472(NetLogon特权提升漏洞) 232
11.7.2 CVE-2021-42278(域内提权漏洞) 239
11.7.3 CVE-2021-1675(PrintNightMare漏洞) 240
11.7.4 CVE-2022-26923(Windows域提权漏洞) 243
11.8 通过域信任关系获取信任域的权限 247
11.8.1 信任域环境配置 247
11.8.2 域信任关系的利用 249
第12章 NTLM中继 250
12.1 SMB/NTLM协议介绍 250
12.1.1 协议介绍 250
12.1.2 认证流程 250
12.1.3 NTLM Hash与Net-NTLM Hash 256
12.2 签名问题 256
12.2.1 SMB签名 256
12.2.2 LDAP签名 259
12.2.3 什么是EPA 259
12.2.4 什么是MIC 260
12.2.5 将SMB流量中继到LDAP服务时的签名处理 260
12.3 中间人 261
12.4 中继目标 261
12.4.1 将SMB流量中继到HTTP服务 262
12.4.2 将SMB流量中继到SMB服务 263
12.4.3 将SMB流量中继到LDAP服务 263
12.5 触发回连 263
12.5.1 被动触发 263
12.5.2 主动触发 269
12.6 中继的利用 273
12.6.1 利用 –escalate-user参数中继到LDAP服务 273
12.6.2 利用RBCD中继到LDAPS服务 275
12.6.3 利用RBCD中继到LDAP服务 276
12.6.4 利用AD CS中继到HTTP服务 278
12.7 中继工具 282
第13章 域管权限利用分析 284
13.1 在域内获取散列值 284
13.1.1 从ntds.dit文件中获取NTLM Hash 284
13.1.2 通过DCSync获取NTLM Hash 285
13.1.3 修改用户的NTLM Hash 286
13.2 通过系统日志定位用户 288
13.2.1 通过PowerShell在域控制器上查询 288
13.2.2 使用wevtutil在域控制器上查询 289
13.2.3 使用FullEventLogView离线分析evtx文件 289
13.2.4 使用SharpADUserIP在域控制器上查询 290
13.2.5 使用SharpGetUserLoginIPRPC远程查询 * 290
13.3 批量执行命令 290
13.4 域分发管理 291
13.4.1 分发到用户 291
13.4.2 将软件分发到计算机 293
13.4.3 通过组策略分发 * 294
第14章 域后门分析 296
14.1 可逆存储密码策略后门 296
14.1.1 为特定用户开启可逆存储 297
14.1.2 修改域控制器默认密码策略 297
评论
还没有评论。