【Kali Linux】高级渗透测试实战篇

前言

对于企业网络安全建设工作的质量保障,业界普遍遵循PDCA(计划(Plan)、实施(Do)、检查(Check)、处理(Act))的方法论。近年来,网络安全攻防对抗演练发挥了越来越重要的作用。企业的安全管理者通过组织内部或外部攻击队,站在恶意攻击者的视角,识别自身网络安全建设过程中的防护短板,检验安全应急预案的有效性并持续优化,为业务发展提供更强的保驾护航能力。

请添加图片描述

内容简介

本书是企业进行网络安全对抗演练不可多得的参考书,对攻击队和防守队都适用。
本书系统地介绍了安全测试流程的最佳实践和常见误区,围绕Kali Linux这个开源工具,详细阐述了各类测试技术的原理和操作方法。即使是初学者,也可以在本书深入浅出的指引下轻松上手。对于富有经验的渗透测试人员,本书更是提供了进阶实战场景的实用脚本和代码库资源,相信能给读者带来新的启发。

企业攻防对抗演练是攻防双方的思路、策略、技术和情报能力的综合比拼。“敌暗我明”“攻防力量不对称”的情况往往瞬息万变,结果胜负是一时的,过程常态化才是主旋律。在现实的网络空间安全中,这样的常态化每天都在上演,安全团队只有正确制定攻防演练的目标,才能得到企业对安全工作的认可。

读者对象

如果你是一名渗透测试人员、IT专家或网络安全顾问,希望利用 Kali Linux 的一些高级功能最大限度地提高网络安全测试的成功率,那么这本书就是为你准备的。如果你以前接触过渗透测试的基础知识,将有助于你理解本书内容。

随书资源

本书的代码包托管在 GitHub 上,链接如下:

https://github.com/PacktPublishing/Mastering-Kali-Linux-for-Advanced-Penetration-Testing-4E

对于更多丰富的代码包和精彩视频,感兴趣的读者可从以下地址获取:

https://github.com/PacktPublishing/

我们还提供了一个 PDF 文档,包含本书中使用的屏幕截图/图表的彩色图像。你可以从以下地址下载:

https://static.packt-cdn.com/downloads/9781801819770_ColorImages.pdf

请添加图片描述

目录

译者序

前言

关于作者

关于技术审校

第1章 基于目标的渗透测试 1

1.1 恶意威胁者的类型 1

1.2 安全测试概念 2

1.3 漏洞评估、渗透测试和红队演习的

局限性 2

1.4 基于目标的渗透测试概述 3

1.5 测试方法论 4

1.6 Kali Linux的功能介绍 6

1.7 Kali Linux的安装与更新 7

1.7.1 使用便携设备 7

1.7.2 在树莓派4上安装 Kali 8

1.7.3 在虚拟机上安装Kali 9

1.7.4 安装Docker应用 12

1.7.5 在AWS云上启动Kali 13

1.7.6 在GCP上启动Kali 15

1.8 在Android设备(非破解)上运行

Kali 20

1.9 配置 Kali Linux 21

1.9.1 重置默认密码 21

1.9.2 配置网络服务和安全通信 22

1.9.3 调整网络代理设置 23

1.9.4 远程访问安全Shell 23

1.9.5 加速 Kali 操作 24

1.9.6 与主机系统共享文件夹 24

1.9.7 使用Bash脚本自定义Kali 26

1.10 建立一个验证实验室 26

1.11 CloudGoat 36

1.12 使用 Faraday 管理协同的渗透

测试 39

1.13 总结 40

第2章 开源情报与被动侦察 41

2.1 目标侦察的基本原则 41

2.1.1 OSINT 42

2.1.2 进攻性OSINT 43

2.1.3 收集域名信息 43

2.1.4 Maltego 44

2.1.5 OSRFramework 47

2.1.6 网络存档 47

2.1.7 Passive Total 48

2.2 网络爬虫 49

2.2.1 收集用户名和邮件地址 49

2.2.2 获取用户信息 50

2.2.3 在线搜索门户 50

2.2.4 其他商业工具 54

2.3 Google Hacking数据库 54

2.3.1 使用Google Hacking脚本

查询 54

2.3.2 数据转储站点 56

2.3.3 防御性OSINT 56

2.3.4 威胁情报 57

2.3.5 用户密码列表分析 58

2.4 自定义密码破解字典 59

2.4.1 使用CeWL绘制网站地图 59

2.4.2 使用twofi从Twitter提取字典 59

2.5 总结 60

第3章 主动侦察 61

3.1 隐蔽扫描技术 62

3.1.1 调整源IP协议栈和工具识别

特征 62

3.1.2 修改数据包参数 63

3.1.3 使用匿名网络代理 65

3.2 DNS侦察和路由映射 67

3.3 使用集成侦察工具 68

3.3.1 recon-ng框架 69

3.3.2 使用针对IPv6的工具 72

3.3.3 映射目标路由 74

3.4 识别外部网络基础设施 76

3.5 防火墙外的映射 77

3.6 IDS/IPS识别 77

3.7 主机枚举 78

3.8 端口、操作系统和服务发现 79

3.9 使用netcat编写你自己的端口

扫描器 80

3.9.1 对操作系统进行指纹识别 80

3.9.2 确定活跃的服务 81

3.10 大规模扫描 82

3.10.1 DHCP信息 83

3.10.2 内网主机的识别和枚举 83

3.10.3 原生的MS Windows命令 84

3.10.4 ARP广播 86

3.10.5 ping扫描 86

3.10.6 使用脚本将masscan扫描和

nmap扫描结合 87

3.10.7 利用SNMP的优势 89

3.10.8 SMB会话中的Windows账户

信息 90

3.10.9 发现网络共享 91

3.10.10 对活动目录域服务器的侦察 92

3.10.11 枚举微软Azure环境 93

3.10.12 集成侦察工具 95

3.11 利用机器学习进行侦察 96

3.12 总结 98

第4章 漏洞评估 99

4.1 漏洞术语 99

4.2 本地和在线漏洞数据库 100

4.3 用nmap进行漏洞扫描 103

4.3.1 Lua脚本介绍 104

4.3.2 定制NSE脚本 105

4.4 网络应用程序漏洞扫描器 106

4.4.1 Nikto 106

4.4.2 定制Nikto 107

4.4.3 OWASP ZAP 108

4.5 移动应用程序的漏洞扫描器 111

4.6 OpenVAS网络漏洞扫描器 112

4.7 商业漏洞扫描器 114

4.7.1 Nessus 115

4.7.2 Qualys 116

4.8 针对性的扫描器 117

4.9 威胁建模 118

4.10 总结 120

第5章 高级社会工程学和物理安全 121

5.1 掌握方法论和TTP 122

5.1.1 技术 123

5.1.2 针对人的攻击 124

5.2 控制台上的物理攻击 124

5.2.1 samdump2和chntpw 125

5.2.2 粘滞键 128

5.3 创建一个流氓物理设备 129

5.4 社会工程工具包 132

5.4.1 社会工程攻击 134

5.4.2 凭证采集Web攻击方法 135

5.4.3 多重Web攻击方法 137

5.4.4 HTA网络攻击方法 138

5.4.5 使用PowerShell纯字符进行shellcode注入攻击 140

5.5 隐藏可执行文件和混淆攻击者的

URL 141

5.6 利用DNS重定向升级攻击 142

5.6.1 鱼叉式网络钓鱼攻击 143

5.6.2 使用Gophish的电子邮件网络

钓鱼 146

5.7 使用Gophish发起网络钓鱼攻击 147

5.8 利用批量传输作为网络钓鱼来传递

有效负载 151

5.9 总结 151

第6章 无线攻击和蓝牙攻击 153

6.1 无线和蓝牙技术简介 153

6.2 配置Kali进行无线攻击 154

6.3 无线网络侦察 154

6.4 绕过隐藏ESSID 157

6.5 绕过MAC地址认证和开放认证 159

6.6 攻击WPA和WPA2 161

6.6.1 暴力破解攻击 161

6.6.2 使用Reaver对无线路由器进行

攻击 165

6.7 拒绝服务对无线通信的攻击 166

6.8 破坏启用WPA2的企业 167

6.9 使用bettercap 169

6.10 使用Wifiphisher进行Evil Twin

攻击 170

6.11 WPA3 172

6.12 蓝牙攻击 173

6.13 总结 175

第7章 Web漏洞利用 176

7.1 Web应用攻击方法论 176

7.2 黑客思维导图 177

7.3 Web应用/服务漏洞扫描 179

7.3.1 检测Web应用防火墙和负载

均衡器 180

7.3.2 识别Web应用指纹和CMS 182

7.3.3 从命令行镜像网站 184

7.4 客户端代理 184

7.4.1 Burp代理 185

7.4.2 Web抓取和目录暴力攻击 189

7.4.3 Web服务漏洞扫描器 190

7.5 针对特定应用的攻击 190

7.6 浏览器攻击框架 202

7.7 了解BeEF浏览器 206

7.8 总结 211

第8章 云安全漏洞利用 212

8.1 云服务介绍 212

8.2 EC2实例中的漏洞扫描和应用

开发 215

8.2.1 Scout Suite 216

8.2.2 Prowler 218

8.3 测试S3桶的错误配置 225

8.4 利用安全许可的缺陷 228

8.5 混淆CloudTrail日志的内容 236

8.6 总结 236

第9章 绕过安全控制 237

9.1 绕过NAC 237

9.1.1 准入前NAC 238

9.1.2 准入后NAC 240

9.2 绕过应用程序级别的控制 240

9.3 绕过文件查杀 244

9.3.1 使用Veil框架 245

9.3.2 使用Shellter 250

9.4 无文件化和规避杀毒 252

9.5 绕过Windows操作系统控制 253

9.5.1 用户账户控制 253

9.5.2 混淆PowerShell和使用无文件

技术 257

9.5.3 其他Windows特有的操作系统

控制 260

9.6 总结 262

第10章 漏洞利用 263

10.1 Metasploit框架 263

10.1.1 函数库 263

10.1.2 界面 264

10.1.3 模块 265

10.1.4 数据库设置和配置 266

10.2 使用MSF对目标进行攻击 270

10.3 利用MSF资源文件对多个目标进行

攻击 274

10.4 使用公开的漏洞 275

10.4.1 找到并验证公开可用的漏洞 275

10.4.2 编译和使用漏洞 276

10.5 开发一个Windows漏洞利用 278

10.5.1 通过模糊测试识别漏洞 279

10.5.2 调试和复现崩溃的情况 281

10.5.3 控制应用程序的执行 283

10.5.4 识别正确的坏字符并生成shellcode 285

10.5.5 获取Shell 286

10.6 PowerShell Empire框架 288

10.7 总结 290

第11章 目标达成和横向移动 292

11.1 在被入侵的本地系统上活动 292

11.1.1 对被入侵的系统进行快速

侦察 293

11.1.2 寻找并获取敏感数据—掠夺

目标 294

11.1.3 后渗透工具 296

11.2 横向升级和横向移动 302

11.2.1 破坏域信任和共享 303

11.2.2 PsExec、WMIC和其他

工具 305

11.2.3 使用服务的横向移动 309

11.2.4 跳板和端口转发 310

11.3 总结 312

第12章 权限提升 313

12.1 常见权限提升方法 313

12.2 从域用户提升到系统管理员权限 314

12.3 本地权限提升 316

12.4 从管理员提升到系统级别权限 317

12.5 凭证收集和权限提升攻击 320

12.5.1 密码嗅探器 320

12.5.2 Responder 322

12.5.3 对基于TLS的LDAP进行中间

人攻击 324

12.6 活动目录中访问权限的提升 329

12.7 入侵Kerberos—黄金票据攻击 333

12.8 总结 338

第13章 命令与控制 339

13.1 持久化 339

13.2 使用持久化代理 340

13.2.1 使用Netcat作为持久化

代理 340

13.2.2 使用schtasks配置持久化

任务 343

13.2.3 使用Metasploit框架维护

持久化 345

13.2.4 使用Metasploit创建独立的

持久化代理 346

13.2.5 使用在线文件存储云服务进行

持久化 347

13.3 域前置 356

13.4 数据渗出 361

13.4.1 使用现有系统服务(Telnet、RDP和VNC) 361

13.4.2 使用ICMP 362

13.4.3 隐藏攻击的证据 363

13.5 总结 365

第14章 嵌入式设备与RFID攻击 366

14.1 嵌入式系统和硬件架构 366

14.2 固件解包和更新 369

14.3 RouterSploit框架概述 372

14.4 UART 375

14.5 使用ChameleonMini复制RFID 377

14.6 总结 382

本文已获得版权 发布