近年來,Python語言在技術(shù)領(lǐng)域得到了廣泛的認同,越來越多的人開始學習Python。如今,很多優(yōu)秀的網(wǎng)絡(luò)滲透測試工具是用Python開發(fā)的。從長遠來看,Python將成為網(wǎng)絡(luò)滲透測試行業(yè)的必備語言之一。
這是一本專門介紹Python在網(wǎng)絡(luò)滲透測試方面應用的圖書。本書通過19章的內(nèi)容全面而詳細地介紹了網(wǎng)絡(luò)滲透測試的理論與實踐,涉及網(wǎng)絡(luò)的基本原理、Python編程環(huán)境的安裝和配置、Scapy庫、DHCP、DNS、中間人攻擊、遠程控制、交換機、信息搜集手段、滲透原理、Web服務(wù)器、Web服務(wù)所面臨的威脅、Web滲透測試實例、命令注入漏洞、文件包含漏洞、SQL注入攻擊、漏洞的成因、跨站腳本攻擊、WAF的工作原理等重要主題。
本書提供了大量編程實例,與網(wǎng)絡(luò)安全熱點問題緊密結(jié)合,既可作為高校相關(guān)專業(yè)的教學用書,也可作為網(wǎng)絡(luò)安全愛好者的進階讀物。
1.深度洞察滲透測試的內(nèi)涵
全書系統(tǒng)介紹了滲透測試的原理和必備工具,讀者將結(jié)合網(wǎng)絡(luò)攻防視角了解滲透測試的內(nèi)涵,多角度思考有助于提升自身能力。
2.Python案例,易學易上手
本書結(jié)合Python 3講解,并在虛擬環(huán)境中再現(xiàn)50多個經(jīng)典案例,知識點與案例環(huán)環(huán)相扣,引導讀者巧妙掌握Python編程技巧和相關(guān)模塊的調(diào)用。
3.配套學習資源豐富而強大
作者精心準備了900分鐘的配套視頻講解、全套代碼文件、所需的編程工具,幫助讀者快速上手,高效獲取知識和技能。有教學需求的老師或培訓機構(gòu),還可獲得配套的教學素材,包括教學日歷、教學大綱、教學PPT等。
李華峰是一名資深的網(wǎng)絡(luò)安全專業(yè)教師,擁有多年的一線教學經(jīng)驗,同時,他也是信息安全顧問和自由撰稿人,非常喜歡鉆研技術(shù),近年來編寫了多本暢銷圖書,并且是多本技術(shù)圖書的譯者。多年來他一直從事網(wǎng)絡(luò)安全滲透測試方面的研究工作,在網(wǎng)絡(luò)安全部署、網(wǎng)絡(luò)攻擊與防御以及社會工程學等方面有十分豐富的實踐經(jīng)驗。
第 1章 我們的設(shè)備是如何連接到互聯(lián)網(wǎng)的 1
1.1 互聯(lián)網(wǎng)世界的規(guī)則——協(xié)議 1
1.2 兩臺設(shè)備上的應用程序是如何通過互聯(lián)網(wǎng)進行通信的 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的下載與應用 10
2.2.3 PyCharm的下載與應用 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 編寫一個DHCP服務(wù)器端測試程序 41
4.4 小結(jié) 42
第5章 你能記住每個網(wǎng)站的IP地址嗎 43
5.1 DNS協(xié)議的工作原理與流程 43
5.2 使用Scapy模擬DNS的請求 46
5.3 黑客是如何利用DNS協(xié)議的 48
5.3.1 DNS請求泛洪攻擊 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 對敏感信息的提取 65
6.5 實現(xiàn)對HTTPS的中間人攻擊 67
6.5.1 HTTPS與HTTP的區(qū)別 67
6.5.2 證書頒發(fā)機構(gòu)的工作原理 69
6.5.3 基于HTTPS的中間人攻擊 71
6.6 中間人攻擊的解決方案 76
6.6.1 靜態(tài)綁定ARP表項 76
6.6.2 使用DHCP Snooping功能 76
6.6.3 劃分VLAN 77
6.7 小結(jié) 77
第7章 用Python編寫一個遠程控制程序 78
7.1 遠程控制程序簡介 78
7.2 編寫一個基于SSH的遠程控制程序 79
7.2.1 Telnet與SSH 79
7.2.2 基于paramiko實現(xiàn)SSH客戶端 81
7.2.3 操作實例 83
7.3 編寫一個遠程控制程序的服務(wù)器端和客戶端 84
7.3.1 如何使用Python執(zhí)行系統(tǒng)命令(subprocess模塊) 84
7.3.2 遠程控制的服務(wù)器端與客戶端(套接字模塊實現(xiàn)) 88
7.3.3 遠程控制的服務(wù)器端與客戶端(socketserver模塊實現(xiàn)) 91
7.4 編寫一個反向的木馬 93
7.5 編寫鍵盤監(jiān)聽程序 97
7.6 監(jiān)聽指定窗口的輸入 100
7.7 用Python實現(xiàn)截圖功能 102
7.8 使用Python控制注冊表 104
7.9 用Python控制系統(tǒng)進程 106
7.10 將Python腳本轉(zhuǎn)化為exe文件 109
7.11 小結(jié) 111
第8章 交換機面臨的威脅 112
8.1 交換機的工作原理 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對抗中間人攻擊 123
8.5 VLAN Hopping技術(shù) 124
8.6 攻擊生成樹協(xié)議 128
8.7 小結(jié) 131
第9章 用Python實現(xiàn)信息搜集 132
9.1 信息搜集基礎(chǔ) 132
9.2 用Python實現(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實現(xiàn)端口掃描 143
9.3.1 基于TCP全開的端口掃描技術(shù) 143
9.3.2 基于TCP半開的端口掃描技術(shù) 146
9.4 小結(jié) 147
第 10章 用Python對漏洞進行滲透 148
10.1 黑客發(fā)現(xiàn)和利用漏洞的過程 148
10.1.1 用Nmap來識別目標操作系統(tǒng)類型和安裝的應用程序 148
10.1.2 漏洞滲透庫exploit-db 151
10.1.3 使用Metasploit完成對目標設(shè)備的滲透 153
10.2 使用Python識別操作系統(tǒng)類型和安裝的應用程序 156
10.2.1 python-nmap模塊的使用 157
10.2.2 使用python-nmap模塊識別目標設(shè)備安裝的應用程序 160
10.2.3 使用python-nmap模塊識別目標操作系統(tǒng) 162
10.3 使用Python實現(xiàn)Metasploit的自動化滲透 164
10.4 小結(jié) 166
第 11章 Web應用程序運行原理 167
11.1 Web應用程序是怎樣“煉”成的 167
11.2 程序員是如何開發(fā)Web應用程序的 172
11.2.1 Web應用程序的分層結(jié)構(gòu) 172
11.2.2 各司其職的程序員 173
11.3 研究Web應用程序的利器 176
11.3.1 黑盒測試類工具 176
11.3.2 白盒測試類工具 177
11.4 小結(jié) 179
第 12章 Web應用程序安全原理 180
12.1 Web服務(wù)所面臨的威脅 180
12.2 Web服務(wù)安全的外部環(huán)境因素 181
12.2.1 操作系統(tǒng)的漏洞 181
12.2.2 Web服務(wù)器應用程序的漏洞 185
12.2.3 Docker的缺陷 188
12.3 Web服務(wù)安全的內(nèi)部代碼因素 190
12.3.1 常見的Web應用程序漏洞 190
12.3.2 Web漏洞測試程序 192
12.4 建立靶機測試環(huán)境 194
12.5 對Web服務(wù)進行信息搜集 196
12.5.1 檢測Web服務(wù)器的操作系統(tǒng)類型和安裝的應用程序 196
12.5.2 獲取關(guān)于目標的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編寫針對登錄的暴力破解程序 208
13.4.1 用Python編寫生成字典文件的程序 209
13.4.2 用Python編寫一個DVWA登錄的暴力破解程序 212
13.5 針對目錄的暴力破解 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的命令注入漏洞進行滲透 219
14.3 用Python編寫一個命令注入程序 220
14.4 如何利用命令注入漏洞實現(xiàn)對服務(wù)器的控制 223
14.5 命令注入漏洞的解決方案 226
14.6 小結(jié) 228
第 15章 被遺忘的角落:文件包含漏洞 229
15.1 文件包含漏洞的成因 229
15.2 文件包含漏洞攻擊實例 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ù)庫進行SQL注入 243
16.2.2 如何繞過程序的轉(zhuǎn)義機制 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 應對上傳漏洞的解決方案 262
17.4 小結(jié) 263
第 18章 來自遠方的來信:跨站腳本攻擊漏洞 264
18.1 跨站腳本攻擊漏洞的成因 264
18.2 跨站腳本攻擊漏洞攻擊實例 266
18.3 用Python實現(xiàn)跨站腳本攻擊漏洞檢測 270
18.4 跨站腳本攻擊漏洞的解決方案 271
18.5 跨站請求偽造漏洞的分析與利用 271
18.6 小結(jié) 275
第 19章 WAF可以讓我們高枕無憂了嗎 276
19.1 入侵者如何檢測WAF 276
19.1.1 網(wǎng)站有無WAF保護的區(qū)別 276
19.1.2 檢測目標網(wǎng)站是否使用WAF 277
19.1.3 檢測目標網(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ù)器應用程序的解析差異 291
19.3.4 編解碼技術(shù)的差異 293
19.3.5 其他常用方法 297
19.4 小結(jié) 298