本書共15章和3個附錄,內容包括:評估工作流程與工具、評估工作流程與工具、局域網發(fā)現、IP網絡掃描、常見網絡服務評估、微軟服務評估、電子郵件服務評估、Web應用體系結構等。每一章的后邊列出了一個清單,其中總結歸納了該章所描述的各種網絡威脅、攻擊技術,以及相應的有效防護措施。附錄中提供了一些有益的參考資料,包括測試中常用的TCP和UDP的端口列表等。
前言
一如既往,攻擊者仍在持續(xù)地開展網絡攻擊來獲益。在我準備撰寫《網絡安全評估》第三版時,對事件響應專業(yè)技能的需求也在持續(xù)上升。在過去的十年中,盡管軟件開發(fā)商在提高其產品安全性方面做了大量工作,但隨著系統(tǒng)復雜度的不斷增強,其攻擊方式也不斷變化,最終導致互聯(lián)網整體上完整性與安全性的下降。
攻擊者的戰(zhàn)略戰(zhàn)術也日益增強,涵蓋了軟件漏洞利用、社會工程,以及對高價值資產的物理攻擊等多種復雜滲透手段的綜合運用。更嚴重的是,很多為保護網絡安全而部署的技術已經證明是無效的, Google Project Zero 團隊注1成員Tavis Ormandy 已經公布了一個可遠程利用漏洞的列表,里面涵蓋了很多安全產品注2。
風險與收益共存,這一原則同樣適用于網絡安全領域。網絡安全研究人員有時候會負責任地向產品廠商通報0day 漏洞,有時候也會出于經濟報酬的目的來向第三方或攻擊者披露0day 漏洞,后者則與相應的客戶進行研究成果的分享和利用。此外,還有一個日益擴大的鴻溝,即有些只為某些特權組織(比如政府和犯罪組織)所知的嚴重安全漏洞的數量日益增長。
針對這種狀況,一個下意識的反應就是起訴黑客并控制其攻擊工具的擴散。然而,我們所面對的對手及其采用的戰(zhàn)略戰(zhàn)術,不過是一個嚴重問題的表征:我們所使用的產品并不適用于這一目的。對很多技術公司而言,產品安全是之后才添加的內容,我們今天面臨的安全挑戰(zhàn)只是這個問題的一種表現。
導致事情進一步惡化的是,政府推進了網絡空間軍事化的進程,并破壞了用于保護數據的密碼系統(tǒng)的完整性注3。作為網絡安全專家,我們必須提倡縱深防御(defense in depth)來降低可能仍然存在的風險,并努力確保網絡成為適合開展商務貿易、數據存儲和相互通信等業(yè)務的安全場所。
概覽
本書對計算機安全范疇中的一個特定領域——以結構化的模式開展基于網絡的滲透測試進行了深入研究,其中介紹的方法學描述了攻擊者怎樣在互聯(lián)網中探測定位存在漏洞的系統(tǒng)組件,以及用戶怎樣開展類似的互動來確保自身網絡環(huán)境的安全。
為了對安全風險進行有效管控,評估是每個組織都應該進行的第一個步驟。通過采用與攻擊者類似的方式對自身網絡環(huán)境進行測試,能夠未雨綢繆地定位、識別其中存在的漏洞。在本書中,我將攻擊技術和相應的應對措施以列表的形式給出,有助于讀者設計清晰、正確的技術策略來增強自身網絡環(huán)境的安全。
Chris McNab是安全分析軟件公司AlphaSOC的創(chuàng)始人,該公司在美國和英國都設有辦事處。Chris與世界各地的客戶組織合作,幫助這些客戶了解并減輕其環(huán)境中的脆弱性。他出席了包括FIRST、OWASP、InfoSecurity Europe、InfoSec World、信息安全世界和云安全聯(lián)盟大會在內的多項活動。
目錄
前言 1
第1 章 網絡安全評估簡介 15
當前狀態(tài) 15
威脅與攻擊面 17
客戶端軟件攻擊 17
服務器軟件攻擊 18
Web 應用程序攻擊 19
暴露的邏輯20
評估方法 22
靜態(tài)分析 22
設計檢驗 22
動態(tài)測試 24
本書覆蓋的內容 27
第2 章 評估工作流程與工具 28
網絡安全評估方法學 29
探測識別 29
漏洞掃描 30
漏洞研究 30
漏洞的滲透33
迭代式評估方法 33
可用的測試平臺 35
更新Kali Linux 35
部署帶漏洞的服務器 36
第3 章 漏洞與對手 37
Hacking 的基本概念 37
軟件存在漏洞的原因分析 38
考慮攻擊面 39
軟件安全錯誤分類 40
威脅建模 42
系統(tǒng)組件 42
攻擊者目標42
系統(tǒng)訪問與執(zhí)行上下文 43
攻擊者經濟學 45
攻擊C/C++ 應用程序 47
運行時內存布局 47
處理器寄存器與內存 50
寫入內存 51
讀取內存 53
編譯器與操作系統(tǒng)安全功能 56
規(guī)避常見的安全功能 58
邏輯缺陷和其他漏洞 63
密碼機制弱點 64
本章主要內容回顧 66
第4 章 Internet 網絡發(fā)現 67
查詢搜索引擎與Web 站點 68
Google 搜索功能 69
Netcraft 查詢 73
使用Shodan 73
DomainTools 75
PGP 公鑰服務器 76
LinkedIn 搜索 77
域WHOIS 78
人工WHOIS 查詢 78
IP WHOIS 80
IP WHOIS 查詢工具與實例 81
BGP 枚舉 85
DNS 查詢 85
正向DNS 查詢 86
DNS 區(qū)域傳送技術 89
前向DNS 破解 91
反向DNS 掃描 95
IPv6 主機枚舉 97
DNS 數據集的交叉索引 98
SMTP 探測 99
枚舉的自動化 101
枚舉技術回顧 101
枚舉攻擊應對措施 102
第5 章 局域網發(fā)現 103
數據鏈路協(xié)議 103
8023 以太網測試 104
8021Q VLAN 109
攻擊特定的VLAN 113
8021X PNAC 116
CDP 121
8021D STP 124
本地IP 協(xié)議 127
DHCP 128
PXE 130
LLMNR, NBT-NS 和mDNS 132
WPAD 134
內部路由協(xié)議 136
IPv6 網絡發(fā)現 145
識別本地網關 151
本地網絡發(fā)現回顧 151
本地網絡攻擊應對措施 153
第6 章 IP 網絡掃描 155
使用Nmap 進行初始網絡掃描 155
ICMP 156
TCP 158
UDP 160
SCTP 163
結果匯總 167
低層IP 評估 169
偽造任意數據包 170
TCP/IP 協(xié)議棧指紋識別 173
IP ID 分析 173
利用TTL 對ACL 進行逆向分析176
揭示內部IP 地址 178
實用NSE 進行漏洞掃描 178
大規(guī)模漏洞掃描 181
IDS 與IPS 規(guī)避 182
TTL 操控 182
使用SniffJoke 進行數據插入和加擾 183
SniffJoke 配置和運行 184
網絡掃描回顧 186
網絡掃描的應對措施 187
第7 章 常見網絡服務評估 188
FTP 189
FTP 服務指紋識別 190
已知的FTP 漏洞 191
TFTP 193
已知的TFTP 漏洞 194
SSH 195
SSH 服務指紋識別 197
功能枚舉 199
缺省的和硬編碼的密鑰憑據 203
以不安全的方式生成主機密鑰 205
SSH 服務器軟件漏洞 206
Telnet 207
缺省的Telnet 密鑰憑據 208
Telnet 服務器軟件漏洞 208
IPMI 209
DNS 211
指紋識別 211
遞歸支持測試 212
已知的DNS 服務器漏洞 213
組播DNS 215
NTP 216
SNMP 218
滲透攻擊SNMP 220
SNMP community 字符串和口令破解 221
LDAP 225
LDAP 認證 226
LDAP 操作 228
LDAP 目錄結構 229
指紋識別與匿名綁定 230
口令暴力破解 232
獲取機密數據 233
LDAP 服務器實現機制缺陷 234
Kerberos 234
Kerberos 密鑰 237
票據格式 237
Kerberos 攻擊面 240
本地攻擊 240
未授權的遠程攻擊 246
Kerberos 實現缺陷 247
VNC 248
VNC 服務器攻擊 250
UNIX RPC 服務 250
手工查詢暴露的RPC 服務 252
RPC 服務漏洞 254
常見網絡服務評估回顧 255
服務加固與應對措施 256
第8 章 微軟服務評估 258
NetBIOS 名服務 259
SMB 262
微軟RPC 服務263
攻擊SMB 與RPC 264
繪制網絡攻擊面 264
通過SMB 進行匿名IPC 訪問 265
SMB 實現的安全漏洞 267
識別已暴露的RPC 服務 268
口令暴力破解 275
認證并進行訪問 277
過程自動化284
遠程桌面服務 284
口令暴力破解 285
評估傳輸層安全 285
RDP 實現的安全漏洞 287
微軟服務測試路線圖 287
微軟服務攻擊的應對措施 288
第9 章 電子郵件服務評估 290
電子郵件服務協(xié)議 290
SMTP 291
SMTP 服務“指紋”識別 292
繪制 SMTP 體系結構 293
枚舉支持的命令與擴展 297
可遠程利用的漏洞 300
用戶賬號枚舉 301
口令暴力破解 303
內容檢查機制欺騙 304
郵件安全功能檢查 306
經由SMTP 進行釣魚 309
POP3 312
口令暴力破解 313
IMAP 314
IMAP 服務指紋識別 314
口令暴力破解 315
已知的IMAP 服務器安全漏洞 315
郵件服務測試要點 315
郵件服務應對措施 317
第10 章 VPN 服務評估 318
IPsec 318
數據包格式319
ISAKMP、IKE 與IKEv2 320
可利用的IPsec 漏洞 325
PPTP 331
VPN 測試回顧 332
VPN 服務應對措施 333
第11 章 評估TLS 服務 335
TLS 機理 336
會話協(xié)商 336
密碼套件 340
密鑰交換和認證 342
TLS 認證 347
會話恢復 354
會話重新協(xié)商 354
壓縮 356
STARTTLS 356
理解TLS 漏洞 357
可利用的缺陷 358
TLS 實現缺陷 360
減輕TLS 暴露 362
評估TLS 端點 363
識別TLS 庫和版本 364
枚舉支持的協(xié)議和密碼套件 365
枚舉支持的功能和擴展 369
認證審查 372
TLS 端點壓力測試 374
手動訪問TLS 封裝的服務 375
TLS 服務評估回顧 376
TLS 強化 377
網絡應用加強 378
第12 章 Web 應用體系結構 379
Web 應用類型 379
Web 應用層次 381
表示層 381
傳輸層安全協(xié)議TLS 382
HTTP 383
內容分發(fā)網絡(CDN) 391
負載均衡器391
表示層數據格式 392
應用層 392
應用層數據格式 393
數據層 394
第13 章 Web 服務器評估 395
識別代理機制 396
枚舉有效主機 398
Web 服務器剖析 400
分析服務器響應 400
HTTP 標頭瀏覽 402
內容的抓取和研究 406
主動掃描 410
WAF 探測 410
服務器和應用框架特征鑒別 411
識別暴露的內容 412
限定Web 服務器漏洞 414
瀏覽暴露的內容 414
強力密碼研磨 416
研究支持的HTTP 方法 417
已知的Microsoft IIS 漏洞 420
已知的Apache HTTP 服務器漏洞 421
已知的Apache Coyote 漏洞 423
已知的Nginx 漏洞 424
Web 服務器加固 425
第14 章 評估Web 應用框架 426
框架和數據存儲剖析 427
理解常見的漏洞 430
PHP 430
PHP 管理控制臺 431
PHP CMS 包 434
Apache Tomcat 436
管理器應用437
已知的Tomcat 漏洞 438
攻擊Apache jServ 協(xié)議 439
JBoss 測試 440
基于HTTP 的服務器性能分析 441
Web 控制臺和調用器 442
識別MBeans 442
利用MBeans 444
使用RMI 分布式垃圾收集器 448
已知的JBoss 漏洞 448
自動的JBoss 掃描 449
Apache Struts 450
利用DefaultActionMapper 452
JDWP 453
Adobe ColdFusion 454
ColdFusion 分析 454
外在的管理接口 456
已知的ColdFusion 軟件缺陷 457
Apache Solr 漏洞 458
Django 460
Rails 461
使用一個應用的秘密令牌 463
Nodejs 464
Microsoft ASPNET 465
應用框架安全檢查列表 466
第15 章 評價數據存儲 468
MySQL 469
暴力密碼破解 470
授權的MySQL 攻擊 471
PostgreSQL 473
暴力密碼破解 474
認證的PostgreSQL 攻擊 475
Microsoft SQL Server 477
暴力密碼破解 478
授權并評價配置 478
Oracle 數據庫 480
與TNS 監(jiān)聽器交互 481
Oracle SID 破解 483
數據庫賬號密碼破解 483
認證Oracle 數據庫 485
特權提升和Pivoting 486
MongoDB 487
Redis 489
已知的漏洞490
分布式緩存 492
Apache Hadoop 493
NFS 494
Apple Filing 協(xié)議 496
iSCSI 498
數據存儲控制對策 499
附錄A 常見端口和消息類型 501
附錄B 漏洞信息源 506
附錄C 不安全的TLS 密碼套件 508
術語表 511
作者介紹 527
封面介紹 527