本书从Metasploit的配置开始介绍,然后探索Metasploit术语和Web GUI,并带你深入测试流行的内容管理系统,例如Drupal、WordPress和Joomla,还将研究新型CVE并详细介绍漏洞形成的根本原因。之后,深入介绍JBoss、Jenkins和Tomcat等技术平台的漏洞评估和利用。读者还将学习如何使用第三方工具对Web应用程序进行模糊测试以查找逻辑安全漏洞等。
封面图
目录
- 译者序
- 前言
- 关于作者
- 关于审校者
- 第一篇导论
- 第1章Web应用渗透测试简介2
- 1.1什么是渗透测试2
- 1.2渗透测试的类型3
- 1.2.1白盒渗透测试3
- 1.2.2黑盒渗透测试3
- 1.2.3灰盒渗透测试3
- 1.3渗透测试的阶段3
- 1.3.1侦察和信息收集4
- 1.3.2枚举4
- 1.3.3漏洞评估与分析5
- 1.3.4漏洞利用5
- 1.3.5报告6
- 1.4重要术语6
- 1.5渗透测试方法学7
- 1.5.1OSSTMM7
- 1.5.2OSSTMM测试类型9
- 1.5.3ISSAF10
- 1.5.4PTES11
- 1.6通用缺陷列表14
- 1.6.1OWASP Top 1014
- 1.6.2SANS Top 2514
- 1.7小结15
- 1.8问题15
- 1.9拓展阅读15
- 第2章Metasploit基础知识16
- 2.1技术条件要求16
- 2.2MSF简介16
- 2.3MSF术语17
- 2.4安装与设置Metasploit18
- 2.4.1在*nix系统上安装MSF19
- 2.4.2在Windows上安装MSF21
- 2.5MSF入门23
- 2.5.1使用msfconsole与MSF交互23
- 2.5.2MSF控制台命令24
- 2.6小结43
- 2.7问题43
- 2.8拓展阅读44
- 第3章Metasploit Web界面45
- 3.1技术条件要求45
- 3.2Metasploit Web界面简介45
- 3.3安装和设置Web界面46
- 3.3.1在Windows上安装Metasploit社区版46
- 3.3.2在Linux/Debian上安装Metasploit社区版50
- 3.4Metasploit Web界面入门53
- 3.4.1界面53
- 3.4.2项目创建56
- 3.4.3目标枚举58
- 3.4.4模块选择64
- 3.5小结76
- 3.6问题76
- 3.7拓展阅读76
- 第二篇Metasploit的渗透测试生命周期
- 第4章使用Metasploit进行侦察78
- 4.1技术条件要求78
- 4.2侦察简介78
- 4.2.1主动侦察79
- 4.2.2被动侦察90
- 4.3小结96
- 4.4问题96
- 4.5拓展阅读97
- 第5章使用Metasploit进行Web应用枚举98
- 5.1技术条件要求98
- 5.2枚举简介98
- 5.2.1DNS枚举99
- 5.2.2更进一步—编辑源代码100
- 5.3枚举文件105
- 5.3.1使用Metasploit进行爬行和抓取操作108
- 5.3.2扫描虚拟主机111
- 5.4小结112
- 5.5问题112
- 5.6拓展阅读112
- 第6章使用WMAP进行漏洞扫描113
- 6.1技术条件要求113
- 6.2理解WMAP113
- 6.3WMAP扫描过程114
- 6.3.1数据侦察114
- 6.3.2加载扫描器120
- 6.3.3WMAP配置121
- 6.3.4启动WMAP124
- 6.4WMAP模块执行顺序125
- 6.5为WMAP添加一个模块128
- 6.6使用WMAP进行集群扫描133
- 6.7小结139
- 6.8问题139
- 6.9拓展阅读140
- 第7章使用Metasploit(Nessus)进行漏洞评估141
- 7.1技术条件要求141
- 7.2Nessus简介141
- 7.2.1将Nessus与Metasploit结合使用142
- 7.2.2通过Metasploit进行Nessus身份验证143
- 7.3基本命令145
- 7.4通过Metasploit执行Nessus扫描149
- 7.4.1使用Metasploit DB执行Nessus扫描153
- 7.4.2在Metasploit DB中导入Nessus扫描156
- 7.5小结157
- 7.6问题157
- 7.7拓展阅读157
- 第三篇渗透测试内容管理系统
- 第8章渗透测试CMS——WordPress160
- 8.1技术条件要求160
- 8.2WordPress简介160
- 8.2.1WordPress架构161
- 8.2.2文件/目录结构161
- 8.3对WordPress进行侦察和枚举162
- 8.3.1版本检测163
- 8.3.2使用Metasploit进行WordPress侦察166
- 8.3.3使用Metasploit进行WordPress枚举167
- 8.4对WordPress进行漏洞评估169
- 8.5WordPress漏洞利用第1部分—WordPress任意文件删除177
- 8.5.1漏洞流和分析178
- 8.5.2使用Metasploit利用漏洞180
- 8.6WordPress漏洞利用第2部分—未经身份验证的SQL注入187
- 8.6.1漏洞流和分析187
- 8.6.2使用Metasploit利用漏洞188
- 8.7WordPress漏洞利用第3部分—WordPress 5.0.0远程代码执行188
- 8.7.1漏洞流和分析189
- 8.7.2使用Metasploit利用漏洞190
- 8.8更进一步—自定义Metasploit漏洞利用模块198
- 8.9小结201
- 8.10问题201
- 8.11拓展阅读201
- 第9章渗透测试CMS——Joomla202
- 9.1技术条件要求202
- 9.2Joomla简介202
- 9.3Joomla架构203
- 9.4侦察和枚举204
- 9.4.1版本检测204
- 9.4.2使用Metasploit对Joomla进行侦察208
- 9.5使用Metasploit枚举Joomla插件和模块209
- 9.5.1页面枚举209
- 9.5.2插件枚举210
- 9.6对Joomla进行漏洞扫描211
- 9.7使用Metasploit对Joomla进行漏洞利用212
- 9.8上传Joomla Shell219
- 9.9小结222
- 9.10问题222
- 9.11拓展阅读222
- 第10章渗透测试CMS——Drupal223
- 10.1技术条件要求223
- 10.2Drupal及其架构简介223
- 10.2.1Drupal架构223
- 10.2.2目录结构224
- 10.3Drupal侦察和枚举225
- 10.3.1通过README.txt检测225
- 10.3.2通过元标记检测226
- 10.3.3通过服务器标头检测226
- 10.3.4通过CHANGELOG.txt检测227
- 10.3.5通过install.php检测228
- 10.3.6插件、主题和模块枚举228
- 10.4使用droopescan对Drupal进行漏洞扫描229
- 10.5对Drupal进行漏洞利用231
- 10.5.1使用Drupalgeddon2对Drupal进行漏洞利用231
- 10.5.2RESTful Web Services漏洞利用—unserialize()237
- 10.6小结249
- 10.7问题250
- 10.8拓展阅读250
- 第四篇技术平台渗透测试
- 第11章技术平台渗透测试——JBoss252
- 11.1技术条件要求252
- 11.2JBoss简介252
- 11.2.1JBoss架构(JBoss 5)253
- 11.2.2JBoss 文件及目录结构254
- 11.3侦察和枚举256
- 11.3.1通过主页检测256
- 11.3.2通过错误页面检测257
- 11.3.3通过HTML<title>标签检测257
- 11.3.4通过X-Powered-By检测258
- 11.3.5通过散列favicon.ico检测258
- 11.3.6通过样式表进行检测259
- 11.3.7使用Metasploit执行JBoss状态扫描259
- 11.3.8JBoss服务枚举261
- 11.4在JBoss AS上执行漏洞评估262
- 11.4.1使用JexBoss执行漏洞扫描263
- 11.4.2可被攻击的JBoss入口点264
- 11.5JBoss漏洞利用265
- 11.5.1通过管理控制台对JBoss进行漏洞利用265
- 11.5.2通过JMX控制台进行漏洞利用(MainDeployer方法)267
- 11.5.3使用Metasploit(MainDeployer)通过JMX控制台进行漏洞利用271
- 11.5.4通过JMX控制台(BSHDeployer)进行漏洞利用272
- 11.5.5使用Metasploit(BSHDeployer)通过JMX控制台进行漏洞利用274
- 11.5.6通过Web控制台(Java Applet)进行漏洞利用275
- 11.5.7通过Web控制台(Invoker方法)进行漏洞利用277
- 11.5.8使用Metasploit通过JMXInvoker-Servlet 进行漏洞利用285
- 11.6小结286
- 11.7问题286
- 11.8拓展阅读286
- 第12章技术平台渗透测试——Apache Tomcat287
- 12.1技术条件要求287
- 12.2Tomcat 简介288
- 12.3Apache Tomcat 架构288
- 12.4文件和目录结构289
- 12.5检测Tomcat的安装290
- 12.5.1通过 HTTP 响应标头检测—X-Powered-By 291
- 12.5.2通过HTTP响应标头检测 — WWW-Authenticate 291
- 12.5.3通过 HTML 标签检测—页面标题标签 291
- 12.5.4通过 HTTP 401未授权错误检测292
- 12.5.5通过唯一指纹(哈希值)检测292
- 12.5.6通过目录和文件检测293
- 12.6版本检测294
- 12.6.1通过 HTTP 404错误页面检测294
- 12.6.2通过Release-Notes.txt 泄露版本号294
- 12.6.3通过 Changelog.html 泄露版本信息294
- 12.7对Tomcat进行漏洞利用295
- 12.7.1Apache Tomcat JSP 上传绕过漏洞297
- 12.7.2Tomcat WAR shell 上传(经过认证)300
- 12.8Apache Struts简介 304
- 12.8.1理解OGNL 304
- 12.8.2OGNL表达式注入304
- 12.8.3通过OGNL注入测试远程代码执行306
- 12.8.4通过 OGNL 注入进行不可视的远程代码执行310
- 12.8.5OGNL带外注入测试310
- 12.8.6使用Metasploit 对Struts 2 进行漏洞利用311
- 12.9小结313
- 12.10问题313
- 12.11拓展阅读313
- 第13章技术平台渗透测试——Jenkins314
- 13.1技术条件要求314
- 13.2Jenkins简介314
- 13.3Jenkins术语315
- 13.3.1Stapler 库 315
- 13.3.2URL路由316
- 13.3.3Apache Groovy 316
- 13.3.4元编程 316
- 13.3.5抽象语法树 316
- 13.3.6Pipeline 317
- 13.4Jenkins 侦察和枚举317
- 13.4.1使用收藏夹图标哈希值检测Jenkins 317
- 13.4.2使用 HTTP 响应标头检测Jenkins 318
- 13.4.3使用 Metasploit 进行 Jenkins 枚举319
- 13.5对Jenkins进行漏洞利用321
- 13.5.1访问控制列表绕过322
- 13.5.2理解 Jenkins 的未认证远程代码执行324
- 13.6小结330
- 13.7问题331
- 13.8拓展阅读331
- 第五篇逻辑错误狩猎
- 第14章Web应用模糊测试——逻辑错误狩猎334
- 14.1技术条件要求334
- 14.2什么是模糊测试335
- 14.3模糊测试术语335
- 14.4模糊测试的攻击类型336
- 14.4.1应用模糊测试336
- 14.4.2协议模糊测试336
- 14.4.3文件格式模糊测试336
- 14.5Web应用模糊测试简介337
- 14.5.1安装Wfuzz337
- 14.5.2安装ffuf337
- 14.6识别Web应用攻击向量340
- 14.6.1HTTP请求动词340
- 14.6.2HTTP请求URI344
- 14.6.3HTTP请求标头352
- 14.7小结361
- 14.8问题361
- 14.9拓展阅读361
- 第15章编写渗透测试报告363
- 15.1技术条件要求363
- 15.2报告编写简介363
- 15.2.1编写执行报告364
- 15.2.2编写详细的技术报告365
- 15.3Dradis框架简介367
- 15.3.1安装前配置367
- 15.3.2安装和设置367
- 15.3.3开始使用Dradis369
- 15.3.4将第三方报告导入Dradis370
- 15.3.5在Dradis中定义安全测试方法372
- 15.3.6使用Dradis组织报告374
- 15.3.7在Dradis中导出报告375
- 15.4Serpico简介376
- 15.4.1安装和设置376
- 15.4.2开始使用Serpico376
- 15.4.3将数据从Metasploit导入Serpico380
- 15.4.4将第三方报告导入Serpico381
- 15.4.5Serpico中的用户管理381
- 15.4.6Serpico中的模板管理383
- 15.4.7生成多种格式的报告385
- 15.5小结385
- 15.6问题385
- 15.7拓展阅读386
- 问题答案387