作为测试者或者安全实践者,你将通过本书领会渗透测试人员的侦察、漏洞评估、利用、提权以及后利用活动。首先,你将使用实验室环境来验证所学工具和技术,以及支持用于测试的协作方法的应用程序。然后,您将学习基于开源智能的被动侦察以及基于内部和外部基础设施的主动侦察。您还将专注于如何选择,使用和自定义不同漏洞扫描程序,并且解释扫描结果,然后专注于检查到目的地址的特定路由,其中包括物理安全的绕过和使用各种技术的数据外泄。你还将学习社交工程攻击,无线网络攻击,Web服务和嵌入式设备等概念。
前言
致谢
审校者简介
第1章 基于目标的渗透测试 1
1.1 安全测试概述 1
1.2 漏洞扫描、渗透测试和红队训练的误解 2
1.3 基于目标的渗透测试 2
1.4 测试方法 3
1.5 Kali Linux简介:特征 5
1.6 安装和更新Kali Linux 6
1.6.1 在便携式设备中安装Kali Linux 6
1.6.2 在Raspberry Pi 3中安装Kali 7
1.6.3 在虚拟机中安装Kali 7
1.6.4 在Docker中安装Kali 10
1.6.5 在AWS 云中安装Kali 11
1.7 组织Kali Linux 14
1.7.1 配置和自定义Kali Linux 14
1.7.2 重置超级用户密码 14
1.7.3 添加普通用户 15
1.7.4 配置网络服务和安全通信 15
1.7.5 调整网络代理设置 16
1.7.6 访问安全外壳协议 17
1.7.7 加速Kali运行 18
1.7.8 与主机操作系统共享文件夹 18
1.7.9 使用Bash脚本来定制Kali 20
1.8 构建验证环境 20
1.8.1 安装预定目标 20
1.8.2 创建活动目录及域控制器 22
1.9 使用Faraday管理合作渗透测试 25
1.10 小结 27
第2章 开源情报和被动侦察 28
2.1 侦察的基本原则 29
2.1.1 开源情报 29
2.1.2 进攻型OSINT 29
2.1.3 利用Sublist3r收集域资料 30
2.1.4 Maltego 31
2.1.5 OSRFramework 34
2.1.6 Web archives 35
2.1.7 抓取 35
2.1.8 收集用户名和电子邮件地址 36
2.1.9 获取用户信息 36
2.1.10 Shodan和censys.io 37
2.2 Google黑客数据库 38
2.2.1 使用dork脚本来查询Google 38
2.2.2 Data dump网站 39
2.2.3 使用脚本自动收集OSINT数据 39
2.2.4 防守型OSINT 40
2.2.5 分析用户以获取密码列表 42
2.3 创建自定义单词列表来破解密码 43
2.3.1 使用CeWL来映射网站 43
2.3.2 使用twofi从Twitter提取单词 44
2.4 小结 44
第3章 外网与内网的主动侦察 45
3.1 秘密扫描策略 46
3.1.1 调整源IP栈和工具识别设置 46
3.1.2 修改数据包参数 47
3.1.3 使用匿名网络代理 48
3.2 DNS侦察和路由映射 51
3.3 利用综合侦察应用程序 52
3.3.1 recon-ng框架 53
3.3.2 使用IPv6专用工具 56
3.3.3 映射路由到目标 57
3.4 识别外部网络基础设施 59
3.5 防火墙外映射 60
3.6 IDS / IPS识别 61
3.7 枚举主机 63
3.8 识别端口、操作系统和服务 63
3.9 使用netcat编写自己的端口扫描器 64
3.9.1 指纹识别操作系统 65
3.9.2 确定主动服务 66
3.10 大规模扫描 66
3.10.1 DHCP信息 67
3.10.2 内部网络主机的识别与枚举 67
3.10.3 本地MS Windows命令 68
3.10.4 ARP广播 70
3.10.5 ping扫描 70
3.10.6 使用脚本组合masscan和nmap扫描 71
3.10.7 利用SNMP 72
3.10.8 通过服务器消息块会话获取Windows账户信息 74
3.10.9 定位网络共享 74
3.10.10 主动侦察目录域服务器 75
3.10.11 使用综合工具 76
3.10.12 SPARTA配置实例 76
3.11 小结 77
第4章 漏洞评估 78
4.1 漏洞命名 78
4.2 本地和在线漏洞数据库 79
4.3 用nmap进行漏洞扫描 82
4.3.1 Lua脚本介绍 83
4.3.2 自定义NSE脚本 83
4.4 Web应用漏洞扫描器 85
4.4.1 Nikto和Vega简介 85
4.4.2 定制Nikto和Vega 87
4.5 移动应用漏洞扫描器 89
4.6 网络漏洞扫描器OpenVAS 92
4.7 商业漏洞扫描器 94
4.7.1 Nessus 94
4.7.2 Nexpose 96
4.8 专业扫描器 97
4.9 威胁建模 98
4.10 小结 99
第5章 高级社会工程学和物理安全 101
5.1 方法论和攻击方法 102
5.1.1 基于技术的攻击 103
5.1.2 基于人的攻击 103
5.2 控制台上的物理攻击 104
5.2.1 samdump2和chntpw 104
5.2.2 粘滞键 107
5.3 创建流氓物理设备 108
5.4 社会工程学工具包 112
5.4.1 使用网站攻击媒介——凭据收割机攻击方法 114
5.4.2 使用网站攻击媒介——标签钓鱼攻击方法 116
5.4.3 HTA攻击 118
5.4.4 使用PowerShell字母数字的shellcode注入攻击 120
5.5 隐藏可执行文件与伪装攻击者的URL 121
5.6 使用DNS重定向升级攻击 121
5.6.1 鱼叉式网络钓鱼攻击 122
5.6.2 使用Gophish设置网络钓鱼活动 126
5.7 发起网络钓鱼攻击 127
5.8 利用bulk转换发起网络钓鱼攻击 128
5.9 小结 129
第6章 无线攻击 130
6.1 为无线攻击配置Kali 130
6.2 无线侦察 131
6.3 绕过隐藏的服务集标识符 135
6.4 绕过MAC 地址验证和公开验证 137
6.5 攻击WPA和WPA2 138
6.5.1 暴力破解 138
6.5.2 使用Reaver攻击无线路由器 141
6.6 无线通信的拒绝服务攻击 142
6.7 破解WPA/WPA2企业版实现 143
6.8 使用Ghost Phisher 151
6.9 小结 152
第7章 基于Web应用的利用 153
7.1 Web应用程序攻击方法 153
7.2 黑客的思维导图 154
7.3 Web应用的侦察 156
7.3.1 Web应用防火墙和负载均衡器检测 157
7.3.2 指纹识别Web应用和CMS 158
7.3.3 利用命令行设置镜像网站 160
7.4 客户端代理 161
7.4.1 Burp代理 161
7.4.2 Web抓取和目录的暴力破解 165
7.4.3 网络服务专用漏洞扫描器 165
7.5 针对特定应用的攻击 166
7.5.1 暴力破解访问证书 166
7.5.2 注入 167
7.6 小结 177
第8章 客户端利用 178
8.1 留后门的可执行文件 178
8.2 使用恶意脚本攻击系统 181
8.2.1 使用VBScript进行攻击 181
8.2.2 使用Windows PowerShell攻击系统 184
8.3 跨站点脚本框架 185
8.4 浏览器利用框架——BeEF 190
8.5 BeEF浏览器 192
8.5.1 整合BeEF和Metasploit攻击 196
8.5.2 用BeEF作为隧道代理 196
8.6 小结 198
第9章 绕过安全控制 199
9.1 绕过网络访问控制 199
9.1.1 前准入NAC 200
9.1.2 后准入NAC 202
9.2 使用文件绕过杀毒软件 202
9.2.1 利用Veil框架 203
9.2.2 利用Shellter 207
9.3 无文件方式绕过杀毒软件 211
9.4 绕过应用程序级控制 211
9.5 绕过Windows操作系统控制 214
9.5.1 用户账户控制 215
9.5.2 采用无文件技术 218
9.5.3 其他Windows特定的操作系统控制 220
9.6 小结 222
第10章 利用 223
10.1 Metasploit框架 223
10.1.1 库 224
10.1.2 接口 225
10.1.3 模块 225
10.1.4 数据库设置和配置 226
10.2 使用MSF利用目标 230
10.2.1 使用简单反向shell攻击单个目标 230
10.2.2 利用具有PowerShell攻击媒介的反向shell攻击单个目标 231
10.3 使用MSF资源文件的多目标利用 233
10.4 使用Armitage的多目标利用 233
10.5 使用公开的漏洞利用 235
10.5.1 定位和验证公开可用的漏洞利用 236
10.5.2 编译和使用漏洞 237
10.6 开发Windows利用 239
10.6.1 模糊识别漏洞 239
10.6.2 制作Windows特定的利用 245
10.7 小结 248
第11章 操控目标与内网漫游 249
11.1 破解的本地系统上的活动 249
11.1.1 对已入侵的系统进行快速侦察 250
11.1.2 找到并提取敏感数据——掠夺目标 251
11.1.3 后利用工具 253
11.2 横向提权与内网漫游 262
11.2.1 Veil-Pillage 263
11.2.2 入侵域信任与共享 265
11.2.3 PsExec、WMIC和其他工具 266
11.2.4 利用服务实现内网漫游 270
11.2.5 支点攻击和端口转发 271
11.3 小结 273
第12章 提权 274
12.1 常见的提权方法概述 274
12.2 从域用户提权至系统管理员 275
12.3 本地系统提权 276
12.4 由管理员提权至系统管理员 277
12.5 凭据收割和提权攻击 280
12.5.1 密码嗅探器 280
12.5.2 响应者 282
12.5.3 SMB中继攻击 284
12.6 提升活动目录中的访问权限 285
12.7 入侵Kerberos——金票攻击 290
12.8 小结 295
第13章 命令与控制 296
13.1 持久性 296
13.2 使用持久代理 297
13.2.1 使用Netcat作为持久代理 297
13.2.2 使用schtasks来配置持久任务 300
13.2.3 使用Metasploit框架保持持久性 301
13.2.4 使用persistence脚本 302
13.2.5 使用Metasploit框架创建一个独立的持久代理 303
13.2.6 使用在线文件存储云服务保持持久性 304
13.3 前置域 310
13.3.1 利用Amazon CloudFront实现C2 310
13.3.2 利用Microsoft Azure实现C2 313
13.4 数据提取 315
13.4.1 使用现有的系统服务(Telnet、RDP、VNC) 315
13.4.2 使用DNS协议 316
13.4.3 使用ICMP协议 318
13.4.4 使用数据提取工具包 319
13.4.5 使用PowerShell 321
13.5 隐藏攻击证据 321
13.6 小结 323
第14章 嵌入式设备和RFID的入侵 324
14.1 嵌入式系统及硬件架构 324
14.2 固件解包与更新 327
14.3 RouterSploit 框架简介 330
14.4 UART 333
14.5 利用Chameleon Mini克隆RFID 335
14.6 小结 339