目 录
译者序
前言
关于作者
关于技术审校
第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 隐藏可执行文件和混