近年來,Python語言在技術(shù)領(lǐng)域得到了廣泛的認(rèn)同,越來越多的人開始學(xué)習(xí)Python。如今,很多優(yōu)秀的網(wǎng)絡(luò)滲透測試工具是用Python開發(fā)的。從長遠(yuǎn)來看,Python將成為網(wǎng)絡(luò)滲透測試行業(yè)的必備語言之一。
這是一本專門介紹Python在網(wǎng)絡(luò)滲透測試方面應(yīng)用的圖書。本書通過19章的內(nèi)容全面而詳細(xì)地介紹了網(wǎng)絡(luò)滲透測試的理論與實(shí)踐,涉及網(wǎng)絡(luò)的基本原理、Python編程環(huán)境的安裝和配置、Scapy庫、DHCP、DNS、中間人攻擊、遠(yuǎn)程控制、交換機(jī)、信息搜集手段、滲透原理、Web服務(wù)器、Web服務(wù)所面臨的威脅、Web滲透測試實(shí)例、命令注入漏洞、文件包含漏洞、SQL注入攻擊、漏洞的成因、跨站腳本攻擊、WAF的工作原理等重要主題。
本書提供了大量編程實(shí)例,與網(wǎng)絡(luò)安全熱點(diǎn)問題緊密結(jié)合,既可作為高校相關(guān)專業(yè)的教學(xué)用書,也可作為網(wǎng)絡(luò)安全愛好者的進(jìn)階讀物。
1.深度洞察滲透測試的內(nèi)涵
全書系統(tǒng)介紹了滲透測試的原理和必備工具,讀者將結(jié)合網(wǎng)絡(luò)攻防視角了解滲透測試的內(nèi)涵,多角度思考有助于提升自身能力。
2.Python案例,易學(xué)易上手
本書結(jié)合Python 3講解,并在虛擬環(huán)境中再現(xiàn)50多個(gè)經(jīng)典案例,知識(shí)點(diǎn)與案例環(huán)環(huán)相扣,引導(dǎo)讀者巧妙掌握Python編程技巧和相關(guān)模塊的調(diào)用。
3.配套學(xué)習(xí)資源豐富而強(qiáng)大
作者精心準(zhǔn)備了900分鐘的配套視頻講解、全套代碼文件、所需的編程工具,幫助讀者快速上手,高效獲取知識(shí)和技能。有教學(xué)需求的老師或培訓(xùn)機(jī)構(gòu),還可獲得配套的教學(xué)素材,包括教學(xué)日歷、教學(xué)大綱、教學(xué)PPT等。
李華峰是一名資深的網(wǎng)絡(luò)安全專業(yè)教師,擁有多年的一線教學(xué)經(jīng)驗(yàn),同時(shí),他也是信息安全顧問和自由撰稿人,非常喜歡鉆研技術(shù),近年來編寫了多本暢銷圖書,并且是多本技術(shù)圖書的譯者。多年來他一直從事網(wǎng)絡(luò)安全滲透測試方面的研究工作,在網(wǎng)絡(luò)安全部署、網(wǎng)絡(luò)攻擊與防御以及社會(huì)工程學(xué)等方面有十分豐富的實(shí)踐經(jīng)驗(yàn)。
第 1章 我們的設(shè)備是如何連接到互聯(lián)網(wǎng)的 1
1.1 互聯(lián)網(wǎng)世界的規(guī)則——協(xié)議 1
1.2 兩臺(tái)設(shè)備上的應(yīng)用程序是如何通過互聯(lián)網(wǎng)進(jìn)行通信的 2
1.3 小結(jié) 7
第 2章 工欲善其事,必先利其器 8
2.1 Python的優(yōu)勢 8
2.2 Python編程環(huán)境的選擇 9
2.2.1 虛擬操作系統(tǒng)的工具VMware 9
2.2.2 Kali Linux的下載與應(yīng)用 10
2.2.3 PyCharm的下載與應(yīng)用 13
2.3 小結(jié) 19
第3章 數(shù)據(jù)包的“基因編輯工具”——Scapy 20
3.1 Scapy簡介 20
3.2 Scapy中的分層結(jié)構(gòu) 22
3.3 Scapy中的常用函數(shù) 24
3.4 在Scapy中發(fā)送和接收數(shù)據(jù)包 26
3.5 Scapy中的抓包函數(shù) 28
3.6 小結(jié) 30
第4章 IP地址都去哪了 31
4.1 DHCP的工作原理與流程 31
4.2 用Python程序模擬DHCP客戶端 34
4.2.1 DHCP Discover數(shù)據(jù)包的構(gòu)造 35
4.2.2 DHCP Offer數(shù)據(jù)包的捕獲與解析 38
4.2.3 DHCP Request數(shù)據(jù)包的構(gòu)造 39
4.3 編寫一個(gè)DHCP服務(wù)器端測試程序 41
4.4 小結(jié) 42
第5章 你能記住每個(gè)網(wǎng)站的IP地址嗎 43
5.1 DNS協(xié)議的工作原理與流程 43
5.2 使用Scapy模擬DNS的請(qǐng)求 46
5.3 黑客是如何利用DNS協(xié)議的 48
5.3.1 DNS請(qǐng)求泛洪攻擊 48
5.3.2 DNS放大攻擊 49
5.3.3 DNS欺騙 49
5.4 dnspython模塊的使用 51
5.5 doh-proxy模塊的使用 52
5.6 小結(jié) 54
第6章 網(wǎng)絡(luò)中有秘密嗎 55
6.1 中間人攻擊的原理 55
6.2 ARP的缺陷 57
6.3 使用Scapy庫編寫中間人攻擊腳本 61
6.4 用Scapy庫編寫網(wǎng)絡(luò)嗅探程序 63
6.4.1 將嗅探結(jié)果保存為文件 63
6.4.2 對(duì)敏感信息的提取 65
6.5 實(shí)現(xiàn)對(duì)HTTPS的中間人攻擊 67
6.5.1 HTTPS與HTTP的區(qū)別 67
6.5.2 證書頒發(fā)機(jī)構(gòu)的工作原理 69
6.5.3 基于HTTPS的中間人攻擊 71
6.6 中間人攻擊的解決方案 76
6.6.1 靜態(tài)綁定ARP表項(xiàng) 76
6.6.2 使用DHCP Snooping功能 76
6.6.3 劃分VLAN 77
6.7 小結(jié) 77
第7章 用Python編寫一個(gè)遠(yuǎn)程控制程序 78
7.1 遠(yuǎn)程控制程序簡介 78
7.2 編寫一個(gè)基于SSH的遠(yuǎn)程控制程序 79
7.2.1 Telnet與SSH 79
7.2.2 基于paramiko實(shí)現(xiàn)SSH客戶端 81
7.2.3 操作實(shí)例 83
7.3 編寫一個(gè)遠(yuǎn)程控制程序的服務(wù)器端和客戶端 84
7.3.1 如何使用Python執(zhí)行系統(tǒng)命令(subprocess模塊) 84
7.3.2 遠(yuǎn)程控制的服務(wù)器端與客戶端(套接字模塊實(shí)現(xiàn)) 88
7.3.3 遠(yuǎn)程控制的服務(wù)器端與客戶端(socketserver模塊實(shí)現(xiàn)) 91
7.4 編寫一個(gè)反向的木馬 93
7.5 編寫鍵盤監(jiān)聽程序 97
7.6 監(jiān)聽指定窗口的輸入 100
7.7 用Python實(shí)現(xiàn)截圖功能 102
7.8 使用Python控制注冊表 104
7.9 用Python控制系統(tǒng)進(jìn)程 106
7.10 將Python腳本轉(zhuǎn)化為exe文件 109
7.11 小結(jié) 111
第8章 交換機(jī)面臨的威脅 112
8.1 交換機(jī)的工作原理 112
8.2 MAC地址泛洪攻擊 114
8.2.1 泛洪程序的構(gòu)造 114
8.2.2 eNSP仿真環(huán)境的建立 114
8.2.3 通過eNSP中的云與VMware相連 119
8.3 MAC欺騙攻擊 122
8.4 劃分VLAN對(duì)抗中間人攻擊 123
8.5 VLAN Hopping技術(shù) 124
8.6 攻擊生成樹協(xié)議 128
8.7 小結(jié) 131
第9章 用Python實(shí)現(xiàn)信息搜集 132
9.1 信息搜集基礎(chǔ) 132
9.2 用Python實(shí)現(xiàn)設(shè)備狀態(tài)掃描 132
9.2.1 基于ARP的活躍設(shè)備發(fā)現(xiàn)技術(shù) 133
9.2.2 基于ICMP的活躍設(shè)備發(fā)現(xiàn)技術(shù) 137
9.2.3 基于TCP的活躍設(shè)備發(fā)現(xiàn)技術(shù) 140
9.2.4 基于UDP的活躍設(shè)備發(fā)現(xiàn)技術(shù) 142
9.3 使用Python實(shí)現(xiàn)端口掃描 143
9.3.1 基于TCP全開的端口掃描技術(shù) 143
9.3.2 基于TCP半開的端口掃描技術(shù) 146
9.4 小結(jié) 147
第 10章 用Python對(duì)漏洞進(jìn)行滲透 148
10.1 黑客發(fā)現(xiàn)和利用漏洞的過程 148
10.1.1 用Nmap來識(shí)別目標(biāo)操作系統(tǒng)類型和安裝的應(yīng)用程序 148
10.1.2 漏洞滲透庫exploit-db 151
10.1.3 使用Metasploit完成對(duì)目標(biāo)設(shè)備的滲透 153
10.2 使用Python識(shí)別操作系統(tǒng)類型和安裝的應(yīng)用程序 156
10.2.1 python-nmap模塊的使用 157
10.2.2 使用python-nmap模塊識(shí)別目標(biāo)設(shè)備安裝的應(yīng)用程序 160
10.2.3 使用python-nmap模塊識(shí)別目標(biāo)操作系統(tǒng) 162
10.3 使用Python實(shí)現(xiàn)Metasploit的自動(dòng)化滲透 164
10.4 小結(jié) 166
第 11章 Web應(yīng)用程序運(yùn)行原理 167
11.1 Web應(yīng)用程序是怎樣“煉”成的 167
11.2 程序員是如何開發(fā)Web應(yīng)用程序的 172
11.2.1 Web應(yīng)用程序的分層結(jié)構(gòu) 172
11.2.2 各司其職的程序員 173
11.3 研究Web應(yīng)用程序的利器 176
11.3.1 黑盒測試類工具 176
11.3.2 白盒測試類工具 177
11.4 小結(jié) 179
第 12章 Web應(yīng)用程序安全原理 180
12.1 Web服務(wù)所面臨的威脅 180
12.2 Web服務(wù)安全的外部環(huán)境因素 181
12.2.1 操作系統(tǒng)的漏洞 181
12.2.2 Web服務(wù)器應(yīng)用程序的漏洞 185
12.2.3 Docker的缺陷 188
12.3 Web服務(wù)安全的內(nèi)部代碼因素 190
12.3.1 常見的Web應(yīng)用程序漏洞 190
12.3.2 Web漏洞測試程序 192
12.4 建立靶機(jī)測試環(huán)境 194
12.5 對(duì)Web服務(wù)進(jìn)行信息搜集 196
12.5.1 檢測Web服務(wù)器的操作系統(tǒng)類型和安裝的應(yīng)用程序 196
12.5.2 獲取關(guān)于目標(biāo)的whois信息 198
12.6 小結(jié) 199
第 13章 簡單直接的黑客攻擊:暴力破解 200
13.1 用Burp Suite跟蹤分析登錄的過程 200
13.2 用Python編寫登錄程序 204
13.3 如何在Python程序中保持登錄狀態(tài) 207
13.4 用Python編寫針對(duì)登錄的暴力破解程序 208
13.4.1 用Python編寫生成字典文件的程序 209
13.4.2 用Python編寫一個(gè)DVWA登錄的暴力破解程序 212
13.5 針對(duì)目錄的暴力破解 214
13.6 小結(jié) 215
第 14章 Web也有“后門”——命令注入漏洞 216
14.1 命令注入漏洞產(chǎn)生的原因 216
14.1.1 系統(tǒng)命令函數(shù) 217
14.1.2 執(zhí)行多條命令 218
14.2 如何利用DVWA的命令注入漏洞進(jìn)行滲透 219
14.3 用Python編寫一個(gè)命令注入程序 220
14.4 如何利用命令注入漏洞實(shí)現(xiàn)對(duì)服務(wù)器的控制 223
14.5 命令注入漏洞的解決方案 226
14.6 小結(jié) 228
第 15章 被遺忘的角落:文件包含漏洞 229
15.1 文件包含漏洞的成因 229
15.2 文件包含漏洞攻擊實(shí)例 233
15.3 用Python編寫文件包含漏洞測試程序 235
15.4 文件包含漏洞的解決方案 237
15.5 小結(jié) 238
第 16章 令人談之色變的攻擊:SQL注入攻擊 239
16.1 SQL注入漏洞產(chǎn)生的原因 239
16.2 黑客是如何利用SQL注入漏洞的 243
16.2.1 利用INFORMATION_SCHEMA數(shù)據(jù)庫進(jìn)行SQL注入 243
16.2.2 如何繞過程序的轉(zhuǎn)義機(jī)制 244
16.2.3 SQL Injection 245
16.3 sqlmap注入工具的使用 247
16.4 使用Python編寫的SQL注入程序 250
16.5 小結(jié) 254
第 17章 黑客入侵的捷徑:上傳攻擊 255
17.1 黑客利用上傳漏洞的各種技術(shù) 255
17.2 用Python編寫上傳漏洞滲透程序 260
17.3 應(yīng)對(duì)上傳漏洞的解決方案 262
17.4 小結(jié) 263
第 18章 來自遠(yuǎn)方的來信:跨站腳本攻擊漏洞 264
18.1 跨站腳本攻擊漏洞的成因 264
18.2 跨站腳本攻擊漏洞攻擊實(shí)例 266
18.3 用Python實(shí)現(xiàn)跨站腳本攻擊漏洞檢測 270
18.4 跨站腳本攻擊漏洞的解決方案 271
18.5 跨站請(qǐng)求偽造漏洞的分析與利用 271
18.6 小結(jié) 275
第 19章 WAF可以讓我們高枕無憂了嗎 276
19.1 入侵者如何檢測WAF 276
19.1.1 網(wǎng)站有無WAF保護(hù)的區(qū)別 276
19.1.2 檢測目標(biāo)網(wǎng)站是否使用WAF 277
19.1.3 檢測目標(biāo)網(wǎng)站使用的WAF產(chǎn)品 279
19.2 入侵者如何繞過云WAF 283
19.3 常見的WAF繞過方法 285
19.3.1 利用WAF的檢測范圍 286
19.3.2 WAF與操作系統(tǒng)的解析差異 287
19.3.3 利用WAF與服務(wù)器應(yīng)用程序的解析差異 291
19.3.4 編解碼技術(shù)的差異 293
19.3.5 其他常用方法 297
19.4 小結(jié) 298