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