《Metasploit滲透測試指南(修訂版)》介紹開源滲透測試框架平臺軟件Metasploit,以及基于Metasploit 進行網(wǎng)絡滲透測試與安全漏洞研究分析的技術、流程和方法,幫助初學者從零開始建立作為滲透測試者的基本技能,也為職業(yè)的滲透測試工程師提供一本參考索引。
《Metasploit滲透測試指南(修訂版)》分為17 章,覆蓋滲透測試的情報搜集、威脅建模、漏洞分析、滲透攻擊和后滲透攻擊各個環(huán)節(jié),并包含了免殺技術、客戶端滲透攻擊、社會工程學、自動化滲透測試、無線網(wǎng)絡攻擊等高級技術專題,以及如何擴展Metasploit 情報搜集、滲透攻擊與后滲透攻擊功能的實踐方法。此修訂版盡量保持原著的實驗案例選擇,僅根據(jù)Metasploit 版本更新的實際情況來復現(xiàn)實驗,同步更新操作流程的命令輸入和輸出結果。對于少量國內讀者不便重現(xiàn)的實驗案例,將實驗對象、分析工具等替換為更容易接觸和使用的替代品。
《Metasploit滲透測試指南(修訂版)》的讀者群主要是網(wǎng)絡與系統(tǒng)安全領域的技術愛好者與學生,以及滲透測試與漏洞分析研究方面的安全從業(yè)人員。
自2013年首次問世以來,《Metasploit滲透測試指南(修訂版)》迅速擄獲了從業(yè)人員的芳心。作為唯1一本經(jīng)官方團隊親自評審并高度認可(“現(xiàn)今已有好的Metasploit框架軟件參考指南”)的著作,《Metasploit滲透測試指南(修訂版)》不僅涵蓋了基礎的工具和技術,也深入分享了如何實施滲透測試的方法與經(jīng)驗。四位來自不同領域的資深黑客作者從不同的視角無私奉獻了他們的技巧與心得:既貢獻了企業(yè)安全架構上的經(jīng)驗,也端出了安全漏洞挖掘和滲透代碼開發(fā)的“私房菜”。
本次的修訂版,在譯者的精心組織與編排下完成,主要的修訂在于:基于Metasploit新的版本復現(xiàn)并更新了原書的實驗案例,同時考慮到國情與本地化的需求,將關鍵的實驗對象、分析工具等換成了國內讀者更容易接觸和使用的替代品。這使讀者能更容易通過復現(xiàn)實驗過程,深刻而快速地掌握相關滲透技巧。
譯者來自諸葛建偉老師的團隊。諸葛建偉老師是XCTF聯(lián)賽發(fā)起人、著名的藍蓮花團隊創(chuàng)始人之一,在網(wǎng)絡安全領域有多年的從業(yè)經(jīng)驗。
口碑好書,值得珍藏!
第1 章 滲透測試技術基礎 1
1.1 PTES 中的滲透測試階段 2
1.1.1 前期交互階段 2
1.1.2 情報搜集階段 2
1.1.3 威脅建模階段 3
1.1.4 漏洞分析階段 3
1.1.5 滲透攻擊階段 3
1.1.6 后滲透攻擊階段 3
1.1.7 報告階段 4
1.2 滲透測試類型 4
1.2.1 白盒測試 5
1.2.2 黑盒測試 5
1.2.3 灰盒測試 5
1.3 漏洞掃描器 6
1.4 小結 6
第2 章 Metasploit 基礎 7
2.1 專業(yè)術語 7
2.1.1 滲透攻擊(Exploit) 8
2.1.2 攻擊載荷(Payload) 8
2.1.3 Shellcode 8
2.1.4 模塊(Module) 8
2.1.5 監(jiān)聽器(Listener) 8
2.2 Metasploit 用戶接口 8
2.2.1 MSF 終端 9
2.2.2 MSF 命令行 9
2.2.3 Armitage 10
2.3 Metasploit 功能程序 11
2.3.1 MSF 攻擊載荷生成器 11
2.3.2 MSF 編碼器 12
2.3.3 Nasm Shell 13
2.4 Metasploit Express 和Metasploit Pro 13
2.5 小結 14
第3 章 情報搜集 15
3.1 被動信息搜集 16
3.1.1 Whois 查詢 16
3.1.2 Netcraft 17
3.1.3 nslookup 18
3.1.4 Google Hacking 18
3.2 主動信息搜集 20
3.2.1 使用Nmap 進行端口掃描 20
3.2.2 在Metasploit 中使用數(shù)據(jù)庫 22
3.2.3 使用Metasploit 進行端口掃描 27
3.3 針對性掃描 28
3.3.1 服務器消息塊協(xié)議掃描 28
3.3.2 搜尋配置不當?shù)腗icrosoft SQL Server 29
3.3.3 SSH 服務器掃描 30
3.3.4 FTP 掃描 30
3.3.5 簡單網(wǎng)管協(xié)議掃描 31
3.4 編寫自己的掃描器 33
3.5 展望 35
第4 章 漏洞掃描 36
4.1 基本的漏洞掃描 37
4.2 使用Nexpose 進行掃描 38
4.2.1 配置 38
4.2.2 將掃描報告導入到Metasploit 中 44
4.2.3 在MSF 控制臺中運行Nexpose 44
4.3 使用Nessus 進行掃描 46
4.3.1 配置Nessus 46
4.3.2 創(chuàng)建Nessus 掃描策略 47
4.3.3 執(zhí)行Nessus 掃描 49
4.3.4 Nessus 報告 50
4.3.5 將掃描結果導入Metasploit 框架中 50
4.3.6 在Metasploit 內部使用Nessus 進行掃描 52
4.4 專用漏洞掃描器 54
4.4.1 驗證SMB 登錄 54
4.4.2 掃描開放的VNC 空口令 56
4.4.3 掃描開放的X11 服務器 58
4.5 利用掃描結果進行自動化攻擊 59
第5 章 滲透攻擊之旅 65
5.1 滲透攻擊基礎 66
5.1.1 msf> show exploits 66
5.1.2 msf> show auxiliary 66
5.1.3 msf> show options 66
5.1.4 msf> show payloads 68
5.1.5 msf> show targets 70
5.1.6 info 71
5.1.7 set 和unset 71
5.1.8 setg 和unsetg 72
5.1.9 save 72
5.2 你的第一次滲透攻擊 72
5.3 攻擊Metasploitable 主機 76
5.4 全端口攻擊載荷:暴力猜解目標開放的端口 79
5.5 資源文件 80
5.6 小結 82
第6 章 Meterpreter 83
6.1 攻陷Windows XP 虛擬機 83
6.1.1 使用nmap 掃描端口 84
6.1.2 攻擊MS SQL 84
6.1.3 暴力破解MS SQL 服務 86
6.1.4 xp_cmdshell 87
6.1.5 Meterpreter 基本命令 88
6.1.6 獲取鍵盤記錄 89
6.2 挖掘用戶名和密碼 90
6.2.1 提取密碼哈希值 90
6.2.2 使用Meterpreter 命令獲取密碼哈希值 91
6.3 傳遞哈希值 92
6.4 權限提升 93
6.5 令牌假冒 95
6.6 使用PS 95
6.7 通過跳板攻擊其他機器 97
6.7.1 使用Meterpreter 進行跳板攻擊 97
6.7.2 使用Metasploit Pro 的VPN 跳板 100
6.8 使用Meterpreter 腳本 105
6.8.1 遷移進程 105
6.8.2 關閉殺毒軟件 106
6.8.3 獲取系統(tǒng)密碼哈希值 106
6.8.4 查看目標機上的所有流量 106
6.8.5 攫取系統(tǒng)信息 107
6.8.6 控制持久化 107
6.9 向后滲透攻擊模塊轉變 108
6.10 將命令行shell 升級為Meterpreter 109
6.11 通過附加的Railgun 組件操作Windows API 110
6.12 小結 110
第7 章 免殺技術 112
7.1 使用MSF 攻擊載荷生成器創(chuàng)建可獨立運行的二進制文件 113
7.2 躲避殺毒軟件的檢測 114
7.2.1 使用MSF 編碼器 114
7.2.2 多重編碼 117
7.3 自定義可執(zhí)行文件模板 118
7.4 隱秘地啟動一個攻擊載荷 120
7.5 加殼軟件 122
7.6 使用Metasploit Pro 的動態(tài)載荷實現(xiàn)免殺 123
7.7 關于免殺處理的最后忠告 126
第8 章 客戶端滲透攻擊 127
8.1 基于瀏覽器的滲透攻擊 128
8.1.1 基于瀏覽器的滲透攻擊原理 128
8.1.2 關于空指令 129
8.2 使用ollydbg 調試器揭秘空指令機器碼 130
8.3 對IE 瀏覽器的極光漏洞進行滲透利用 134
8.4 文件格式漏洞滲透攻擊 137
8.5 發(fā)送攻擊負載 139
8.6 小結 140
第9 章 Metasploit 輔助模塊 141
9.1 使用輔助模塊 144
9.2 輔助模塊剖析 146
9.3 展望 152
第10 章 社會工程學工具包 153
10.1 配置SET 工具包 154
10.2 針對性釣魚攻擊向量 155
10.3 Web 攻擊向量 160
10.3.1 Java Applet 160
10.3.2 客戶端Web 攻擊 165
10.3.3 用戶名和密碼獲取 167
10.3.4 標簽頁劫持攻擊(Tabnabbing) 169
10.3.5 中間人攻擊 169
10.3.6 網(wǎng)頁劫持 169
10.3.7 綜合多重攻擊方法 171
10.4 傳染性媒體生成器 176
10.5 USB HID 攻擊向量 177
10.6 SET 的其他特性 181
10.7 展望 181
第11 章 Fast-Track 183
11.1 Microsoft SQL 注入 184
11.1.1 SQL 注入——查詢語句攻擊 185
11.1.2 SQL 注入——POST 參數(shù)攻擊 186
11.1.3 手工注入 187
11.1.4 MS SQL 破解 188
11.1.5 通過SQL 自動獲得控制(SQL Pwnage) 192
11.2 二進制到十六進制轉換器 194
11.3 大規(guī)?蛻舳斯 195
11.4 對自動化滲透的一點看法 197
第12 章 Karmetasploit 無線攻擊套件 198
12.1 配置 199
12.2 開始攻擊 200
12.3 獲取憑證 203
12.4 得到Shell 203
12.5 小結 206
第13 章 編寫你自己的模塊 207
13.1 在MS SQL 上進行命令執(zhí)行 208
13.2 探索一個已存在的Metasploit 模塊 209
13.3 編寫一個新的模塊 211
13.3.1 PowerShell 211
13.3.2 運行Shell 滲透攻擊 213
13.3.3 編寫Powershell_upload_exec 函數(shù) 215
13.3.4 從十六進制轉換回二進制程序 215
13.3.5 計數(shù)器 217
13.3.6 運行滲透攻擊模塊 218
13.4 小結——代碼重用的能量 219
第14 章 創(chuàng)建你自己的滲透攻擊模塊 220
14.1 Fuzz 測試的藝術 221
14.2 控制結構化異常處理鏈 225
14.3 繞過SEH 限制 227
14.4 獲取返回地址 230
14.5 壞字符和遠程代碼執(zhí)行 235
14.6 小結 238
第15 章 將滲透代碼移植到Metasploit 239
15.1 匯編語言基礎 240
15.1.1 EIP 和ESP 寄存器 240
15.1.2 JMP 指令集 240
15.1.3 空指令和空指令滑行區(qū) 240
15.2 移植一個緩沖區(qū)溢出攻擊代碼 240
15.2.1 裁剪一個已有的滲透攻擊代碼 242
15.2.2 構造滲透攻擊過程 243
15.2.3 測試我們的基礎滲透代碼 244
15.2.4 實現(xiàn)框架中的特性 245
15.2.5 增加隨機化 246
15.2.6 消除空指令滑行區(qū) 247
15.2.7 去除偽造的Shellcode 247
15.2.8 我們完整的模塊代碼 249
15.3 SEH 覆蓋滲透代碼 250
15.4 小結 257
第16 章 Meterpreter 腳本編程 258
16.1 Meterpreter 腳本編程基礎 258
16.2 Meterpreter API 265
16.2.1 打印輸出 265
16.2.2 基本API 調用 266
16.2.3 Meterpreter Mixins 266
16.3 編寫Meterpreter 腳本的規(guī)則 267
16.4 創(chuàng)建自己的Meterpreter 腳本 268
16.5 小結 275
第17 章 一次模擬的滲透測試過程 276
17.1 前期交互 277
17.2 情報搜集 277
17.3 威脅建模 278
17.4 滲透攻擊 280
17.5 MSF 終端中的滲透攻擊過程 280
17.6 后滲透攻擊 281
17.6.1 掃描Metasploitable 靶機 282
17.6.2 識別存有漏洞的服務 284
17.7 攻擊Postgresql 數(shù)據(jù)庫服務 286
17.8 攻擊一個偏門的服務 288
17.9 隱藏你的蹤跡 289
17.10 小結 291
附錄A 配置目標機器 293
附錄B 命令參考列表 301