網絡滲透測試的藝術 The Art of Network Penetration Testing: How to Take Over Any Company in the World

Royce Davis

買這商品的人也買了...

商品描述

《網絡滲透測試的藝術》對典型內部網絡滲透測試(Internal Network Penetration Test,INPT)進行了完整介紹。
本書循序漸進地介紹了進行網絡滲透測試的方法,作者曾用這個方法為各種規模的公司進行了數百次INPT。
這本書並不是理論和思想的概念介紹,而更像是一本手冊,可以指導經驗很少或沒有經驗的讀者來完成整個INPT工作。

誰應該讀這本書

本書主要為潛在的滲透測試人員及相關技術人員,即從事網絡系統、
應用程序和基礎設施的設計、開發或實現工作的人員而編寫。

本書的結構框架:內容導讀

本書共分為四個階段,每一階段都與進行典型INPT 四個階段中的一個階段相關聯。
本書應按照順序進行閱讀,因為INPT 工作流的每個階段都建立在前一階段輸出的基礎上。

第1階段解釋INPT 的信息收集,該階段會讓你詳細理解目標的攻擊面:

第2章介紹發現指定IP地址範圍內網絡主機的過程。

第3章說明如何進一步列舉在前一章中發現的主機上監聽的網絡服務。

第4章涵蓋在網絡服務中識別身份驗證、配置和修補漏洞的幾種技術。

第2階段為集中滲透階段,你的目標是通過使用前一階段識別的安全弱點或“漏洞”,獲得對受破壞的目標未經授權的訪問:

第5章展示如何攻擊多個易受攻擊的 Web應用程序,特別是Jenkins和 ApacheTomcat。

第6章描述如何攻擊和滲透易受攻擊的數據庫服務器,並從非交互式 Shell中檢索敏感文件。

第7章探索如何利用 Microsoft安全更新的缺失和使用開源的 Metasploit meter- preter攻擊載荷。

第3階段是後漏洞利用和權限提升階段,這是攻擊者在攻擊易受攻擊的目標後需要做的事情。
本階段介紹三個主要概念———維護可靠的重新訪問權、獲取憑證以及橫向移動到近可訪問的(二級)系統:

第8章涵蓋基於 Windows系統的後漏洞利用。

第9章討論針對 Linux/UNIX目標的各種後漏洞利用技術。

第10章介紹提升域管理員權限的過程和從 Windows域控制器中安全提取“王冠”的過程。

第4階段包括INPT 的清理和文檔部分:

第11章展示如何返回並從任務測試活動中刪除不必要的、潛在有害的工件。

第12章討論對於滲透測試,一個穩定的可交付成果是由哪8個部分組成的。

有經驗的滲透測試人員可能更喜歡跳轉到他們感興趣的特定部分進行閱讀,
例如Linux/UNIX後滲透測試或攻擊易受攻擊的數據庫服務器。
但是,如果你是網絡滲透測試新手,則更應從頭到尾依次閱讀這些章節。

關於代碼

本書包含大量的命令行輸出,包括編號清單和正常文本。
在這兩種情況下,源代碼都採用固定寬度字體格式,以將其與普通文本分開。

本書示例代碼可從 Manning網站
https://www.manning.com/books/the-art-of-network-penetration-testing下 載,
也 可 從 GitHub網站https://github.com/R3dy/capsulecorp-pentest下載。

livebook論壇

購買《網絡滲透測試的藝術》這本書後,可以免費訪問 Manning出版物運營的私人網絡論壇,在論壇裡你可以對該書發表評論、
詢問技術問題並從作者和其他用戶那裡獲得幫 助。
論 壇 網 址:https://livebook.manning.com/#!/book/the-art-of-network-penetration-testing/discussion;
也可以在https://livebook.manning.com/#!/dis-cussion上了解更多關於 Manning論壇和行為準則的信息。

作者簡介

ROYCE DAVIS

是一名專業的網絡安全專家,專門從事網絡滲透測試和企業對抗性攻擊仿真。
十多年來,他一直在幫助客戶保護他們的網絡工作環境,
並在美國各地的安全會議上介紹了研究、技術和工具。
他為開源安全測試工具和框架做出了許多貢獻,
同時是一個道德黑客培訓和教育在線資源網站PentestGeek的聯合創始人。

目錄大綱

第1章 網絡滲透測試 1
1.1 企業數據洩露 2
1.2 黑客如何侵入2
1.2.1 防御者角色 2
1.2.2 攻擊者角色 3
1.3 對抗攻擊模擬:滲透測試 3
1.4 何時滲透測試無效 5
1.4.1 容易實現的目標 5
1.4.2 公司什麼時候真正需要滲透測試 6
1.5 執行網絡滲透測試 6
1.5.1 第1階段:信息收集 7
1.5.2 第2階段:集中滲透 8
1.5.3 第3階段:漏洞利用和權限提升9
1.5.4 第4階段:文檔 10
1.6 設置實驗室環境 11
1.7 構建自己的虛擬滲透測試平台11
1.7.1 從 Linux開始 11
1.7.2 Ubuntu項目 12
1.7.3 為什麼不使用滲透測試發行版 12
1.8 總 結 13
第1階段 信息收集
第2章 發現網絡主機 17
2.1 了解工作範圍 19
2.1.1 黑盒、白盒和灰盒測試範圍 19
2.1.2 Capsulecorp 20
2.1.3 設置 CapsulecorpPentest環境21
2.2 互聯網控制消息協議 21
2.2.1 使用ping命令 22
2.2.2 使用bashpingsweep掃描網絡範圍 24
2.2.3 使用ping命令的限制 26
2.3 使用 Nmap發現主機 26
2.3.1 主要輸出格式 28
2.3.2 使用遠程管理接口端口29
2.3.3 提高 Nmap掃描性能 31
2.4 其他主機發現方法 32
2.4.1 DNS暴力破解 32
2.4.2 數據包捕獲和分析33
2.4.3 尋找子網 33
2.5 總 結 35
第3章 發現網絡服務 36
3.1 從攻擊者的角度了解網絡服務 36
3.1.1 了解網絡服務通信 38
3.1.2 識別監聽網絡服務 39
3.1.3 網絡服務橫幅 39
3.2 使用 Nmap端口掃描 40
3.2.1 常用端口 41
3.2.2 掃描所有的65536個TCP端口 44
3.2.3 對 NSE腳本輸出進行分類 45
3.3 用 Ruby解析 XML輸出 49
3.4 總 結 56
第4章 發現網絡漏洞 57
4.1 了解漏洞發現 58
4.2 發現補丁漏洞 59
4.3 發現身份驗證漏洞 62
4.3.1 創建一個客戶專用的密碼列表 63
4.3.2 暴力破解本地 Windows賬戶密碼 65
4.3.3 暴力破解 MSSQL和 MySQL數據庫密碼 67
4.3.4 暴力破解 VNC密碼 70
4.4 發現配置漏洞 72
4.4.1 設置 Webshot 73
4.4.2 分析 Webshot的輸出 74
4.4.3 手動猜測 Web服務器密碼 76
4.4.4 準備集中滲透 78
4.5 總 結 78
第2階段 集中滲透
第5章 攻擊易受攻擊的 Web服務 81
5.1 理解第2階段:集中滲透 82
5.1.1 部署後門 WebShell 82
5.1.2 訪問遠程管理服務 83
5.1.3 利用缺少的軟件補丁 83
5.2 獲得一個初步立足點 83
5.3 破壞一個易受攻擊的 Tomcat服務器 84
5.3.1 創建一個惡意的 WAR文件 85
5.3.2 部署 WAR文件 86
5.3.3 從瀏覽器訪問 WebShell 87
5.4 交互式Shell與非交互式Shell的對比88
5.5 提升到交互式Shell 89
5.5.1 備份sethc.exe 90
5.5.2 使用cacls.exe修改文件ACL 91
5.5.3 通過 RDP啟動粘滯鍵 92
5.6 破壞易受攻擊的Jenkins服務器 93
5.7 總 結 95
第6章 攻擊易受攻擊的數據庫服務 96
6.1 破壞 Microsoft SQL服務器 96
6.1.1 MSSQL存儲過程 98
6.1.2 使用 Metasploit枚舉 MSSQL服務器 98
6.1.3 啟用xp_cmdshell 100
6.1.4 使用xp_cmdshell運行操作系統命令 102
6.2 竊取 Windows賬戶哈希密碼104
6.2.1 使用reg.exe複製註冊表hive105
6.2.2 下載註冊表 hive副本 107
6.3 使用creddump提取哈希密碼 109
6.4 總 結 111
第7章 攻擊未打補丁的服務 112
7.1 理解軟件漏洞利用 113
7.2 理解典型的漏洞利用生命週期 113
7.3 使用 Metasploit破壞 MS17-010 114
7.3.1 驗證缺少補丁 115
7.3.2 使用 ms17_010_psexecexploit模塊 117
7.4 MeterpreterShell負載 118
7.5 關於公共漏洞利用數據庫的注意事項 124
7.6 總 結 126
第3階段 後漏洞利用和權限提升
第8章 Windows後漏洞利用 129
8.1 基本的後漏洞利用目標 129
8.1.1 維護可靠的重新訪問權 130
8.1.2 獲取憑證 130
8.1.3 橫向移動 130
8.2 使用 Meterpreter維護可靠的重新訪問權 131
8.3 使用 Mimikatz獲取憑證 134
8.4 獲取域緩存憑證 136
8.4.1 使用 MeterpreterPost模塊 137
8.4.2 使用JohntheRipper破解緩存憑證 138
8.4.3 與JohntheRipper一起使用字典文件 140
8.5 從文件系統中獲取憑證 141
8.6 使用哈希傳遞攻擊進行橫向移動 143
8.6.1 使用 Metasploitsmb_login模塊 144
8.6.2 使用 CrackMapExec進行哈希傳遞攻擊 146
8.7 總 結 148
第9章 Linux或 UNIX後漏洞利用 149
9.1 使用定時命令維護可靠的重新訪問權 150
9.1.1 創建SSH 密鑰對 151
9.1.2 啟用公鑰身份驗證 152
9.1.3 通過SSH 建立隧道 154
9.1.4 使用定時任務自動建立SSH 隧道 156
9.2 獲取憑證 157
9.2.1 從bash歷史記錄中獲取憑證 158
9.2.2 獲取哈希密碼 159
9.3 使用SUID二進製文件提升權限 160
9.3.1 使用find命令查找SUID二進製文件 161
9.3.2 在/etc/passwd中插入一個新用戶 163
9.4 傳遞SSH 密鑰 165
9.4.1 從受破壞的主機中竊取密鑰 165
9.4.2 使用 Metasploit掃描多個目標 166
9.5 總 結 168
第10章 控制整個網絡 169
10.1 識別域管理員用戶賬號 171
10.1.1 使用net命令查詢活動目錄組171
10.1.2 查找已登錄的域管理員用戶 172
10.2 獲得域管理員權限 173
10.2.1 使用Incognito模擬登錄的用戶 175
10.2.2 使用 Mimikatz獲取明文憑證 176
10.3 ntds.dit文件和王國之鑰 177
10.3.1 繞過 VSS的限制 178
10.3.2 使用secretsdump.py提取所有哈希值 182
10.4 總 結 183
第4階段 INPT的清理和文檔
第11章 後期清理 187
11.1 終止活動的Shell連接 188
11.2 禁用本地用戶賬戶 189
11.3 從文件系統中刪除殘留文件190
11.3.1 刪除 Windows註冊表hive的副本 191
11.3.2 刪除SSH 密鑰對 191
11.3.3 刪除ntds.dit文件的副本 192
11.4 反轉配置更改 193
5網絡滲透測試的藝術
11.4.1 禁用 MSSQL存儲過程 193
11.4.2 禁用匿名文件共享 194
11.4.3 刪除定時任務條目 195
11.5 關閉後門 196
11.5.1 從 ApacheTomcat中取消部署 WAR文件 196
11.5.2 關閉粘滯鍵後門 197
11.5.3 卸載持久的 Meterpreter回調 198
11.6 總 結 199
第12章 撰寫一個穩定的滲透測試可交付成果 200
12.1 穩定的滲透測試可交付成果的8個部分 200
12.2 執行摘要 202
12.3 工作方法 202
12.4 攻擊敘述 203
12.5 技術觀察 203
12.6 附 錄 206
12.6.1 嚴重程度定義 206
12.6.2 主機和服務 207
12.6.3 工具列表 207
12.6.4 其他參考文獻 208
12.7 收尾工作 208
12.8 現在怎麼辦 209
12.9 總 結 210
附錄 A 構建一個虛擬的滲透測試平台 211
A.1 創建 Ubuntu虛擬機 211
A.2 其他操作系統依賴項 212
A.2.1 使用apt管理 Ubuntu包 212
A.2.2 安裝 CrackMapExec 213
A.2.3 自定義終端界面外觀 213
A.3 安裝 Nmap 213
A.3.1 NSE:Nmap腳本引擎 214
A.3.2 操作系統依賴項 215
A.3.3 從源代碼編譯和安裝 216
A.3.4 探索文檔 217
A.4 Ruby腳本語言 218
A.4.1 安裝 Ruby版本管理器 218
A.4.2 編寫必需的 Helloworld示例 219
A.5 Metasploit框架 222
A.5.1 操作系統依賴項 222
A.5.2 必要的 Rubygem 223
A.5.3 為 Metasploit安裝 PostgreSQL 224
A.5.4 瀏覽 msfconsole 226
附錄 B Linux基本命令 230
B.1 CLI命令 230
B.1.1 $cat 230
B.1.2 $cut 231
B.1.3 $grep 232
B.1.4 $sort和 wc 233
B.2 tmux … 234
B.2.1 使用tmux命令 235
B.2.2 保存tmux會話 235
附錄 C 創建 CapsulecorpPentest實驗室網絡 237
C.1 硬件和軟件要求 238
C.2 創建 Windows主服務器 240
C.2.1 Goku.capsulecorp.local 240
C.2.2 Gohan.capsulecorp.local 241
C.2.3 Vegeta.capsulecorp.local 241
C.2.4 Trunks.capsulecorp.local 241
C.2.5 Nappa.capsulecorp.local和 Tien.capsulecorp.local 242
C.2.6 Yamcha.capsulecorp.local和 Krillin.capsulecorp.local 242
C.3 創建 Linux服務器 242
附錄 D Capsulecorp內部網絡滲透測試報告 243
D.1 執行摘要 243
D.1.1 工作範圍 243
D.1.2 觀察總結 243
D.2 工作方法 244
7網絡滲透測試的藝術
D.2.1 信息收集 244
D.2.2 集中滲透 244
D.2.3 後漏洞利用和權限提升 244
D.2.4 文檔和清理 245
D.3 攻擊敘述 245
D.4 技術觀察 245
D.5 附錄1:嚴重程度定義 249
D.5.1 關 鍵 249
D.5.2 高 級 249
D.5.3 中 級 249
D.5.4 低 級 250
D.6 附錄2:主機和服務 250
D.7 附錄3:工具列表 254
D.8 附錄4:其他參考文獻 255
附錄 E 練習答案 256