Web 滲透測試實戰:基於 Metasploit 5.0 (Hands-On Web Penetration Testing with Metasploit: The subtle art of using Metasploit 5.0 for web application exploitation)

Harpreet Singh,Himanshu Sharma 賈玉彬//趙賢輝//趙越

買這商品的人也買了...

商品描述

本書從Metasploit的配置開始介紹,然後探索Metasploit術語和Web GUI,並帶你深入測試流行的內容管理系統,
例如Drupal、WordPress和Joomla,還將研究新型CVE並詳細介紹漏洞形成的根本原因。
之後,深入介紹JBoss、Jenkins和Tomcat等技術平台的漏洞評估和利用。
讀者還將學習如何使用第三方工具對Web應用程序進行模糊測試以查找邏輯安全漏洞等。

作者簡介

Himanshu Sharma

因發現蘋果、谷歌、微軟、Facebook、Adobe、Uber、AT&T、Avira等公司的安全漏洞而聞名。
他曾協助Harbajan Singh等找回被黑客攻擊的賬戶,也曾在Botconf 2013、CONFidence、RSA Singapore、
LeHack、Hacktivity、Hack In the Box 和 SEC-T等國際會議上擔任演講人和培訓師,還曾在Tedx的IEEE會議上發言。
目前,他是眾包安全平台BugsBounty的聯合創始人。

目錄大綱

譯者序
前言
關於作者
關於審校者
第一篇 導論
第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標籤檢測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