所謂滲透測試是借助各種漏洞掃描工具,通過模擬黑客的攻擊方法來對網(wǎng)絡(luò)安全進行評估。
《滲透測試——完全初學者指南》作為入門滲透測試領(lǐng)域的理想讀物,全面介紹每一位滲透測試人員有必要了解和掌握的核心技巧與技術(shù)。本書分為20章,其內(nèi)容涵蓋了滲透測試實驗室的搭建、Kali Linux的基本用法、編程相關(guān)的知識、Metasploit框架的用法、信息收集、漏洞檢測、流量捕獲、漏洞利用、密碼攻擊、客戶端攻擊、社會工程學、規(guī)避病毒檢測、深度滲透、Web應(yīng)用測試、攻擊無線網(wǎng)絡(luò)、Linux/Windows棧緩沖區(qū)溢出、SEH覆蓋、模糊測試/代碼移植及Metasploit模塊、智能手機滲透測試框架的使用等。有別于其他圖書的是,本書在這20章之外還增加了一個第0章,用來解釋滲透測試各個階段應(yīng)該做的工作。
《滲透測試——完全初學者指南》內(nèi)容實用,理論與實戰(zhàn)相互輔佐。讀者借助于書中提及的各個工具,可復(fù)現(xiàn)每一個實驗操作,加深對滲透測試技術(shù)的進一步理解。無論是經(jīng)驗豐富的信息安全從業(yè)人員,還是有志于從事信息安全行業(yè)的新手,都會在閱讀中獲益匪淺。本書還適合信息安全專業(yè)的高校師生閱讀。
滲透測試人員通過模擬網(wǎng)絡(luò)攻擊的方式查找網(wǎng)絡(luò)、操作系統(tǒng)和應(yīng)用程序中的安全漏洞。世界范圍內(nèi)的信息安全專家都使用滲透技術(shù)來評估企業(yè)的防御措施。
本書講解了每一位滲透測試人員都應(yīng)掌握的核心技巧與技術(shù)。本書以虛擬器作為Kali Linux和目標操作系統(tǒng)的載體,借助于Wireshark、Nmap和Burp Suite等工具對所講內(nèi)容進行了操作驗證。通過遵循每一個實驗步驟執(zhí)行相應(yīng)的攻擊,讀者可對滲透設(shè)施中的關(guān)鍵階段(信息收集、查找可利用的漏洞、獲取系統(tǒng)訪問權(quán)限、深度滲透測試)有更好的了解和體會。
本書內(nèi)容:
使用暴力破解和字典攻擊來破解用戶密碼和無線網(wǎng)絡(luò)的密碼;
測試Web應(yīng)用的漏洞;
使用Metasploit框架進行漏洞利用,并自行編寫Metasploit模塊;
自動發(fā)起社會工程學攻擊;
繞過防病毒軟件的檢測;
在深度滲透測試階段,通過單機系統(tǒng)的權(quán)限獲取整個企業(yè)的控制權(quán)限。
本書還介紹了自行編寫漏洞利用程序的相關(guān)知識,并借助于作者自行開發(fā)的SPF(智能手機滲透測試框架)介紹了移動破解相關(guān)的知識。
本書內(nèi)容實用、道術(shù)并重,全面涵蓋了滲透策略和常用工具,不失為一本入門黑客破解技術(shù)的理想讀物。
Georgia Weidman是一位滲透測試專家和安全研究員,同時還是Bulb Security安全咨詢公司的創(chuàng)始人。她不僅多次在Black Hat、ShamooCon和DerbyCon等世界各地的安全會議上發(fā)表演講,而且還親自傳授滲透測試、移動破解和exploit開發(fā)等專業(yè)課程。世界各國的報紙和電視都曾報道過她在移動安全領(lǐng)域的研究成果。DARPA的Cyber Fast Track(信息化項目快速通道)曾為她的移動設(shè)備安全主題立項,并給予她專門的資金支持。
第0章 滲透測試導論 1
0.1 滲透測試的各個階段 2
0.1.1 明確需求階段 2
0.1.2 信息收集階段 3
0.1.3 威脅建模階段 4
0.1.4 漏洞分析階段 4
0.1.5 漏洞驗證階段 4
0.1.6 深度攻擊階段 4
0.1.7 書面匯報階段 5
0.2 小結(jié) 6
第 1章 搭建虛擬滲透實驗室 7
1.1 安裝VMware 7
1.2 安裝 Kali Linux 8
1.2.1 網(wǎng)絡(luò)配置 11
1.2.2 安裝 Nessus 14
1.2.3 安裝其他軟件 18
1.2.4 安裝Android 模擬器 20
1.2.5 智能手機滲透測試框架 24
1.3 靶機虛擬機 25
1.4 創(chuàng)建Windows XP靶機 25
1.4.1 Microsoft Windows上的VMware Player 26
1.4.2 Mac OS上的VMware Fusion 28
1.4.3 安裝并激活Windows系統(tǒng) 29
1.4.4 安裝VMware Tools 32
1.4.5 關(guān)閉Windows防火墻 33
1.4.6 設(shè)置用戶密碼 34
1.4.7 設(shè)置靜態(tài)IP 34
1.4.8 調(diào)整網(wǎng)絡(luò)登錄模式 36
1.4.9 安裝一些存在漏洞的軟件 37
1.4.10 安裝Immunity Debugger和Mona 42
1.5 安裝Ubuntu 8.10 靶機 44
1.6 安裝Windows 7 靶機 44
1.6.1 創(chuàng)建用戶賬號 44
1.6.2 關(guān)閉自動更新 46
1.6.3 設(shè)置靜態(tài)IP地址 47
1.6.4 安裝第二塊網(wǎng)卡 47
1.6.5 安裝其他的軟件 48
1.7 小結(jié) 49
第 2章 使用Kali Linux 50
2.1 Linux命令行 50
2.2 Linux文件系統(tǒng) 51
2.3 操作說明:查看參考手冊的命令 52
2.4 用戶權(quán)限 53
2.4.1 添加用戶 53
2.4.2 把用戶添加到sudoers文件中 54
2.4.3 切換用戶與sudo命令 54
2.4.4 創(chuàng)建文件和目錄 55
2.4.5 文件的復(fù)制、移動和刪除 55
2.4.6 給文件添加文本 56
2.4.7 向文件附加文本 56
2.5 文件權(quán)限 57
2.6 編輯文件 58
2.6.1 字符串搜索 59
2.6.2 使用vi編輯文件 59
2.7 數(shù)據(jù)處理 60
2.7.1 grep 60
2.7.2 sed 61
2.7.3 使用awk進行模式匹配 62
2.8 軟件包管理 62
2.9 進程和服務(wù) 63
2.10 網(wǎng)絡(luò)管理 63
2.10.1 設(shè)置靜態(tài)IP地址 64
2.10.2 查看網(wǎng)絡(luò)連接 65
2.11 Netcat——TCP/IP連接的瑞士軍刀 65
2.11.1 連接端口 66
2.11.2 開放式shell 67
2.11.3 反彈式shell 67
2.12 使用cron進行定時任務(wù) 68
2.13 小結(jié) 69
第3章 編程 71
3.1 Bash腳本 71
3.1.1 ping 71
3.1.2 腳本編程 72
3.1.3 運行程序 72
3.1.4 if語句 73
3.1.5 for循環(huán) 74
3.1.6 提煉數(shù)據(jù) 75
3.2 Python編程 77
3.2.1 連接端口 79
3.2.2 Python中的if語句 79
3.3 編寫和編譯C語言程序 80
3.4 小結(jié) 82
第4章 使用Metasploit框架 83
4.1 啟動Metasploit 84
4.2 查找Metasploit模塊 85
4.2.1 在線的模塊數(shù)據(jù)庫 86
4.2.2 內(nèi)置的搜索命令 87
4.3 設(shè)置模塊選項 90
4.3.1 RHOST 90
4.3.2 RPORT 91
4.3.3 SMBPIPE 91
4.3.4 Exploit Target 91
4.4 有效載荷 92
4.4.1 查找可兼容的有效載荷 92
4.4.2 試運行 94
4.5 shell的種類 95
4.5.1 綁定型 95
4.5.2 反射型 95
4.6 手動設(shè)置有效載荷 95
4.7 Msfcli 98
4.7.1 查看幫助信息 98
4.7.2 查看可用選項 98
4.7.3 設(shè)置有效載荷 99
4.8 使用Msfvenom創(chuàng)建有效載荷 100
4.8.1 選取有效載荷 101
4.8.2 設(shè)定相關(guān)選項 101
4.8.3 選擇輸出格式 101
4.8.4 部署可執(zhí)行文件 102
4.8.5 使用Multi/Handler模塊 103
4.9 使用輔助類模塊 104
4.10 小結(jié) 106
第5章 信息收集 108
5.1 開源情報收集(OSINT) 108
5.1.1 Netcraft 109
5.1.2 whois 110
5.1.3 DNS偵查 111
5.1.4 收集郵件地址 113
5.1.5 Maltego 114
5.2 端口掃描 117
5.2.1 手動端口掃描 118
5.2.2 使用Nmap進行端口掃描 119
5.3 小結(jié) 127
第6章 漏洞檢測 128
6.1 Nmap的版本檢測功能 128
6.2 Nessus 129
6.2.1 掃描策略 130
6.2.2 使用Nessus進行掃描 132
6.2.3 漏洞評級 135
6.2.4 漏洞掃描器的必要性 135
6.2.5 導出Nessus的掃描結(jié)果 136
6.2.6 漏洞研究 136
6.3 Nmap腳本引擎(NSE) 137
6.4 運行單獨的NSE腳本 139
6.5 Metasploit的掃描器模塊 141
6.6 Metasploit漏洞檢驗功能 142
6.7 Web應(yīng)用程序掃描 143
6.7.1 Nikto 144
6.7.2 攻擊XAMPP 145
6.7.3 默認登錄賬號 145
6.8 人工分析 146
6.8.1 檢測非標準端口 146
6.8.2 查找有效登錄名 148
6.9 小結(jié) 149
第7章 流量捕獲 150
7.1 流量捕獲網(wǎng)絡(luò) 150
7.2 Wireshark的使用 151
7.2.1 流量捕獲 151
7.2.2 流量過濾 153
7.2.3 查看TCP會話 154
7.2.4 數(shù)據(jù)包解析 155
7.3 ARP緩存攻擊 155
7.3.1 ARP基礎(chǔ) 156
7.3.2 IP轉(zhuǎn)發(fā) 158
7.3.3 ARP緩存攻擊與Arpspoof 159
7.3.4 使用ARP緩存攻擊冒充默認網(wǎng)關(guān) 160
7.4 DNS緩存攻擊 161
7.4.1 入門 163
7.4.2 使用Dnsspoof 163
7.5 SSL攻擊 164
7.5.1 SSL基礎(chǔ) 165
7.5.2 使用Ettercap進行SSL中間人攻擊 165
7.6 SSL Stripping 167
7.7 小結(jié) 169
第8章 漏洞利用 171
8.1 回顧MS08-067 171
8.1.1 Metasploit有效載荷 172
8.1.2 Meterpreter 173
8.2 利用WebDAV的默認口令 174
8.2.1 在目標Web服務(wù)器上執(zhí)行腳本 175
8.2.2 上傳Msfvenom有效載荷 175
8.3 攻擊開源phpMyAdmin 177
8.4 下載敏感文件 180
8.4.1 下載配置文件 180
8.4.2 下載Windows SAM文件 181
8.5 利用第三方軟件的緩存溢出漏洞 182
8.6 攻擊第三方Web應(yīng)用 183
8.7 攻擊系統(tǒng)服務(wù)的缺陷 186
8.8 攻擊開源NFS的漏洞 186
8.9 小結(jié) 188
第9章 密碼攻擊 190
9.1 密碼管理 190
9.2 在線密碼攻擊 191
9.2.1 字典 191
9.2.2 使用Hydra猜測用戶名和密碼 194
9.3 離線密碼攻擊 196
9.3.1 還原Windows SAM文件中的密碼哈希值 197
9.3.2 通過物理訪問提取密碼哈希值 199
9.3.3 LM與NTLM算法 201
9.3.4 LM哈希算法的局限 201
9.3.5 John the Ripper 203
9.3.6 破解Linux 密碼 205
9.3.7 破解配置文件中的密碼 205
9.3.8 彩虹表 206
9.3.9 在線密碼破解服務(wù) 206
9.4 使用Windows Credential Editor提取內(nèi)存中的密碼明文 206
9.5 小結(jié) 207
第 10章 客戶端攻擊 208
10.1 使用Metasploit有效載荷規(guī)避過濾規(guī)則 209
10.1.1 規(guī)避端口限制規(guī)則 209
10.1.2 HTTP和HTTPS有效載荷 210
10.2 客戶端攻擊 211
10.2.1 攻擊瀏覽器漏洞 212
10.2.2 攻擊PDF漏洞 219
10.2.3 攻擊Java漏洞 223
10.2.4 browser_autopwn 230
10.2.5 Winamp 232
10.3 小結(jié) 235
第 11章 社會工程學 236
11.1 SET 237
11.2 魚叉式釣魚攻擊 237
11.2.1 選擇有效載荷 238
11.2.2 選項設(shè)置 239
11.2.3 文件命名 240
11.2.4 單個郵箱或者批量地址 240
11.2.5 創(chuàng)建模板 240
11.2.6 設(shè)置收件人 241
11.2.7 設(shè)置會話受理端 242
11.3 Web攻擊 243
11.4 群發(fā)郵件攻擊 245
11.5 組合攻擊 248
11.6 小結(jié) 248
第 12章 規(guī)避病毒檢測 249
12.1 木馬程序 249
12.2 防病毒軟件的工作原理 252
12.3 Microsoft Security Essentials 252
12.4 VirusTotal 254
12.5 規(guī)避防病毒軟件的查殺 255
12.5.1 編碼技術(shù) 255
12.5.2 交叉編譯 258
12.5.3 Hyperion加密 261
12.5.4 使用Veil-Evasion規(guī)避防病毒軟件檢測 262
12.6 遠在天邊近在眼前的“隱藏”方法 266
12.7 小結(jié) 266
第 13章 深度滲透 268
13.1 Meterpreter 268
13.1.1 upload命令 269
13.1.2 getuid命令 270
13.1.3 其他命令 270
13.2 Meterpreter腳本 271
13.3 Metasploit的深度滲透模塊 272
13.4 Railgun 274
13.5 本地權(quán)限升級 274
13.5.1 面向Windows的getsystem命令 275
13.5.2 面向Windows的本地權(quán)限提升模塊 276
13.5.3 繞過Windows上的UAC 277
13.5.4 Linux上的Udev權(quán)限提升 278
13.6 本地信息收集 283
13.6.1 搜索文件 283
13.6.2 鍵盤記錄 283
13.6.3 收集密碼 284
13.6.4 net命令 286
13.6.5 另辟蹊徑 287
13.6.6 Bash的歷史文件 287
13.7 橫向移動 288
13.7.1 PSExec 288
13.7.2 傳遞哈希值 290
13.7.3 SSHExec 291
13.7.4 冒用令牌 293
13.7.5 Incognito 293
13.7.6 SMB捕獲 294
13.8 跳板 297
13.8.1 向Metasploit中添加路由 298
13.8.2 Metasploit端口掃描器 299
13.8.3 通過跳板執(zhí)行漏洞利用 300
13.8.4 Socks4a和ProxyChains 300
13.9 持久化 302
13.9.1 添加用戶 302
13.9.2 Metasploit持久化 303
13.9.3 創(chuàng)建Linux cron作業(yè) 304
13.10 小結(jié) 305
第 14章 Web應(yīng)用測試 306
14.1 使用Burp Proxy 306
14.2 SQL注入 311
14.2.1 檢測SQL注入漏洞 312
14.2.2 利用SQL注入漏洞 313
14.2.3 SQLMap 313
14.3 XPath 注入 315
14.4 本地文件包含 317
14.5 遠程文件包含 319
14.6 命令執(zhí)行 320
14.7 跨站腳本攻擊 322
14.7.1 檢測反射型XSS漏洞 322
14.7.2 BeEF與XSS 323
14.8 跨站請求偽造 327
14.9 使用W3AF掃描Web應(yīng)用 328
14.10 小結(jié) 329
第 15章 攻擊無線網(wǎng)絡(luò) 331
15.1 配置 331
15.1.1 查看可用的無線網(wǎng)卡 332
15.1.2 掃描無線接入點 332
15.2 監(jiān)聽模式 333
15.3 捕獲數(shù)據(jù)包 334
15.4 開放網(wǎng)絡(luò) 335
15.5 有線等效加密 335
15.5.1 WEP的弱點 338
15.5.2 用Aircrack-ng破解WEP密鑰 338
15.6 WPA 342
15.7 WPA2 342
15.7.1 企業(yè)架構(gòu)網(wǎng)絡(luò)的聯(lián)網(wǎng)過程 343
15.7.2 個人架構(gòu)網(wǎng)絡(luò)的聯(lián)網(wǎng)過程 343
15.7.3 四次握手 343
15.7.4 破解 WPA/WPA2密鑰 345
15.8 WiFi保護設(shè)置 348
15.8.1 WPS的問題 348
15.8.2 用Bully 破解 WPS 349
15.9 小結(jié) 349
第 16章 Linux棧緩沖區(qū)溢出 350
16.1 內(nèi)存相關(guān)的理論 350
16.2 Linux 緩沖區(qū)溢出 353
16.2.1 程序漏洞實例 353
16.2.2 蓄意崩潰 355
16.2.3 運行GDB調(diào)試工具 356
16.2.4 引發(fā)程序崩潰 361
16.2.5 操縱EIP 363
16.2.6 命令劫持 364
16.2.7 小端字節(jié)序 366
16.3 小結(jié) 367
第 17章 Windows系統(tǒng)的棧緩沖區(qū)溢出 368
17.1 檢索War-FTP的已知漏洞 369
17.2 蓄意崩潰進程 371
17.3 尋找EIP 373
17.3.1 創(chuàng)建循環(huán)模式字符串,判斷關(guān)鍵溢出點 373
17.3.2 驗證偏移量 377
17.4 劫持執(zhí)行程序 379
17.5 獲取shell 384
17.6 小結(jié) 389
第 18章 SEH覆蓋 390
18.1 SEH覆蓋 391
18.2 把控制傳遞給SEH 395
18.3 在內(nèi)存中搜索攻擊字符串 396
18.4 POP POP RET 400
18.5 SafeSEH 401
18.6 使用短跳轉(zhuǎn)(short jump) 405
18.7 選用有效載荷 406
18.8 小結(jié) 407
第 19章 模糊測試、代碼移植及Metasploit模塊 409
19.1 模糊測試 409
19.1.1 源代碼審計法檢測bug 409
19.1.2 模糊測試法審計TFTP服務(wù)器程序 410
19.1.3 引發(fā)崩潰 411
19.2 移植代碼 415
19.2.1 查找返回地址 418
19.2.2 替換shellcode 419
19.2.3 編輯exploit 419
19.3 編寫MSF模塊 421
19.3.1 相似模塊 423
19.3.2 移植代碼 424
19.4 攻擊緩解技術(shù) 428
19.4.1 Stack Cookie 429
19.4.2 地址空間布局隨機化(ASLR) 429
19.4.3 數(shù)據(jù)執(zhí)行保護(DEP) 430
19.4.4 強制代碼簽名機制 430
19.5 小結(jié) 431
第 20章 使用智能手機滲透測試框架 432
20.1 移動設(shè)備的攻擊向量 432
20.1.1 短信 433
20.1.2 NFC 433
20.1.3 二維碼 433
20.2 智能手機滲透測試框架 434
20.2.1 安裝 434
20.2.2 Android模擬器 436
20.2.3 給移動設(shè)備添加調(diào)試解調(diào)器 436
20.2.4 建立Android App 436
20.2.5 部署被控端App 437
20.2.6 建立SPF會話 438
20.3 遠程攻擊 440
20.4 客戶端攻擊 441
20.4.1 客戶端shell 441
20.4.2 USSD遠程控制 443
20.5 惡意應(yīng)用程序 445
20.6 移動平臺的深度滲透測試 451
20.6.1 信息收集 452
20.6.2 遠程遙控 453
20.6.3 用作跳板 454
20.6.4 權(quán)限提升 459
20.7 小結(jié) 460