第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 工作環境的準備 7
1.3 Metasploit基礎 11
1.4 使用Metasploit進行滲透測試 12
1.5 使用Metasploit進行滲透測試的優勢 14
1.5.1 源代碼的開放性 14
1.5.2 對大型網絡測試的支持以及便利的命名規則 14
1.5.3 靈活的攻擊載荷模塊生成和切換機製 15
1.5.4 乾淨的通道建立方式 15
1.5.5 圖形化管理界麵 15
1.6 案例研究:滲透進入一個未知網絡 15
1.6.1 信息收集 16
1.6.2 威脅建模 21
1.6.3 漏洞分析——任意文件上傳(未經驗證) 22
1.6.4 滲透與控製 23
1.6.5 使用Metasploit保持控製權限 30
1.6.6 後滲透測試模塊與跳闆功能 32
1.6.7 漏洞分析——基於SEH的緩衝區溢齣 37
1.6.8 利用人為疏忽來獲得密碼 38
1.7 案例研究迴顧 41
1.8 小結與練習 43
第2章 打造定製化的Metasploit滲透測試框架 45
2.1 Ruby——Metasploit的核心 46
2.1.1 創建你的第一個Ruby程序 46
2.1.2 Ruby中的變量和數據類型 47
2.1.3 Ruby中的方法 51
2.1.4 決策運算符 51
2.1.5 Ruby中的循環 52
2.1.6 正則錶達式 53
2.1.7 Ruby基礎知識小結 54
2.2 開發自定義模塊 54
2.2.1 模塊編寫的概要 54
2.2.2 瞭解現有模塊 58
2.2.3 分解已有的HTTP服務器掃描模塊 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 設置永久訪問權限 80
2.3.3 API調用和mixin類 81
2.3.4 製作自定義Meterpreter腳本 81
2.4 與RailGun協同工作 84
2.4.1 交互式Ruby命令行基礎 84
2.4.2 瞭解RailGun及其腳本編寫 84
2.4.3 控製Windows中的API調用 86
2.4.4 構建復雜的RailGun腳本 86
2.5 小結與練習 89
第3章 滲透模塊的開發過程 90
3.1 滲透的最基礎部分 90
3.1.1 基礎部分 90
3.1.2 計算機架構 91
3.1.3 寄存器 92
3.2 使用Metasploit實現對棧的緩衝區溢齣 93
3.2.1 使一個有漏洞的程序崩潰 93
3.2.2 構建滲透模塊的基礎 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實現基於SEH的緩衝區溢齣 104
3.3.1 構建滲透模塊的基礎 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創建ROP鏈 116
3.4.3 編寫繞過DEP的Metasploit滲透模塊 117
3.5 其他保護機製 120
3.6 小結與練習 120
第4章 滲透模塊的移植 121
4.1 導入一個基於棧的緩衝區溢齣滲透模塊 121
4.1.1 收集關鍵信息 123
4.1.2 構建Metasploit模塊 124
4.1.3 使用Metasploit完成對目標應用程序的滲透 126
4.1.4 在Metasploit的滲透模塊中實現一個檢查方法 126
4.2 將基於Web的RCE導入Metasploit 127
4.2.1 收集關鍵信息 128
4.2.2 掌握重要的Web函數 128
4.2.3 GET/POST方法的使用要點 130
4.2.4 將HTTP滲透模塊導入到Metasploit中 130
4.3 將TCP服務端/基於瀏覽器的滲透模塊導入Metasploit 133
4.3.1 收集關鍵信息 134
4.3.2 創建Metasploit模塊 135
4.4 小結與練習 137
第5章 使用Metasploit對服務進行測試 138
5.1 SCADA係統測試的基本原理 138
5.1.1 ICS的基本原理以及組成部分 138
5.1.2 ICS-SCADA安全的重要性 139
5.1.3 對SCADA係統的HMI進行滲透 139
5.1.4 攻擊Modbus協議 142
5.1.5 使SCADA變得更加安全 146
5.2 數據庫滲透 146
5.2.1 SQL Server 147
5.2.2 使用Metasploit的模塊進行掃描 147
5.2.3 暴力破解密碼 147
5.2.4 查找/捕獲服務器的密碼 149
5.2.5 瀏覽SQL Server 149
5.2.6 後滲透/執行係統命令 151
5.3 VOIP滲透測試 153
5.3.1 VOIP的基本原理 153
5.3.2 對VOIP服務踩點 155
5.3.3 掃描VOIP服務 156
5.3.4 欺騙性的VOIP電話 157
5.3.5 對VOIP進行滲透 158
5.4 小結與練習 160
第6章 虛擬化測試的原因及階段 161
6.1 使用Metasploit集成的服務完成一次滲透測試 161
6.1.1 與員工和最終用戶進行交流 162
6.1.2 收集信息 163
6.1.3 使用Metasploit中的OpenVAS插件進行漏洞掃描 164
6.1.4 對威脅區域進行建模 168
6.1.5 獲取目標的控製權限 169
6.1.6 使用Metasploit完成對Active Directory的滲透 170
6.1.7 獲取Active Directory的持久訪問權限 181
6.2 手動創建報告 182
6.2.1 報告的格式 182
6.2.2 執行摘要 183
6.2.3 管理員級彆的報告 184
6.2.4 附加部分 184
6.3 小結 184
第7章 客戶端滲透 185
7.1 有趣又有料的瀏覽器滲透攻擊 185
7.1.1 browser autopwn攻擊 186
7.1.2 對網站的客戶進行滲透 188
7.1.3 與DNS欺騙和MITM結閤的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係統 208
7.5 小結與練習 212
第8章 Metasploit的擴展功能 213
8.1 Metasploit後滲透模塊的基礎知識 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 獲取係統級管理權限 220
8.3.2 使用timestomp修改文件的訪問時間、修改時間和創建時間 220
8.4 其他後滲透模塊 221
8.4.1 使用Metasploit收集無綫SSID信息 221
8.4.2 使用Metasploit收集Wi-Fi密碼 221
8.4.3 獲取應用程序列錶 222
8.4.4 獲取Skype密碼 223
8.4.5 獲取USB使用曆史信息 223
8.4.6 使用Metasploit查找文件 223
8.4.7 使用clearev命令清除目標係統上的日誌 224
8.5 Metasploit中的高級擴展功能 224
8.5.1 pushm和popm命令的使用方法 225
8.5.2 使用reload、edit和reload_all命令加快開發過程 226
8.5.3 資源腳本的使用方法 226
8.5.4 在Metasploit中使用AutoRunScript 227
8.5.5 使用AutoRunScript選項中的multiscript模塊 229
8.5.6 用Metasploit提升權限 231
8.5.7 使用mimikatz查找明文密碼 233
8.5.8 使用Metasploit進行流量嗅探 233
8.5.9 使用Metasploit對host文件進行注入 234
8.5.10 登錄密碼的釣魚窗口 235
8.6 小結與練習 236
第9章 Metasploit中的規避技術 237
9.1 使用C wrapper和自定義編碼器來規避Meterpreter 237
9.2 使用Metasploit規避入侵檢測係統 246
9.2.1 通過一個隨機案例邊玩邊學 247
9.2.2 利用僞造的目錄關係來欺騙IDS 248
9.3 規避Windows防火牆的端口阻塞機製 249
9.4 小結 253
第10章 Metasploit中的“特工”技術 254
10.1 在Meterpreter會話中保持匿名 254
10.2 使用通用軟件中的漏洞維持訪問權限 256
10.2.1 DLL加載順序劫持 256
10.2.2 利用代碼打洞技術來隱藏後門程序 260
10.3 從目標係統獲取文件 262
10.4 使用venom實現代碼混淆 262
10.5 使用反取證模塊來消除入侵痕跡 265
10.6 小結 268
第11章 利用Armitage實現Metasploit的可視化管理 270
11.1 Armitage的基本原理 270
11.1.1 入門知識 270
11.1.2 用戶界麵一覽 272
11.1.3 工作區的管理 273
11.2 網絡掃描以及主機管理 274
11.2.1 漏洞的建模 275
11.2.2 查找匹配模塊 275
11.3 使用Armitage進行滲透 276
11.4 使用Armitage進行後滲透攻擊 277
11.5 使用團隊服務器實現紅隊協同工作 278
11.6 Armitage腳本編寫 282
11.6.1 Cortana基礎知識 282
11.6.2 控製Metasploit 285
11.6.3 使用Cortana實現後滲透攻擊 286
11.6.4 使用Cortana創建自定義菜單 287
11.6.5 界麵的使用 289
11.7 小結 290
第12章 技巧與竅門 291
12.1 使用Minion腳本實現自動化 291
12.2 用connect代替Netcat 293
12.3 shell升級與後颱切換 294
12.4 命名約定 294
12.5 在Metasploit中保存配置 295
12.6 使用內聯handler以及重命名任務 296
12.7 在多個Meterpreter上運行命令 297
12.8 社會工程學工具包的自動化 297
12.9 Metasploit和滲透測試速查手冊 299
12.10 延伸閱讀 300
· · · · · · (
收起)