圖書簡介
本書是Metasploit滲透測試的指南,涵蓋了使用Metasploit實現滲透測試的諸多方面,主要包括:滲透攻擊,編寫自定義滲透攻擊模組,移植滲透攻擊模組,測試服務,以及進行複雜的客戶端測試。還將介紹Assembly、Ruby及Cortana等語言知識,Metasploit框架組件與模組,以及如何使用SET和Fast Track等工具。
目錄
譯者序
獻詞
前言
致謝
第 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 滲透攻擊和後滲透攻擊 ................ 8
1.1.6 報告階段 ....................................... 8
1.2 工作環境的準備 ....................................... 8
1.2.1 滲透測試實驗環境的建立 ............ 8
1.2.2 Metasploit 基礎 ............................12
1.2.3 在不同環境下配置 Metasploit .....12
1.2.4 錯誤處理 ......................................16
1.3 使用 Metasploit 進行滲透測試 ................17
1.3.1 回顧 Metasploit 的基礎知識 ........17
1.3.2 對 Windows XP 作業系統的一次滲透測試 ..................................18
1.3.3 對 Windows Server 2003 操作
系統的一次滲透測試 ...................26
1.3.4 對 Windows 7 作業系統的
一次滲透測試 ..............................27
1.3.5 使用資料庫存儲和取回結果........30
1.4 Metasploit 工具的優勢 ............................32
1.4.1 原始碼的開放性...........................33
1.4.2 對大型網路測試的支持以及便利的命名規則 ..............................33
1.4.3 靈活的攻擊載荷模組生成和切
換機制..........................................33
1.4.4 乾淨的通道建立方式 ...................33
1.4.5 圖形化管理界面...........................34
1.5 小結 .........................................................34
第 2 章 打造定製化的 Metasploit 滲透測試框架 ....................................35
2.1 Ruby——Metasploit 的核心 ....................36
2.1.1 創建你的第一個 Ruby 程式.........36
2.1.2 Ruby 中的變數和數據類型..........38
2.1.3 Ruby 中的方法.............................40
2.1.4 決策運算符 ..................................41
2.1.5 Ruby 中的循環.............................42
2.1.6 正則表達式 ..................................42
2.1.7 Ruby 基礎知識的小結 .................43
2.2 開發自定義模組 ......................................43
2.2.1 模組編寫的概要 ..........................44
2.2.2 了解現有模組 ..............................47
2.2.3 編寫一個自定義 FTP 掃描程式模組......................................50
2.2.4 編寫一個自定義 HTTP 伺服器
掃描程式......................................52
2.2.5 編寫一個後滲透攻擊模組 ...........54
2.3 突破 meterpreter 腳本..............................56
2.3.1 meterpreter 腳本的要點 ...............56
2.3.2 以被控制計算機為跳板 ...............56
2.3.3 設定永久訪問許可權.......................60
2.3.4 API 調用和 mixins 類...................61
2.3.5 製作自定義 meterpreter 腳本.......61
2.4 與 RailGun 協同工作...............................63
2.4.1 互動式 Ruby 命令行基礎 ............63
2.4.2 了解 RailGun 及其腳本編寫........63
2.4.3 控制 Windows 中的 API 調用......65
2.4.4 構建複雜的 RailGun 腳本............65
2.5 小結 .........................................................68
第 3 章 滲透攻擊模組的開發過程............69
3.1 彙編語言基礎入門 ..................................69
3.1.1 基礎部分......................................69
3.1.2 計算機架構 ..................................70
3.1.3 暫存器..........................................71
3.1.4 EIP 的重要作用 ...........................72
3.1.5 ESP 的重要作用...........................73
3.1.6 NOP 和 JMP 之間的關聯 .............74
3.1.7 變數和聲明 ..................................74
3.1.8 彙編程式的編程示例...................75
3.2 fuzz 測試的樂趣 ......................................76
3.2.1 使一個程式崩潰 ..........................76
3.2.2 隨機化輸入數據 ..........................80
3.2.3 製造無用數據 ..............................82
3.2.4 Immunity Debugger 簡介 .............82
3.2.5 GDB 簡介.....................................85
3.3 編寫滲透模組的基礎 ..............................87
3.3.1 計算緩衝區的大小.......................88
3.3.2 計算跳轉地址 ..............................89
3.3.3 檢查 EIP 中的內容.......................90
3.3.4 填充應用程式 ..............................91
3.3.5 檢查 ESP......................................91
3.3.6 填充空間......................................92
3.4 滲透模組的完成 ......................................92
3.4.1 確定壞字元 ..................................92
3.4.2 確定空間限制 ..............................93
3.4.3 在 Metasploit 下完成 ...................93
3.4.4 Metasploit 下的自動化功能.........95
3.5 結構化異常處理的基本原理 ...................96
3.5.1 控制 SEH .....................................97
3.5.2 繞過 SEH .....................................98
3.5.3 基於 SEH 的滲透模組 ...............100
3.6 小結 .......................................................102
第 4 章 滲透攻擊模組的移植................. 103
4.1 移植一個用 Perl 語言編寫的模組 .........103
4.1.1 分解現有滲透模組.....................105
4.1.2 為滲透模組創建一個骨骼框架 ...........................................106
4.1.3 使用 Immunity Debugger 創建
一個骨骼框架檔案 ....................107
4.1.4 值的填充.................................... 109
4.1.5 將 ShellCode 部分排除在外 ...... 110
4.1.6 滲透實驗.................................... 110
4.2 移植一個用 Python 語言編寫的滲透
模組 ....................................................... 111
4.2.1 分解一個已有的模組................. 111
4.2.2 收集必要信息 ............................ 112
4.2.3 創建骨骼框架 ............................ 112
4.2.4 填充值 ....................................... 113
4.2.5 使用滲透模組進行試驗............. 114
4.3 移植一個基於 Web 的滲透模組............ 115
4.3.1 分解一個現有滲透模組............. 115
4.3.2 收集必要的信息 ........................ 116
4.3.3 掌握重要的網路函式................. 116
4.3.4 GET/POST 方法的使用要點....... 118
4.3.5 製造一個輔助的滲透模組 ......... 118
4.3.6 輔助滲透模組的實驗................. 122
4.4 小結....................................................... 123
第 5 章 服務測試技術的幕後揭秘.......... 124
5.1 SCADA 系統的基本原理 ...................... 124
5.1.1 ICS 的基本原理以及組成部分 .. 124
5.1.2 ICS-SCADA 安全的重要性....... 125
5.2 SCADA ................................................. 125
5.2.1 測試 SCADA 的基本原理 ......... 125
5.2.2 基於 SCADA 的滲透模組 ......... 127
5.3 使 SCADA 變得安全............................. 128
5.3.1 實現 SCADA 的安全 ................. 129
5.3.2 對網路進行約束 ........................ 129
5.4 資料庫滲透 ........................................... 129
5.4.1 SQL Server ................................ 129
5.4.2 使用 Nmap 對 SQL Server
進行踩點.................................... 130
5.4.3 使用 Metasploit 的模組進行
掃描 ........................................... 131
5.4.4 暴力破解密碼 ............................ 132
5.4.5 查找/捕獲伺服器的口令............ 133
5.4.6 瀏覽 SQL Server........................ 134
5.4.7 後滲透/執行系統命令 ............... 136
5.5 VOIP 滲透測試 ..................................... 137
5.5.1 VOIP 的基本原理 ......................137
5.5.2 對 VOIP 服務踩點......................140
5.5.3 掃描 VOIP 服務 .........................141
5.5.4 欺騙性的 VOIP 電話..................142
5.5.5 對 VOIP 進行滲透......................144
5.6 在蘋果設備上的後滲透模組 .................145
5.7 小結 .......................................................148
第 6 章 虛擬化測試的原因及階段.......... 149
6.1 完成一次白盒滲透測試.........................149
6.1.1 與員工和最終用戶進行交流......150
6.1.2 收集信息 ....................................151
6.1.3 對威脅區域進行建模 .................158
6.1.4 針對系統易發高危漏洞 .............159
6.1.5 控制許可權的獲取.........................160
6.1.6 掩蓋入侵痕跡 ............................161
6.1.7 MagicTree 的介紹 ......................164
6.1.8 其他報告服務 ............................166
6.2 生成人工報告 ........................................167
6.3 完成一次黑盒滲透測試.........................169
6.3.1 踩點工作 ....................................169
6.3.2 使用 Metasploit 完成一次黑盒
測試............................................173
6.4 小結 .......................................................182
第 7 章 複雜的客戶端攻擊 .................... 183
7.1 瀏覽器滲透攻擊 ....................................183
7.2 基於各種檔案格式的滲透攻擊 .............187
7.2.1 基於 PDF 檔案格式的滲透
攻擊............................................187
7.2.2 基於 Word 檔案格式的滲透
攻擊............................................189
7.2.3 基於多媒體的滲透攻擊 .............191
7.3 對 XAMPP 伺服器進行滲透攻擊..........193
7.3.1 PHP 腳本編寫的 meterpreter .....194
7.3.2 升級為系統級許可權.....................194
7.4 對網站客戶端的滲透攻擊 .....................195
7.4.1 惡意網頁腳本的注入 .................195
7.4.2 攻擊網站的用戶.........................195
7.5 繞過防毒軟體的檢測.............................197
7.5.1 msfencode ................................197
7.5.2 msfvenom ..................................199
7.5.3 使用編碼器的注意事項 .............201
7.6 與 DNS 欺騙的結合使用.......................202
7.7 使用惡意包攻擊 Linux..........................208
7.8 小結 .......................................................210
第 8 章 社會工程工具包........................ 211
8.1 社會工程工具包的基本原理 .................211
8.2 使用 SET 進行攻擊 ...............................213
8.2.1 創建一個攻擊載荷和監聽器 .....213
8.2.2 傳染性媒體生成器.....................216
8.2.3 網站攻擊向量 ............................219
8.2.4 SET 與第三方攻擊.....................227
8.3 更多的功能和更全面的說明 .................231
8.3.1 SET 的 Web 接口 .......................232
8.3.2 自動化實施 SET 攻擊................233
8.4 小結 .......................................................234
第 9 章 提高滲透測試的速度................. 235
9.1 自動化工具的介紹 ................................235
9.2 Fast Track 中的 MS SQL 攻擊向量 .......236
9.2.1 關於 Fast Track 的簡要介紹 ......236
9.2.2 被淘汰的 Fast Track ..................240
9.2.3 在 SET 中復興的 Fast Track ......241
9.3 在 Metasploit 中的自動化滲透..............241
9.3.1 再次啟用 db_autopwn ..............242
9.3.2 對目標進行掃描 ........................243
9.3.3 攻擊資料庫 ................................244
9.4 使用 DNS 欺騙攻擊來實現假升級........246
9.4.1 Websploit 的介紹.......................246
9.4.2 修復 Websploit...........................248
9.4.3 使用 Websploit 在區域網路中進
行攻擊........................................248
9.5 小結 .......................................................251
第 10 章 利用 Armitage 實現 Metasploit 的
可視化管理 ............................. 252
10.1 Armitage 的基本原理 ..........................252
10.1.1 入門知識 ................................253
10.1.2 用戶界面一覽 ........................254
10.1.3 工作區的管理 ........................255
10.2 網路掃描以及主機管理.......................256
10.2.1 漏洞的建模 ............................258
10.2.2 查找匹配模組 ........................258
10.3 使用 Armitage 進行滲透 .....................258
10.4 使用 Armitage 進行後滲透攻擊 ..........260
10.5 使用 Armitage 進行客戶端攻擊 ..........261
10.6 Armitage 腳本編寫 ..............................265
10.6.1 Cortana 的基礎知識 ...............265
10.6.2 控制 Metasploit...................... 268
10.6.3 使用 Cortana 實現後滲透
攻擊 ....................................... 269
10.6.4 使用 Cortana 創建自定義
選單 ....................................... 270
10.6.5 界面的使用 ............................ 273
10.7 小結 ..................................................... 274
10.8 延伸閱讀 ............................................. 274