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