首页>参考读物>计算机科学与技术>综合

Web渗透测试实战:基于Metasploit 5.0
作者 : [印]哈伯利特·辛格(Harpreet Singh) [印]希曼舒·夏尔马(Himanshu Sharma) 著
译者 : 贾玉彬 赵贤辉 赵越 译
出版日期 : 2021-07-16
ISBN : 978-7-111-68627-9
定价 : 129.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 405
开本 : 16
原书名 : Hands-On Web Penetration Testing with Metasploit:The Subtle Art of Using Metasploit 5.0 for Web Application Exploitation
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书从Metasploit的配置开始介绍,然后探索Metasploit术语和Web GUI,并带你深入测试流行的内容管理系统,例如Drupal、WordPress和Joomla,还将研究新型CVE并详细介绍漏洞形成的根本原因。之后,深入介绍JBoss、Jenkins和Tomcat等技术平台的漏洞评估和利用。读者还将学习如何使用第三方工具对Web应用程序进行模糊测试以查找逻辑安全漏洞等。

图书特色

全面系统地讲述使用Metasploit开展Web渗透测试的实用技术、方法和工具
内容由浅入深,有丰富的示例代码,易学易懂

图书前言

在当今快速发展的技术世界中,信息安全行业正以惊人的速度变化,与此同时,针对组织的网络攻击数量也在迅速增加。为了保护自己免受这些来自真实世界的攻击,许多组织在其流程管理中引入了安全审计以及风险和漏洞评估机制,旨在评估与其业务资产有关的风险。为了保护IT资产,许多组织聘请信息安全专业人员,以识别组织的应用程序和网络中可能存在的风险、漏洞和威胁。对于信息安全专业人员来说,掌握并提高自己的专业技能以及熟悉最新的攻击方法至关重要。同样,为了提高效率,许多人在进行渗透测试和漏洞利用时都将Metasploit作为首选。
对于网络漏洞利用和后渗透,我们可以找到大量资源,但是就Web应用渗透测试而言,选择Metasploit的人并不多。本书将帮助安全顾问和专业人士了解Metasploit在Web应用渗透测试中的作用,使读者能够在Metasploit的帮助下更有效地进行Web应用渗透测试。
本书读者对象
本书专为渗透测试人员、白帽黑客、信息安全顾问以及对Web应用渗透测试有一定了解,并且想要了解更多相关知识或深入研究Metasploit框架的人而设计。
本书涵盖的内容
第1章 介绍Metasploit的安装和配置,以及渗透测试的生命周期、OWASP Top 10和SANS Top 25。
第2章 介绍Metasploit从安装到漏洞利用的基础知识,还涵盖基本的Metasploit术语以及Metasploit中其他较不常用的选项。
第3章 在深入探讨其他主题之前,对Metasploit社区版Web界面进行简单介绍。
第4章 介绍渗透测试生命周期中的第一个过程:侦察(reconnaissance)。从标识(banner)抓取到WEBDAV侦察,我们将借助特定Metasploit模块来说明基本的侦察过程。
第5章 着重介绍Web应用渗透测试中重要的过程之一—枚举。本章将首先介绍文件和目录枚举的基本知识,然后介绍网站爬虫和抓取,之后介绍和枚举相关的Metasploit模块。
第6章 主要介绍Metasploit框架中用于扫描Web应用的WMAP模块。
第7章 主要介绍通过Metasploit使用Nessus漏洞扫描程序对目标进行漏洞评估扫描。
第8章 主要介绍针对WordPress的漏洞枚举以及如何进行漏洞利用。
第9章 主要介绍针对Joomla的漏洞枚举以及如何进行漏洞利用。
第10章 主要介绍针对Drupal的漏洞枚举以及如何进行漏洞利用。
第11章 介绍针对JBoss服务器进行漏洞枚举、利用和获得访问权限的方法。
第12章 介绍针对Tomcat服务器进行漏洞枚举、利用和获得访问权限的方法。
第13章 介绍针对运行Jenkins的服务器进行漏洞枚举、利用和获得访问权限的方法。
第14章 主要介绍针对Web应用业务逻辑缺陷的利用,并详细介绍通过对Web应用进行模糊测试来挖掘漏洞的一些实例。
第15章 涵盖报告编写的基础知识以及如何使用不同的工具来自动执行报告编写过程。
学习本书的基本要求
对Metasploit框架和脚本语言(如Python或Ruby)有基本的了解,将有助于读者理解各章内容。
书中涉及的软件/硬件 操作系统要求
Metasploit Framework Windows/macOS/*nix

如果你使用的是本书的数字版本,建议你自己输入代码,这样做将帮助你避免任何与代码复制和粘贴有关的潜在错误。
排版约定
本书中使用了以下约定。
代码体:表示文本中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。下面是一个示例:“将下载的WebStorm-10*.dmg磁盘映像文件作为系统中的另一个磁盘装入。”
代码块设置如下:

当我们希望引起你对代码块特定部分的注意时,相关行或项目会以粗体显示:

任何命令行输入或输出的编写方式如下:

表示警告或重要说明。
表示提示和技巧。
免责声明
本书中的信息仅用于合法范围。如果没有得到设备所有者的书面许可,不要使用本书中的任何信息。如果你误用书中的任何信息,出版社不承担任何责任。书中信息只能在测试环境中使用,并要得到相关负责人的书面授权。

上架指导

计算机\安全

封底文字

本书围绕着Metasploit这款强大、流行和有发展潜力的开源渗透测试评估软件,详细地介绍了渗透测试的方法以及流程,为读者提供了多维度的渗透测试方法学,可以帮助不同技术领域的IT人员打开安全世界的大门。由于强大的开源社区的推动,Metasploit能满足多种场景下的渗透测试需求,因而很快得到世界上大多数渗透测试工程师的青睐。Metasploit 5.0版本能为用户带来更好的交互体验。相信阅读本书能够让你受益匪浅。
—— 侯亮 安恒信息安全服务首席安全官 

实战是检验安全防护能力的唯一标准,所以要有专业的能够进行实战演练的红队成员。渗透测试则是红队成员需要具备的核心技能。本书全面、系统地讲述了如何基于著名的开源渗透测试框架Metasploit开展Web渗透测试,是一本不错的参考手册!
—— lake2 腾讯安全应急响应中心总监 

多年以来,Metasploit一直是重要的安全工具,但是只有少数几个模块可以用于对Web应用程序进行渗透测试。通过这本书,你将了解Metasploit在与其内置GUI一起使用时如何简化Web应用程序渗透测试。

通过阅读本书,你将学到:
如何快速安装和设置Metasploit框架。
使用Metasploit Web界面的技巧。
如何使用Metasploit进行Web应用程序侦察。
如何对各种内容管理系统进行渗透测试。
如何对不同技术平台(如JBoss、Tomcat和Jenkins)进行渗透测试。
如何对Web应用程序进行模糊测试。
如何编写渗透测试报告。

译者序

在IT行业工作了20年,这是我翻译的第三本信息安全类专业书籍,也是为机械工业出版社华章分社翻译的第一本书,值得纪念。我将会尽量利用我的业余时间多翻译一些优质的国外图书,也希望能通过这种方式对我国的信息安全产业做出贡献。
我曾在RAPID7工作6年,可以说每天都在和Metasploit打交道,这个“神器”也绝非浪得虚名,在渗透测试工具领域无疑占据领导地位。这个工具的发明者是被称为世界十大黑客之一的HD Moore,也是我在RAPID7工作时的同事,虽然他后来离开了RAPID7开始创业,但仍然是Metasploit项目组的特别成员。熟练使用Metasploit将非常有助于提高渗透测试的效率。
本书作者都拥有丰富的行业经验。具有一定渗透测试基础,尤其是Metasploit方面基础的读者可以跳过前两章,但后面的每章内容都很精彩,也很关键。第8~10章介绍如何对主流CMS(WordPress、Joomla、Drupal)进行渗透测试,第11~13章介绍如何对主流技术平台(JBoss、Apache Tomcat、Jenkins)进行渗透测试。建议读者按照本书的章节顺序进行阅读,动手实践书中的示例,并尽量花时间做一下每章节最后的问题,这非常有助于加深读者对知识点的理解。请在实验环境下进行练习,在没有正式授权的情况下禁止在真实环境中进行攻击。
本书内容深入浅出,很适合信息安全从业者(尤其是信息安全攻防领域的从业者和渗透测试人员)、大专院校网络安全专业学生阅读。翻译过程中难免有错误和纰漏,请广大读者批评指正。
参与本书翻译的还有赵贤辉(影子)和赵越。影子具有超过15年的渗透测试实战经验,赵越长期在甲方从事渗透测试和安全评估工作,也有着丰富的从业经验。
最后,衷心感谢上海碳泽信息科技有限公司全体同人和股东的支持,感谢你们的理解和信任。

贾玉彬
上海碳泽信息科技有限公司创始人
2021年1月于北京

图书目录

译者序
前言
关于作者
关于审校者
第一篇 导论
第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.1 OSSTMM7
1.5.2 OSSTMM测试类型9
1.5.3 ISSAF10
1.5.4 PTES11
1.6 通用缺陷列表14
1.6.1 OWASP Top 1014
1.6.2 SANS Top 2514
1.7 小结15
1.8 问题15
1.9 拓展阅读15
第2章 Metasploit基础知识16
2.1 技术条件要求16
2.2 MSF简介16
2.3 MSF术语17
2.4 安装与设置Metasploit18
2.4.1 在*nix系统上安装MSF19
2.4.2 在Windows上安装MSF21
2.5 MSF入门23
2.5.1 使用msfconsole与MSF交互23
2.5.2 MSF控制台命令24
2.6 小结43
2.7 问题43
2.8 拓展阅读44
第3章 Metasploit Web界面45
3.1 技术条件要求45
3.2 Metasploit Web界面简介45
3.3 安装和设置Web界面46
3.3.1 在Windows上安装Metasploit社区版46
3.3.2 在Linux/Debian上安装Metasploit社区版50
3.4 Metasploit 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.1 DNS枚举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.3 WMAP扫描过程114
6.3.1 数据侦察114
6.3.2 加载扫描器120
6.3.3 WMAP配置121
6.3.4 启动WMAP124
6.4 WMAP模块执行顺序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.2 Nessus简介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.2 WordPress简介160
8.2.1 WordPress架构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.5 WordPress漏洞利用第1部分—WordPress任意文件删除177
8.5.1 漏洞流和分析178
8.5.2 使用Metasploit利用漏洞180
8.6 WordPress漏洞利用第2部分—未经身份验证的SQL注入187
8.6.1 漏洞流和分析187
8.6.2 使用Metasploit利用漏洞188
8.7 WordPress漏洞利用第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.2 Joomla简介202
9.3 Joomla架构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.2 Drupal及其架构简介223
10.2.1 Drupal架构223
10.2.2 目录结构224
10.3 Drupal侦察和枚举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.2 RESTful Web Services漏洞利用—unserialize()237
10.6 小结249
10.7 问题250
10.8 拓展阅读250
第四篇 技术平台渗透测试
第11章 技术平台渗透测试——JBoss252
11.1 技术条件要求252
11.2 JBoss简介252
11.2.1 JBoss架构(JBoss 5)253
11.2.2 JBoss 文件及目录结构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.8 JBoss服务枚举261
11.4 在JBoss AS上执行漏洞评估262
11.4.1 使用JexBoss执行漏洞扫描263
11.4.2 可被攻击的JBoss入口点264
11.5 JBoss漏洞利用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.2 Tomcat 简介288
12.3 Apache 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.1 Apache Tomcat JSP 上传绕过漏洞297
12.7.2 Tomcat WAR shell 上传(经过认证)300
12.8 Apache Struts简介 304
12.8.1 理解OGNL 304
12.8.2 OGNL表达式注入304
12.8.3 通过OGNL注入测试远程代码执行306
12.8.4 通过 OGNL 注入进行不可视的远程代码执行310
12.8.5 OGNL带外注入测试310
12.8.6 使用Metasploit 对Struts 2 进行漏洞利用311
12.9 小结313
12.10 问题313
12.11 拓展阅读313
第13章 技术平台渗透测试——Jenkins314
13.1 技术条件要求314
13.2 Jenkins简介314
13.3 Jenkins术语315
13.3.1 Stapler 库 315
13.3.2 URL路由316
13.3.3 Apache Groovy 316
13.3.4 元编程 316
13.3.5 抽象语法树 316
13.3.6 Pipeline 317
13.4 Jenkins 侦察和枚举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.5 Web应用模糊测试简介337
14.5.1 安装Wfuzz337
14.5.2 安装ffuf337
14.6 识别Web应用攻击向量340
14.6.1 HTTP请求动词340
14.6.2 HTTP请求URI344
14.6.3 HTTP请求标头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.3 Dradis框架简介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.4 Serpico简介376
15.4.1 安装和设置376
15.4.2 开始使用Serpico376
15.4.3 将数据从Metasploit导入Serpico380
15.4.4 将第三方报告导入Serpico381
15.4.5 Serpico中的用户管理381
15.4.6 Serpico中的模板管理383
15.4.7 生成多种格式的报告385
15.5 小结385
15.6 问题385
15.7 拓展阅读386
问题答案387

教学资源推荐
作者: (美)Gary B. Shelly , Thomas J. Cashman,Harry J. Rosenblatt 著 史晟辉 王艳清 李芳 耿志强 等译
作者: Andrew S.Tanenbaum
作者: (英)Hilary Glasman-Deal 著
参考读物推荐
作者: (美)杰格迪什.谢斯(Jagdish Sheth);拉金德拉.西索迪亚(Rajendra Sisodia )
作者: (美)Phillip Laplante Thomas Costello 等著
作者: 橘子哥riki 著
作者: (美) David Croslin 著