本書是Metasploit 滲透測試的權(quán)威指南,涵蓋了使用Metasploit 實現(xiàn)滲透測試的諸多方面,主要包括:滲透測試的基礎(chǔ)知識,編寫自定義滲透測試框架,開發(fā)滲透模塊,移植滲透模塊,測試服務(wù),虛擬化測試,客戶端滲透,Metasploit 中的擴展功能、規(guī)避技術(shù)和“特工”技術(shù),Metasploit 的可視化管理,以及加速滲透測試和高效使用Metasploit 的各種技巧。
近年來,滲透測試已成為網(wǎng)絡(luò)安全研究的核心問題之一,而Metasploit是目前業(yè)內(nèi)廣泛使用的滲透測試框架,擁有很多創(chuàng)新特性。本書是使用Metasploit進行滲透測試的實用指南,立足真實案例,幫助讀者了解如何使用Metasploit進行高效滲透測試、實現(xiàn)Web應(yīng)用程序的自動化攻擊、提升安全專業(yè)技能。
第3版新增了關(guān)于Metasploit中規(guī)避技術(shù)和“特工”技術(shù)的章節(jié),闡釋了如何使用Metasploit的功能繞過各種防御機制,介紹了執(zhí)法機構(gòu)使用的Metasploit工具和技術(shù),還講解了加速滲透測試和高效使用Metasploit的各種技巧。此外還增加了Modbus協(xié)議攻擊、滲透Active Directory并獲取持久訪問權(quán)限等內(nèi)容。
- 開發(fā)復(fù)雜的輔助模塊
- 將用Perl、Python等語言編寫的模塊移植到Metasploit框架中
- 對數(shù)據(jù)庫、SCADA等各種服務(wù)進行滲透測試
- 利用滲透技術(shù)對客戶端發(fā)起攻擊
- 使用Metasploit對移動設(shè)備和平板電腦進行滲透測試
- 使用Metasploit繞過殺毒軟件和IDS等現(xiàn)代防御機制
- 使用Armitage GUI對Web服務(wù)器和系統(tǒng)進行模擬攻擊
- 在Armitage中使用Cortana編寫攻擊腳本
尼普恩·賈斯瓦爾(Nipun Jaswal)
信息安全專家、IT安全研究人員,在滲透測試、漏洞研究、監(jiān)控解決方案等網(wǎng)絡(luò)安全方面擁有10年專業(yè)經(jīng)驗。目前在Lucideus公司負責(zé)紅隊和漏洞研究服務(wù)以及其他企業(yè)客戶服務(wù)。曾在Eforensics、Hakin9和Security Kaizen等安全雜志上發(fā)表過大量關(guān)于IT安全的文章,曾為Apple、Microsoft、AT&T等公司進行漏洞發(fā)掘。
第 1 章 走近Metasploit 滲透測試框架 1
1.1 組織一次滲透測試 3
1.1.1 前期交互階段 3
1.1.2 信息收集/偵查階段 4
1.1.3 威脅建模階段 6
1.1.4 漏洞分析階段 7
1.1.5 滲透攻擊階段和后滲透攻擊階段 7
1.1.6 報告階段 7
1.2 工作環(huán)境的準備 7
1.3 Metasploit 基礎(chǔ) 11
1.4 使用Metasploit 進行滲透測試 12
1.5 使用Metasploit 進行滲透測試的優(yōu)勢 14
1.5.1 源代碼的開放性 14
1.5.2 對大型網(wǎng)絡(luò)測試的支持以及便利的命名規(guī)則 14
1.5.3 靈活的攻擊載荷模塊生成和切換機制 15
1.5.4 干凈的通道建立方式 15
1.5.5 圖形化管理界面 15
1.6 案例研究:滲透進入一個未知網(wǎng)絡(luò) 15
1.6.1 信息收集 16
1.6.2 威脅建!21
1.6.3 漏洞分析——任意文件上傳(未經(jīng)驗證) 22
1.6.4 滲透與控制 23
1.6.5 使用Metasploit 保持控制權(quán)限 30
1.6.6 后滲透測試模塊與跳板功能 32
1.6.7 漏洞分析——基于SEH 的緩沖區(qū)溢出 37
1.6.8 利用人為疏忽來獲得密碼 38
1.7 案例研究回顧 41
1.8 小結(jié)與練習(xí) 43
第 2 章 打造定制化的Metasploit 滲透測試框架 45
2.1 Ruby——Metasploit 的核心 46
2.1.1 創(chuàng)建你的第 一個Ruby 程序 46
2.1.2 Ruby 中的變量和數(shù)據(jù)類型 47
2.1.3 Ruby 中的方法 51
2.1.4 決策運算符 51
2.1.5 Ruby 中的循環(huán) 52
2.1.6 正則表達式 53
2.1.7 Ruby 基礎(chǔ)知識小結(jié) 54
2.2 開發(fā)自定義模塊 54
2.2.1 模塊編寫的概要 54
2.2.2 了解現(xiàn)有模塊 58
2.2.3 分解已有的HTTP 服務(wù)器掃描模塊 59
2.2.4 編寫一個自定義FTP 掃描程序模塊 63
2.2.5 編寫一個自定義的SSH 認證暴力破解器 67
2.2.6 編寫一個讓硬盤失效的后滲透模塊 70
2.2.7 編寫一個收集登錄憑證的后滲透模塊 75
2.3 突破Meterpreter 腳本 80
2.3.1 Meterpreter 腳本的要點 80
2.3.2 設(shè)置永久訪問權(quán)限 80
2.3.3 API 調(diào)用和mixin 類 81
2.3.4 制作自定義Meterpreter 腳本 81
2.4 與RailGun 協(xié)同工作 84
2.4.1 交互式Ruby 命令行基礎(chǔ) 84
2.4.2 了解RailGun 及其腳本編寫 84
2.4.3 控制Windows 中的API 調(diào)用 86
2.4.4 構(gòu)建復(fù)雜的RailGun 腳本 86
2.5 小結(jié)與練習(xí) 89
第3 章 滲透模塊的開發(fā)過程 90
3.1 滲透的最基礎(chǔ)部分 90
3.1.1 基礎(chǔ)部分 90
3.1.2 計算機架構(gòu) 91
3.1.3 寄存器 92
3.2 使用Metasploit 實現(xiàn)對棧的緩沖區(qū)溢出 93
3.2.1 使一個有漏洞的程序崩潰 93
3.2.2 構(gòu)建滲透模塊的基礎(chǔ) 95
3.2.3 計算偏移量 96
3.2.4 查找JMP ESP 地址 97
3.2.5 填充空間 99
3.2.6 確定壞字符 100
3.2.7 確定空間限制 101
3.2.8 編寫Metasploit 的滲透模塊 101
3.3 使用Metasploit 實現(xiàn)基于SEH 的緩沖區(qū)溢出 104
3.3.1 構(gòu)建滲透模塊的基礎(chǔ) 107
3.3.2 計算偏移量 107
3.3.3 查找POP/POP/RET 地址 108
3.3.4 編寫Metasploit 的SEH 滲透模塊 110
3.4 在Metasploit 模塊中繞過DEP 113
3.4.1 使用msfrop 查找ROP 指令片段 115
3.4.2 使用Mona 創(chuàng)建ROP 鏈 116
3.4.3 編寫繞過DEP 的Metasploit滲透模塊 117
3.5 其他保護機制 120
3.6 小結(jié)與練習(xí) 120
第4 章 滲透模塊的移植 121
4.1 導(dǎo)入一個基于棧的緩沖區(qū)溢出滲透模塊 121
4.1.1 收集關(guān)鍵信息 123
4.1.2 構(gòu)建Metasploit 模塊 124
4.1.3 使用Metasploit 完成對目標應(yīng)用程序的滲透 126
4.1.4 在Metasploit 的滲透模塊中實現(xiàn)一個檢查方法 126
4.2 將基于Web 的RCE 導(dǎo)入Metasploit 127
4.2.1 收集關(guān)鍵信息 128
4.2.2 掌握重要的Web 函數(shù) 128
4.2.3 GET/POST 方法的使用要點 130
4.2.4 將HTTP 滲透模塊導(dǎo)入到Metasploit 中 130
4.3 將TCP 服務(wù)端/基于瀏覽器的滲透模塊導(dǎo)入Metasploit 133
4.3.1 收集關(guān)鍵信息 134
4.3.2 創(chuàng)建Metasploit 模塊 135
4.4 小結(jié)與練習(xí) 137
第5 章 使用Metasploit 對服務(wù)進行測試 138
5.1 SCADA 系統(tǒng)測試的基本原理 138
5.1.1 ICS 的基本原理以及組成部分 138
5.1.2 ICS-SCADA 安全的重要性 139
5.1.3 對SCADA 系統(tǒng)的HMI 進行滲透 139
5.1.4 攻擊Modbus 協(xié)議 142
5.1.5 使SCADA 變得更加安全 146
5.2 數(shù)據(jù)庫滲透 146
5.2.1 SQL Server 147
5.2.2 使用Metasploit 的模塊進行掃描 147
5.2.3 暴力破解密碼 147
5.2.4 查找/捕獲服務(wù)器的密碼 149
5.2.5 瀏覽SQL Server 149
5.2.6 后滲透/執(zhí)行系統(tǒng)命令 151
5.3 VOIP 滲透測試 153
5.3.1 VOIP 的基本原理 153
5.3.2 對VOIP 服務(wù)踩點 155
5.3.3 掃描VOIP 服務(wù) 156
5.3.4 欺騙性的VOIP 電話 157
5.3.5 對VOIP 進行滲透 158
5.4 小結(jié)與練習(xí) 160
第6 章 虛擬化測試的原因及階段 161
6.1 使用Metasploit 集成的服務(wù)完成一次滲透測試 161
6.1.1 與員工和最終用戶進行交流 162
6.1.2 收集信息 163
6.1.3 使用Metasploit 中的OpenVAS插件進行漏洞掃描 164
6.1.4 對威脅區(qū)域進行建!168
6.1.5 獲取目標的控制權(quán)限 169
6.1.6 使用Metasploit 完成對Active Directory 的滲透 170
6.1.7 獲取Active Directory 的持久訪問權(quán)限 181
6.2 手動創(chuàng)建報告 182
6.2.1 報告的格式 182
6.2.2 執(zhí)行摘要 183
6.2.3 管理員級別的報告 184
6.2.4 附加部分 184
6.3 小結(jié) 184
第7 章 客戶端滲透 185
7.1 有趣又有料的瀏覽器滲透攻擊 185
7.1.1 browser autopwn 攻擊 186
7.1.2 對網(wǎng)站的客戶進行滲透 188
7.1.3 與DNS 欺騙和MITM 結(jié)合的browser autopwn 攻擊 191
7.2 Metasploit 和Arduino——“致命”搭檔 199
7.3 基于各種文件格式的滲透攻擊 204
7.3.1 基于PDF 文件格式的滲透攻擊 204
7.3.2 基于Word 文件格式的滲透攻擊 205
7.4 使用Metasploit 攻擊Android 系統(tǒng) 208
7.5 小結(jié)與練習(xí) 212
第8 章 Metasploit 的擴展功能 213
8.1 Metasploit 后滲透模塊的基礎(chǔ)知識 213
8.2 基本后滲透命令 213
8.2.1 幫助菜單 213
8.2.2 后臺命令 214
8.2.3 通信信道的操作 215
8.2.4 文件操作命令 215
8.2.5 桌面命令 216
8.2.6 截圖和攝像頭列舉 217
8.3 使用Metasploit 中的高級后滲透模塊 220
8.3.1 獲取系統(tǒng)級管理權(quán)限 220
8.3.2 使用timestomp 修改文件的訪問時間、修改時間和創(chuàng)建時間 220
8.4 其他后滲透模塊 221
8.4.1 使用Metasploit 收集無線SSID信息 221
8.4.2 使用Metasploit 收集Wi-Fi密碼 221
8.4.3 獲取應(yīng)用程序列表 222
8.4.4 獲取Skype 密碼 223
8.4.5 獲取USB 使用歷史信息 223
8.4.6 使用Metasploit 查找文件 223
8.4.7 使用clearev 命令清除目標系統(tǒng)上的日志 224
8.5 Metasploit 中的高級擴展功能 224
8.5.1 pushm 和popm 命令的使用方法 225
8.5.2 使用reload、edit 和reload_all 命令加快開發(fā)過程 226
8.5.3 資源腳本的使用方法 226
8.5.4 在Metasploit 中使用AutoRunScript 227
8.5.5 使用AutoRunScript 選項中的multiscript 模塊 229
8.5.6 用Metasploit 提升權(quán)限 231
8.5.7 使用mimikatz 查找明文密碼 233
8.5.8 使用Metasploit 進行流量嗅探 233
8.5.9 使用Metasploit 對host 文件進行注入 234
8.5.10 登錄密碼的釣魚窗口 235
8.6 小結(jié)與練習(xí) 236
第9 章 Metasploit 中的規(guī)避技術(shù) 237
9.1 使用C wrapper 和自定義編碼器來規(guī)避Meterpreter 237
9.2 使用Metasploit 規(guī)避入侵檢測系統(tǒng) 246
9.2.1 通過一個隨機案例邊玩邊學(xué) 247
9.2.2 利用偽造的目錄關(guān)系來欺騙IDS 248
9.3 規(guī)避Windows 防火墻的端口阻塞機制 249
9.4 小結(jié) 253
第 10 章 Metasploit 中的“特工”技術(shù) 254
10.1 在Meterpreter 會話中保持匿名 254
10.2 使用通用軟件中的漏洞維持訪問權(quán)限 256
10.2.1 DLL 加載順序劫持 256
10.2.2 利用代碼打洞技術(shù)來隱藏后門程序 260
10.3 從目標系統(tǒng)獲取文件 262
10.4 使用venom 實現(xiàn)代碼混淆 262
10.5 使用反取證模塊來消除入侵痕跡 265
10.6 小結(jié) 268
第 11 章 利用Armitage 實現(xiàn)Metasploit的可視化管理 270
11.1 Armitage 的基本原理 270
11.1.1 入門知識 270
11.1.2 用戶界面一覽 272
11.1.3 工作區(qū)的管理 273
11.2 網(wǎng)絡(luò)掃描以及主機管理 274
11.2.1 漏洞的建!275
11.2.2 查找匹配模塊 275
11.3 使用Armitage 進行滲透 276
11.4 使用Armitage 進行后滲透攻擊 277
11.5 使用團隊服務(wù)器實現(xiàn)紅隊協(xié)同工作 278
11.6 Armitage 腳本編寫 282
11.6.1 Cortana 基礎(chǔ)知識 282
11.6.2 控制Metasploit 285
11.6.3 使用Cortana 實現(xiàn)后滲透攻擊 286
11.6.4 使用Cortana 創(chuàng)建自定義菜單 287
11.6.5 界面的使用 289
11.7 小結(jié) 290
第 12 章 技巧與竅門 291
12.1 使用Minion 腳本實現(xiàn)自動化 291
12.2 用connect 代替Netcat 293
12.3 shell 升級與后臺切換 294
12.4 命名約定 294
12.5 在Metasploit 中保存配置 295
12.6 使用內(nèi)聯(lián)handler 以及重命名任務(wù) 296
12.7 在多個Meterpreter 上運行命令 297
12.8 社會工程學(xué)工具包的自動化 297
12.9 Metasploit 和滲透測試速查手冊 299
12.10 延伸閱讀 300