作为测试者或者安全实践者,你将通过本书领会渗透测试人员的侦察、漏洞评估、利用、提权以及后利用活动。首先,你将使用实验室环境来验证所学工具和技术,以及支持用于测试的协作方法的应用程序。然后,您将学习基于开源智能的被动侦察以及基于内部和外部基础设施的主动侦察。您还将专注于如何选择,使用和自定义不同漏洞扫描程序,并且解释扫描结果,然后专注于检查到目的地址的特定路由,其中包括物理安全的绕过和使用各种技术的数据外泄。你还将学习社交工程攻击,无线网络攻击,Web服务和嵌入式设备等概念。
封面图
目录
- 前言
- 致谢
- 审校者简介
- 第1章基于目标的渗透测试 1
- 1.1安全测试概述 1
- 1.2漏洞扫描、渗透测试和红队训练的误解 2
- 1.3基于目标的渗透测试 2
- 1.4测试方法 3
- 1.5Kali 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.4Maltego 31
- 2.1.5OSRFramework 34
- 2.1.6Web archives 35
- 2.1.7抓取 35
- 2.1.8收集用户名和电子邮件地址 36
- 2.1.9获取用户信息 36
- 2.1.10Shodan和censys.io 37
- 2.2Google黑客数据库 38
- 2.2.1使用dork脚本来查询Google 38
- 2.2.2Data 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.2DNS侦察和路由映射 51
- 3.3利用综合侦察应用程序 52
- 3.3.1recon-ng框架 53
- 3.3.2使用IPv6专用工具 56
- 3.3.3映射路由到目标 57
- 3.4识别外部网络基础设施 59
- 3.5防火墙外映射 60
- 3.6IDS / 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.1DHCP信息 67
- 3.10.2内部网络主机的识别与枚举 67
- 3.10.3本地MS Windows命令 68
- 3.10.4ARP广播 70
- 3.10.5ping扫描 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.12SPARTA配置实例 76
- 3.11小结 77
- 第4章漏洞评估 78
- 4.1漏洞命名 78
- 4.2本地和在线漏洞数据库 79
- 4.3用nmap进行漏洞扫描 82
- 4.3.1Lua脚本介绍 83
- 4.3.2自定义NSE脚本 83
- 4.4Web应用漏洞扫描器 85
- 4.4.1Nikto和Vega简介 85
- 4.4.2定制Nikto和Vega 87
- 4.5移动应用漏洞扫描器 89
- 4.6网络漏洞扫描器OpenVAS 92
- 4.7商业漏洞扫描器 94
- 4.7.1Nessus 94
- 4.7.2Nexpose 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.1samdump2和chntpw 104
- 5.2.2粘滞键 107
- 5.3创建流氓物理设备 108
- 5.4社会工程学工具包 112
- 5.4.1使用网站攻击媒介——凭据收割机攻击方法 114
- 5.4.2使用网站攻击媒介——标签钓鱼攻击方法 116
- 5.4.3HTA攻击 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.1Web应用程序攻击方法 153
- 7.2黑客的思维导图 154
- 7.3Web应用的侦察 156
- 7.3.1Web应用防火墙和负载均衡器检测 157
- 7.3.2指纹识别Web应用和CMS 158
- 7.3.3利用命令行设置镜像网站 160
- 7.4客户端代理 161
- 7.4.1Burp代理 161
- 7.4.2Web抓取和目录的暴力破解 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.5BeEF浏览器 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.1Metasploit框架 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.1Veil-Pillage 263
- 11.2.2入侵域信任与共享 265
- 11.2.3PsExec、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.3SMB中继攻击 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.3RouterSploit 框架简介 330
- 14.4UART 333
- 14.5利用Chameleon Mini克隆RFID 335
- 14.6小结 339