Windows安全內幕:身份驗證、授權與審計(AAA)核心技術詳解
詹姆斯·福肖(James Forshaw)
- 出版商: 人民郵電
- 出版日期: 2026-07-01
- 定價: $893
- 售價: $892
- 語言: 簡體中文
- 頁數: 464
- ISBN: 7115700133
- ISBN-13: 9787115700131
-
相關分類:
資訊安全
- 此書翻譯自: Windows Security Internals: A Deep Dive Into Windows Authentication, Authorization, and Auditing (Paperback)
下單後立即進貨 (約4週~6週)
買這商品的人也買了...
-
$504極限黑客攻防:CTF 賽題揭秘 -
$504API 安全技術與實戰
商品描述
Windows是全球應用廣泛的操作系統,安全機制隨技術發展持續疊代升級。由於系統閉源且采用面向API的架構,其底層安全原理的探究門檻較高,長期是行業內的研究難點。如今Windows安全體系日趨復雜,也成為網絡攻擊的主要目標,深入掌握其安全機制對網絡安全防護至關重要。
本書共分為3部分,第1部分從編程視角梳理Windows操作系統基礎,為後續安全知識學習搭建框架;第2部分聚焦Windows內核核心安全組件——安全參考監視器,詳解訪問控制全流程相關原理與實現;第3部分深入剖析Windows身份驗證體系,涵蓋身份驗證結構、各類驗證協議及安全包等關鍵內容,並配套PowerShell實操示例助力理解。此外,本書還有兩個附錄,提供了Windows安全相關的配置細節和擴展學習資源。
本書面向所有從事Windows安全相關工作的專業人員,包括希望保障產品安全性的Windows軟件開發人員、負責企業級Windows安全防護的系統管理員,以及致力於挖掘操作系統安全漏洞的安全研究人員,是學習Windows安全內核知識、開展相關研究與實踐的實用參考資料。
作者簡介
James Forshaw(詹姆斯·福肖),Google Project Zero團隊的知名計算機安全專家,擁有超過20年的微軟Windows及其他產品安全問題分析與漏洞利用研究經驗,已在微軟平臺上發現數百個公開披露的漏洞。他的研究成果常被業界廣泛引用,並通過博客、國際頂級安全會議演講以及原創工具進行呈現,深刻影響並啟發了眾多業內研究人員。在從事漏洞挖掘與安全突破研究之余,James也以防禦者的身份,為多個團隊提供安全設計咨詢,並參與優化Chromium在 Windows平臺上的沙箱機制,為全球數十億用戶提供安全保障。
目錄大綱
第1章 設置PowerShell測試環境 ............ 1
1.1 選擇PowerShell版本................... 1
1.2 配置PowerShell ........................... 1
1.3 PowerShell語言概述 ................... 3
1.3.1 理解類型、變量和表達式 ... 3
1.3.2 執行命令 ............................. 6
1.3.3 發現命令並獲取幫助 ......... 7
1.3.4 定義函數 ............................. 9
1.3.5 顯示和操作對象 ............... 10
1.3.6 過濾、排序和分組對象 ... 13
1.3.7 導出數據 ........................... 15
1.4 總結 ............................................. 16
第2章 Windows內核 ............................... 17
2.1 Windows內核執行體 ................. 17
2.2 安全參考監視器 ......................... 18
2.3 對象管理器 ................................. 20
2.3.1 對象類型 ........................... 20
2.3.2 對象管理器命名空間 ....... 21
2.3.3 系統調用 ........................... 22
2.3.4 NTSTATUS狀態碼 .......... 25
2.3.5 對象句柄 ........................... 27
2.3.6 Query和Set信息系統調用 ............................. 33
2.4 輸入/輸出管理器 ........................ 36
2.5 進程和線程管理器 ..................... 38
2.6 內存管理器 ................................. 39
2.6.1 NtVirtualMemory系列命令 ........................ 40
2.6.2 節對象 ............................... 42
2.7 代碼完整性 ................................. 44
2.8 高級本地過程調用 ..................... 45
2.9 配置管理器 ................................. 45
2.10 示例實踐 ................................... 46
2.10.1 根據名稱查找已打開的句柄 .......................... 46
2.10.2 查找共享對象 ................. 47
2.10.3 修改映射節 ..................... 48
2.10.4 查找可寫可執行內存 ..... 49
2.11 總結 ........................................... 50
第3章 用戶模式應用程序 ......................... 51
3.1 Win32與用戶模式Windows API ........................ 51
3.1.1 加載新庫 ........................... 52
3.1.2 查看導入的API ................ 54
3.1.3 搜索DLL .......................... 55
3.2 Win32 GUI .................................. 57
3.2.1 GUI內核資源 ................... 57
3.2.2 窗口消息 ........................... 59
3.2.3 控制臺會話 ....................... 60
3.3 比較Win32 API和系統調用 ..... 62
3.4 Win32註冊表路徑 ..................... 65
3.4.1 打開註冊表項 ................... 66
3.4.2 列出註冊表的內容 ........... 66
3.5 DOS設備路徑 ............................ 67
3.5.1 路徑類型 ........................... 69
3.5.2 最大路徑長度 ................... 70
3.6 進程創建 ..................................... 71
3.6.1 命令行解析 ....................... 72
3.6.2 Shell API ............................ 73
3.7 系統進程 ..................................... 75
3.7.1 會話管理器 ....................... 75
3.7.2 Windows登錄進程 ........... 75
3.7.3 本地安全機構子系統 ....... 76
3.7.4 服務控制管理器 ............... 76
3.8 示例實踐 ..................................... 77
3.8.1 查找導入特定API的可執行文件 ..................... 77
3.8.2 查找隱藏的註冊表鍵或值 ........................... 77
3.9 總結 ............................................. 79
第4章 安全訪問令牌 ................................. 80
4.1 主令牌 ......................................... 80
4.2 模擬令牌 ..................................... 84
4.2.1 安全服務質量 ................... 84
4.2.2 顯式模擬令牌 ................... 86
4.3 令牌類型轉換 ............................. 87
4.4 偽令牌句柄 ................................. 88
4.5 令牌組 ......................................... 89
4.5.1 Enabled、EnabledByDefault和Mandatory .................... 89
4.5.2 LogonId ............................. 90
4.5.3 Owner ................................ 90
4.5.4 UseForDenyOnly .............. 90
4.5.5 Integrity與IntegrityEnabled ................ 91
4.5.6 Resource ............................ 92
4.5.7 設備組 ............................... 92
4.6 特權 ............................................. 92
4.7 沙箱令牌 ..................................... 95
4.7.1 受限令牌 ........................... 95
4.7.2 寫入受限令牌 ................... 97
4.7.3 AppContainer和LowBox令牌 ........................... 97
4.8 什麼是管理員賬戶 ................... 100
4.9 用戶賬戶控制 ........................... 101
4.9.1 關聯令牌和提升類型 ..... 103
4.9.2 UI訪問 ............................ 105
4.9.3 虛擬化 ............................. 106
4.10 安全屬性 ................................. 106
4.11 創建令牌 ................................. 108
4.12 令牌分配 ................................. 109
4.12.1 分配主令牌 ................... 109
4.12.2 分配模擬令牌 ............... 111
4.13 示例實踐 ............................. 113
4.13.1 查找具有UI訪問權限的進程 .......................... 113
4.13.2 查找可用於模擬的令牌句柄 ................................ 114
4.13.3 移除管理員特權 ........... 115
4.14 總結 ......................................... 115
第5章 安全描述符 ................................... 117
5.1 安全描述符的結構 ................... 117
5.2 SID的結構 ................................ 119
5.3 絕對和相對安全描述符 ........... 121
5.4 訪問控制列表頭部和條目 ....... 123
5.4.1 列表頭部 ......................... 124
5.4.2 ACE列表 ........................ 125
5.5 構造與操作安全描述符 ........... 127
5.5.1 創建新的安全描述符 ..... 128
5.5.2 排序ACE ........................ 129
5.5.3 格式化安全描述符 ......... 130
5.5.4 相對安全描述符的雙向轉換 ....................... 133
5.6 安全描述符定義語言 ............... 135
5.7 示例實踐 ................................... 142
5.7.1 手動解析二進制SID ..... 142
5.7.2 枚舉SID ......................... 143
5.8 總結 ............................. 145
第6章 讀取並分配安全描述符 ............... 146
6.1 讀取安全描述符 ....................... 146
6.2 分配安全描述符 ....................... 148
6.2.1 在資源創建過程中分配安全描述符 ..................... 149
6.2.2 為已存在的資源分配安全描述符 ............................. 171
6.3 Win32安全API ........................ 174
6.4 服務器安全描述符和復合ACE ........................................... 178
6.5 繼承行為總結 ........................... 180
6.6 示例實踐 ................................... 181
6.6.1 查找對象管理器資源的所有者 .......................... 181
6.6.2 修改資源的所有權 ......... 183
6.7 總結 ........................................... 184
第7章 訪問檢查過程 ............................... 185
7.1 執行訪問檢查 ........................... 185
7.1.1 內核模式訪問檢查 ......... 185
7.1.2 訪問模式 ......................... 186
7.1.3 PowerShell命令Get-NtGrantedAccess ...... 189
7.2 PowerShell中的訪問檢查過程 ......................................190
7.2.1 定義訪問檢查函數 ......... 191
7.2.2 執行強制訪問檢查 ......... 192
7.2.3 執行令牌訪問檢查 ......... 200
7.2.4 執行自主訪問檢查 ......... 203
7.3 沙箱機制 ................................... 206
7.3.1 受限令牌 ......................... 206
7.3.2 LowBox令牌 .................. 207
7.4 企業訪問檢查 ........................... 210
7.4.1 對象類型訪問檢查 ......... 211
7.4.2 集中訪問策略 ................. 216
7.5 示例實踐 ................................... 221
7.5.1 使用Get-PSGrantedAccess命令 ..................... 221
7.5.2 計算資源的授予訪問權限 ......................... 223
7.6 總結 ........................................... 224
第8章 訪問檢查的其他應用場景 ........... 225
8.1 遍歷檢查 ................................... 225
8.1.1 SeChangeNotifyPrivilege特權 ....................... 226
8.1.2 受限檢查 ......................... 227
8.2 句柄復制的訪問檢查 ............... 228
8.3 沙箱令牌檢查 ........................... 231
8.4 自動化訪問檢查 ....................... 233
8.5 示例實踐 ................................... 236
8.5.1 簡化對象的訪問檢查 ..... 236
8.5.2 查找可寫的Section對象 ................................. 236
8.6 總結 ........................................... 237
第9章 安全審計 ....................................... 238
9.1 安全事件日誌 ........................... 238
9.1.1 配置系統審計策略 ......... 239
9.1.2 配置每用戶的審計策略 .... 241
9.2 審計策略安全 ........................... 242
9.2.1 配置資源的SACL .......... 244
9.2.2 配置全局SACL .............. 247
9.3 示例實踐 ................................... 248
9.3.1 驗證審計訪問的安全性 ... 248
9.3.2 查找包含審計ACE的資源 ................................. 249
9.4 總結 ........................................... 250
第10章 Windows身份驗證 ................... 251
10.1 域身份驗證 ............................. 251
10.1.1 本地身份驗證 ............... 252
10.1.2 企業網絡域 ................... 252
10.1.3 域林 ............................... 253
10.2 本地域配置 ............................. 255
10.2.1 用戶數據庫 ................... 256
10.2.2 LSA策略數據庫 .......... 259
10.3 遠程LSA服務 ....................... 261
10.3.1 SAM遠程服務 ............. 262
10.3.2 域策略遠程服務 ........... 267
10.4 SAM和SECURITY數據庫 ... 272
10.4.1 通過註冊表訪問SAM數據庫 ....................... 273
10.4.2 查看SECURITY數據庫 ....................... 281
10.5 示例實踐 ................................. 283
10.5.1 RID循環遍歷 ............... 283
10.5.2 強制用戶更改密碼 ....... 284
10.5.3 提取所有本地用戶哈希...................... 285
10.6 總結 ......................................... 287
第11章 活動目錄 ..................................... 288
11.1 活動目錄簡史 ......................... 288
11.2 使用PowerShell探索活動目錄域............................ 289
11.2.1 遠程服務器管理工具 ... 289
11.2.2 林和域的基本信息 ....... 290
11.2.3 用戶 ............................... 291
11.2.4 組 ................................... 292
11.2.5 計算機 ........................... 293
11.3 對象和可分辨名稱 ................. 294
11.3.1 枚舉目錄對象 ............... 295
11.3.2 訪問其他域中的對象 ... 297
11.4 架構 ......................................... 298
11.4.1 查看架構 ....................... 299
11.4.2 訪問安全屬性 ............... 300
11.5 安全描述符 ............................. 302
11.5.1 查詢目錄對象的安全描述符 ........................ 302
11.5.2 為新目錄對象分配安全描述符 ................ 304
11.5.3 為現有對象分配安全描述符 .................... 307
11.5.4 檢查安全描述符的繼承安全來源 ....................... 309
11.6 訪問檢查 ................................. 309
11.6.1 創建對象 ....................... 310
11.6.2 刪除對象 ....................... 312
11.6.3 列出對象 ....................... 312
11.6.4 讀取和寫入屬性 ........... 313
11.6.5 檢查多個屬性 ............... 314
11.6.6 分析屬性集 ................... 315
11.6.7 檢查控制訪問權限 ....... 319
11.6.8 分析驗證寫入訪問權限 ........................... 320
11.6.9 訪問SELF SID .............. 321
11.6.10 執行額外的安全檢查 .... 322
11.7 聲明與集中訪問策略 ............. 324
11.8 組策略 ..................................... 326
11.9 示例實踐 ................................. 328
11.9.1 構建授權上下文 ........... 328
11.9.2 收集對象信息 ............... 331
11.9.3 執行訪問檢查 ............... 332
11.10 總結 ....................................... 336
第12章 交互式身份驗證 ......................... 337
12.1 創建用戶桌面 ......................... 337
12.2 LsaLogonUser API .................. 339
12.2.1 本地身份驗證 ............... 340
12.2.2 域身份驗證 ................... 341
12.2.3 登錄會話和控制臺會話 ............................... 343
12.2.4 令牌創建 ....................... 345
12.3 從PowerShell中調用LsaLogonUser API .................. 347
12.4 使用令牌創建新進程 ............. 349
12.5 服務登錄類型 ......................... 350
12.6 示例實踐 ................................. 351
12.6.1 測試權限和登錄賬戶權限 ............................... 352
12.6.2 在其他控制臺會話中創建進程 ....................... 353
12.6.3 虛擬賬戶身份驗證 ....... 354
12.7 總結 ......................................... 356
第13章 網絡身份驗證 ............................ 357
13.1 NTLM網絡身份驗證 ............. 358
13.1.1 使用PowerShell實現NTLM身份驗證 ........... 359
13.1.2 密碼學衍生過程 ........... 365
13.1.3 直通身份驗證 ............... 367
13.1.4 本地環回身份驗證 ....... 368
13.1.5 替代客戶端憑據 ........... 370
13.2 NTLM中繼攻擊 ..................... 371
13.2.1 攻擊概述 ....................... 372
13.2.2 活動服務器質詢 ........... 373
13.2.3 簽名和密封 ................... 373
13.2.4 目標名稱 ....................... 375
13.2.5 通道綁定 ....................... 376
13.3 示例實踐 ................................. 377
13.3.1 概述 ............................... 377
13.3.2 代碼模塊 ....................... 378
13.3.3 服務器實現 ................... 381
13.3.4 客戶端實現 ................... 383
13.3.5 NTLM身份驗證測試 ... 385
13.4 總結 ........................................ 386
第14章 Kerberos .................................... 387
14.1 使用Kerberos進行交互式身份驗證 ........................... 387
14.1.1 初始用戶身份驗證 ....... 388
14.1.2 網絡服務身份驗證 ....... 392
14.2 在PowerShell中執行Kerberos身份驗證 .................... 394
14.3 解密AP-REQ消息 ................. 397
14.4 解密AP-REP消息 ................. 403
14.5 跨域身份驗證 ......................... 405
14.6 Kerberos委派 ......................... 406
14.6.1 無約束委派 ................... 407
14.6.2 約束委派 ....................... 411
14.7 用戶對用戶Kerberos身份驗證 ................................ 416
14.8 示例實踐 ................................. 419
14.8.1 查詢Kerberos票據緩存 ............................... 419
14.8.2 簡單的Kerberoasting攻擊 ......................... 420
14.9 總結 ......................................... 422
第15章 協商身份驗證與其他安全包 ..... 423
15.1 安全緩沖區 ............................. 423
15.1.1 在身份驗證上下文中使用緩沖區 ................... 424
15.1.2 在簽名與密封中使用緩沖區 ........................... 425
15.2 協商協議 ................................. 426
15.3 不常見的安全包 ..................... 428
15.3.1 安全通道 ....................... 428
15.3.2 CredSSP ......................... 432
15.4 遠程憑據防護與受限管理員模式 ........................ 434
15.5 憑證管理器 ............................. 435
15.6 額外的請求屬性標誌 ............. 438
15.6.1 匿名會話 ....................... 438
15.6.2 身份令牌 ....................... 439
15.7 LowBox令牌下網絡身份驗證 .............................. 440
15.7.1 使用企業身份驗證功能進行身份驗證 .............. 441
15.7.2 對已知Web代理進行身份驗證 ............................ 441
15.7.3 使用顯式憑據進行身份驗證 ....................... 442
15.8 身份驗證審計事件日誌 ......... 444
15.9 示例實踐 ................................. 447
15.9.1 確定身份驗證失敗的原因 ....................... 447
15.9.2 使用安全通道提取服務器的TLS證書 .................. 450
15.10 總結 ....................................... 452
15.11 最後的思考 ........................... 452
附錄A 搭建供測試使用的Windows域網絡............................ 453
附錄B SDDL SID別名映射 .................... 462

