作為測試者或者安全實踐者,你將通過本書領會滲透測試人員的偵察、漏洞評估、利用、提權以及后利用活動。首先,你將使用實驗室環(huán)境來驗證所學工具和技術,以及支持用于測試的協(xié)作方法的應用程序。然后,您將學習基于開源智能的被動偵察以及基于內部和外部基礎設施的主動偵察。您還將專注于如何選擇,使用和自定義不同漏洞掃描程序,并且解釋掃描結果,然后專注于檢查到目的地址的特定路由,其中包括物理安全的繞過和使用各種技術的數(shù)據(jù)外泄。你還將學習社交工程攻擊,無線網(wǎng)絡攻擊,Web服務和嵌入式設備等概念。
前言
致謝
審校者簡介
第1章 基于目標的滲透測試 1
1.1 安全測試概述 1
1.2 漏洞掃描、滲透測試和紅隊訓練的誤解 2
1.3 基于目標的滲透測試 2
1.4 測試方法 3
1.5 Kali Linux簡介:特征 5
1.6 安裝和更新Kali Linux 6
1.6.1 在便攜式設備中安裝Kali Linux 6
1.6.2 在Raspberry Pi 3中安裝Kali 7
1.6.3 在虛擬機中安裝Kali 7
1.6.4 在Docker中安裝Kali 10
1.6.5 在AWS 云中安裝Kali 11
1.7 組織Kali Linux 14
1.7.1 配置和自定義Kali Linux 14
1.7.2 重置超級用戶密碼 14
1.7.3 添加普通用戶 15
1.7.4 配置網(wǎng)絡服務和安全通信 15
1.7.5 調整網(wǎng)絡代理設置 16
1.7.6 訪問安全外殼協(xié)議 17
1.7.7 加速Kali運行 18
1.7.8 與主機操作系統(tǒng)共享文件夾 18
1.7.9 使用Bash腳本來定制Kali 20
1.8 構建驗證環(huán)境 20
1.8.1 安裝預定目標 20
1.8.2 創(chuàng)建活動目錄及域控制器 22
1.9 使用Faraday管理合作滲透測試 25
1.10 小結 27
第2章 開源情報和被動偵察 28
2.1 偵察的基本原則 29
2.1.1 開源情報 29
2.1.2 進攻型OSINT 29
2.1.3 利用Sublist3r收集域資料 30
2.1.4 Maltego 31
2.1.5 OSRFramework 34
2.1.6 Web archives 35
2.1.7 抓取 35
2.1.8 收集用戶名和電子郵件地址 36
2.1.9 獲取用戶信息 36
2.1.10 Shodan和censys.io 37
2.2 Google黑客數(shù)據(jù)庫 38
2.2.1 使用dork腳本來查詢Google 38
2.2.2 Data dump網(wǎng)站 39
2.2.3 使用腳本自動收集OSINT數(shù)據(jù) 39
2.2.4 防守型OSINT 40
2.2.5 分析用戶以獲取密碼列表 42
2.3 創(chuàng)建自定義單詞列表來破解密碼 43
2.3.1 使用CeWL來映射網(wǎng)站 43
2.3.2 使用twofi從Twitter提取單詞 44
2.4 小結 44
第3章 外網(wǎng)與內網(wǎng)的主動偵察 45
3.1 秘密掃描策略 46
3.1.1 調整源IP棧和工具識別設置 46
3.1.2 修改數(shù)據(jù)包參數(shù) 47
3.1.3 使用匿名網(wǎng)絡代理 48
3.2 DNS偵察和路由映射 51
3.3 利用綜合偵察應用程序 52
3.3.1 recon-ng框架 53
3.3.2 使用IPv6專用工具 56
3.3.3 映射路由到目標 57
3.4 識別外部網(wǎng)絡基礎設施 59
3.5 防火墻外映射 60
3.6 IDS / IPS識別 61
3.7 枚舉主機 63
3.8 識別端口、操作系統(tǒng)和服務 63
3.9 使用netcat編寫自己的端口掃描器 64
3.9.1 指紋識別操作系統(tǒng) 65
3.9.2 確定主動服務 66
3.10 大規(guī)模掃描 66
3.10.1 DHCP信息 67
3.10.2 內部網(wǎng)絡主機的識別與枚舉 67
3.10.3 本地MS Windows命令 68
3.10.4 ARP廣播 70
3.10.5 ping掃描 70
3.10.6 使用腳本組合masscan和nmap掃描 71
3.10.7 利用SNMP 72
3.10.8 通過服務器消息塊會話獲取Windows賬戶信息 74
3.10.9 定位網(wǎng)絡共享 74
3.10.10 主動偵察目錄域服務器 75
3.10.11 使用綜合工具 76
3.10.12 SPARTA配置實例 76
3.11 小結 77
第4章 漏洞評估 78
4.1 漏洞命名 78
4.2 本地和在線漏洞數(shù)據(jù)庫 79
4.3 用nmap進行漏洞掃描 82
4.3.1 Lua腳本介紹 83
4.3.2 自定義NSE腳本 83
4.4 Web應用漏洞掃描器 85
4.4.1 Nikto和Vega簡介 85
4.4.2 定制Nikto和Vega 87
4.5 移動應用漏洞掃描器 89
4.6 網(wǎng)絡漏洞掃描器OpenVAS 92
4.7 商業(yè)漏洞掃描器 94
4.7.1 Nessus 94
4.7.2 Nexpose 96
4.8 專業(yè)掃描器 97
4.9 威脅建模 98
4.10 小結 99
第5章 高級社會工程學和物理安全 101
5.1 方法論和攻擊方法 102
5.1.1 基于技術的攻擊 103
5.1.2 基于人的攻擊 103
5.2 控制臺上的物理攻擊 104
5.2.1 samdump2和chntpw 104
5.2.2 粘滯鍵 107
5.3 創(chuàng)建流氓物理設備 108
5.4 社會工程學工具包 112
5.4.1 使用網(wǎng)站攻擊媒介——憑據(jù)收割機攻擊方法 114
5.4.2 使用網(wǎng)站攻擊媒介——標簽釣魚攻擊方法 116
5.4.3 HTA攻擊 118
5.4.4 使用PowerShell字母數(shù)字的shellcode注入攻擊 120
5.5 隱藏可執(zhí)行文件與偽裝攻擊者的URL 121
5.6 使用DNS重定向升級攻擊 121
5.6.1 魚叉式網(wǎng)絡釣魚攻擊 122
5.6.2 使用Gophish設置網(wǎng)絡釣魚活動 126
5.7 發(fā)起網(wǎng)絡釣魚攻擊 127
5.8 利用bulk轉換發(fā)起網(wǎng)絡釣魚攻擊 128
5.9 小結 129
第6章 無線攻擊 130
6.1 為無線攻擊配置Kali 130
6.2 無線偵察 131
6.3 繞過隱藏的服務集標識符 135
6.4 繞過MAC 地址驗證和公開驗證 137
6.5 攻擊WPA和WPA2 138
6.5.1 暴力破解 138
6.5.2 使用Reaver攻擊無線路由器 141
6.6 無線通信的拒絕服務攻擊 142
6.7 破解WPA/WPA2企業(yè)版實現(xiàn) 143
6.8 使用Ghost Phisher 151
6.9 小結 152
第7章 基于Web應用的利用 153
7.1 Web應用程序攻擊方法 153
7.2 黑客的思維導圖 154
7.3 Web應用的偵察 156
7.3.1 Web應用防火墻和負載均衡器檢測 157
7.3.2 指紋識別Web應用和CMS 158
7.3.3 利用命令行設置鏡像網(wǎng)站 160
7.4 客戶端代理 161
7.4.1 Burp代理 161
7.4.2 Web抓取和目錄的暴力破解 165
7.4.3 網(wǎng)絡服務專用漏洞掃描器 165
7.5 針對特定應用的攻擊 166
7.5.1 暴力破解訪問證書 166
7.5.2 注入 167
7.6 小結 177
第8章 客戶端利用 178
8.1 留后門的可執(zhí)行文件 178
8.2 使用惡意腳本攻擊系統(tǒng) 181
8.2.1 使用VBScript進行攻擊 181
8.2.2 使用Windows PowerShell攻擊系統(tǒng) 184
8.3 跨站點腳本框架 185
8.4 瀏覽器利用框架——BeEF 190
8.5 BeEF瀏覽器 192
8.5.1 整合BeEF和Metasploit攻擊 196
8.5.2 用BeEF作為隧道代理 196
8.6 小結 198
第9章 繞過安全控制 199
9.1 繞過網(wǎng)絡訪問控制 199
9.1.1 前準入NAC 200
9.1.2 后準入NAC 202
9.2 使用文件繞過殺毒軟件 202
9.2.1 利用Veil框架 203
9.2.2 利用Shellter 207
9.3 無文件方式繞過殺毒軟件 211
9.4 繞過應用程序級控制 211
9.5 繞過Windows操作系統(tǒng)控制 214
9.5.1 用戶賬戶控制 215
9.5.2 采用無文件技術 218
9.5.3 其他Windows特定的操作系統(tǒng)控制 220
9.6 小結 222
第10章 利用 223
10.1 Metasploit框架 223
10.1.1 庫 224
10.1.2 接口 225
10.1.3 模塊 225
10.1.4 數(shù)據(jù)庫設置和配置 226
10.2 使用MSF利用目標 230
10.2.1 使用簡單反向shell攻擊單個目標 230
10.2.2 利用具有PowerShell攻擊媒介的反向shell攻擊單個目標 231
10.3 使用MSF資源文件的多目標利用 233
10.4 使用Armitage的多目標利用 233
10.5 使用公開的漏洞利用 235
10.5.1 定位和驗證公開可用的漏洞利用 236
10.5.2 編譯和使用漏洞 237
10.6 開發(fā)Windows利用 239
10.6.1 模糊識別漏洞 239
10.6.2 制作Windows特定的利用 245
10.7 小結 248
第11章 操控目標與內網(wǎng)漫游 249
11.1 破解的本地系統(tǒng)上的活動 249
11.1.1 對已入侵的系統(tǒng)進行快速偵察 250
11.1.2 找到并提取敏感數(shù)據(jù)——掠奪目標 251
11.1.3 后利用工具 253
11.2 橫向提權與內網(wǎng)漫游 262
11.2.1 Veil-Pillage 263
11.2.2 入侵域信任與共享 265
11.2.3 PsExec、WMIC和其他工具 266
11.2.4 利用服務實現(xiàn)內網(wǎng)漫游 270
11.2.5 支點攻擊和端口轉發(fā) 271
11.3 小結 273
第12章 提權 274
12.1 常見的提權方法概述 274
12.2 從域用戶提權至系統(tǒng)管理員 275
12.3 本地系統(tǒng)提權 276
12.4 由管理員提權至系統(tǒng)管理員 277
12.5 憑據(jù)收割和提權攻擊 280
12.5.1 密碼嗅探器 280
12.5.2 響應者 282
12.5.3 SMB中繼攻擊 284
12.6 提升活動目錄中的訪問權限 285
12.7 入侵Kerberos——金票攻擊 290
12.8 小結 295
第13章 命令與控制 296
13.1 持久性 296
13.2 使用持久代理 297
13.2.1 使用Netcat作為持久代理 297
13.2.2 使用schtasks來配置持久任務 300
13.2.3 使用Metasploit框架保持持久性 301
13.2.4 使用persistence腳本 302
13.2.5 使用Metasploit框架創(chuàng)建一個獨立的持久代理 303
13.2.6 使用在線文件存儲云服務保持持久性 304
13.3 前置域 310
13.3.1 利用Amazon CloudFront實現(xiàn)C2 310
13.3.2 利用Microsoft Azure實現(xiàn)C2 313
13.4 數(shù)據(jù)提取 315
13.4.1 使用現(xiàn)有的系統(tǒng)服務(Telnet、RDP、VNC) 315
13.4.2 使用DNS協(xié)議 316
13.4.3 使用ICMP協(xié)議 318
13.4.4 使用數(shù)據(jù)提取工具包 319
13.4.5 使用PowerShell 321
13.5 隱藏攻擊證據(jù) 321
13.6 小結 323
第14章 嵌入式設備和RFID的入侵 324
14.1 嵌入式系統(tǒng)及硬件架構 324
14.2 固件解包與更新 327
14.3 RouterSploit 框架簡介 330
14.4 UART 333
14.5 利用Chameleon Mini克隆RFID 335
14.6 小結 339