內容簡介
這是一本能同時幫助紅隊和藍隊建立完整攻擊和防御知識體系的著作,也是一本既能指導企業(yè)建設和完善網(wǎng)絡安全防御系統(tǒng),又能打造安全工程師個人安全能力護城河的著作。
全書以ATT&CK框架模型為基座,系統(tǒng)、詳細地講解了信息收集、隧道穿透、權限提升、憑據(jù)獲取、橫向滲透、持久化6大階段所涉及的技術原理、攻擊手段和防御策略。既能讓紅隊理解攻擊的本質、掌握實戰(zhàn)化的攻擊手段,又能讓藍隊看透紅隊的攻擊思路,從而構建更為強大的防御體系。
本書的宗旨是以攻促防、以戰(zhàn)訓戰(zhàn),所以書中精心整理了大量來自實踐的攻防案例,每個案例都提供了詳細的思路、具體的步驟,以及實戰(zhàn)中的經(jīng)驗、技巧和注意事項,盡可能讓讀者感受到真實的攻防對抗氛圍。
本書內容豐富,講解又極為細致,所以篇幅巨大,具體包含如下7個方面的內容。
(1)Windows安全基礎
詳細介紹Windows的安全認證機制(NTLM認證、Kerberos域認證)、協(xié)議(LLMNR、NetBIOS、WPAD、LDAP)和域的基礎知識。
(2)信息收集
詳細講解主機發(fā)現(xiàn)、Windows/Linux操作系統(tǒng)信息收集、組策略信息收集、域控相關信息收集、Exchange信息收集等各種信息收集手段。
(3)隧道穿透
全面、透徹講解隧道穿透技術基礎知識、利用多協(xié)議進行隧道穿透的方法、常見的隧道利用工具、以及檢測防護方法。
(4)權限提升
詳細講解內核漏洞提權、錯配漏洞提權、第三方服務提權等紅藍對抗中常用的提權手法,既講解這些手法在實際場景中的利用過程,又提供針對性的防御手段。
(5)憑據(jù)獲取
從攻擊和防御兩個維度,詳細講解主要的憑證獲取手法,包括軟件憑證獲取、本地憑證獲取、域內憑證等。
(6)橫向移動
全面分析利用任務計劃、遠程服務、組策略、WSUS、SCCM、Psexec、WMI等系統(tǒng)應用服務及協(xié)議進行橫向移動的原理與過程。
(7)持久化
既詳細講解紅隊常用的持久化手法,如Windows持久化、Linux持久化、Windows域權限維持等,又系統(tǒng)分析藍隊針對持久化攻擊的檢測和防御思路。
(1)作者資深:由360資深安全專家領銜,3位作者均在紅藍攻防領域有多年實戰(zhàn)經(jīng)驗,實戰(zhàn)演練成績卓著。
(2)前瞻性強:基于ATT&CK框架,系統(tǒng)地講解了紅藍對抗的各個階段,為讀者提供了一條清晰的攻防路徑。
(3)注重實戰(zhàn):結合真實攻防案例,內容更加貼近實戰(zhàn),讓讀者在理論與實戰(zhàn)之間找到平衡。
(4)雙重視角:既深入探討了紅隊的攻擊思路和手段,又為藍隊設計了一系列的防御策略。
(5)大量技巧:無論是隧道穿透、權限提升還是憑據(jù)獲取,都為讀者提供了詳盡的技巧和方法,讓復雜的技術問題變得簡單易懂。
(6)好評如潮:來自微軟、360、字節(jié)跳動、ChaMD5等企業(yè)和組織的15位安全專家高度評價并推薦。
Preface 前言
為什么要寫這本書
根據(jù)中國互聯(lián)網(wǎng)絡信息中心(CNNIC)發(fā)布的第51次《中國互聯(lián)網(wǎng)絡發(fā)展狀況統(tǒng)計報告》,截至2022年12月,我國網(wǎng)民規(guī)模為10.67億,互聯(lián)網(wǎng)普及率達75.6%。我國有潛力建設全球規(guī)模領先、應用滲透領先的數(shù)字社會。在此背景下,網(wǎng)絡安全事關國家安全和經(jīng)濟社會穩(wěn)定,事關廣大人民群眾利益。
當前,全球新一輪科技革命和產(chǎn)業(yè)變革深入推進,信息技術的發(fā)展日新月異,國內外的網(wǎng)絡安全形勢日趨嚴峻。2020~2023年,網(wǎng)絡安全攻擊持續(xù)增加,網(wǎng)絡攻擊威脅持續(xù)上升,各種網(wǎng)絡攻擊安全事件頻發(fā),網(wǎng)絡所面臨的安全威脅愈加多樣、復雜、棘手。在互聯(lián)互通的數(shù)字化鏈條中,任何一個漏洞或者隱患都有可能造成已有的安全防護網(wǎng)的破壞,給企業(yè)、機構等帶來信息安全風險甚至財產(chǎn)損失等。
面對愈演愈烈的網(wǎng)絡安全威脅,紅藍攻防對抗就成了網(wǎng)絡安全從業(yè)者在新的網(wǎng)絡安全形勢下保障國家網(wǎng)絡安全、防患于未然的行之有效的辦法之一。
本書即以為從業(yè)者講透紅藍對抗、助力行業(yè)水準提升為目標醞釀而出的。
本書是一本針對安全領域的紅藍攻防對抗的專業(yè)書,既能作為安全從業(yè)者在紅藍攻防對抗活動中的指導用書,又能成為企業(yè)安全部門構建縱深防御體系的參考指南。希望本書所分析、講述的紅藍雙方視角下的攻防對抗手法,能幫助各行業(yè)的網(wǎng)絡安全從業(yè)者增強實踐、知己知彼,從企業(yè)內部構建起安全防御體系。
本書所講內容僅限同行業(yè)者交流學習,不支持非法用途。
讀者對象
企業(yè)網(wǎng)絡安全部門的研究人員。
參加攻防對抗的紅隊與藍隊人員。
企業(yè)IT運維人員。
網(wǎng)絡安全相關專業(yè)的在校師生。
其他對網(wǎng)絡安全感興趣的讀者。
如何閱讀本書
本書是業(yè)內第一本基于ATT&CK攻防矩陣的專業(yè)領域圖書,為安全領域的從業(yè)者系統(tǒng)講解了紅隊視角下的安全防護體系的突破以及藍隊視角下的安全防護體系建設。本書一共分為7章,每章相互獨立,讀者可根據(jù)自身情況按需閱讀。
第1章詳細地介紹了紅藍對抗實戰(zhàn)中常用的Windows安全認證機制和協(xié)議,以及關于域的基礎知識。
第2章逐一介紹了主機發(fā)現(xiàn)、Windows/Linux主機信息收集、組策略信息收集、域信息收集、Exchange信息收集等多種信息收集手法。在實際內網(wǎng)攻防對抗中,作為紅隊安全測試人員,我們只有對整個網(wǎng)絡進行全面的信息收集,才能在后續(xù)的對抗中游刃有余;而作為藍隊防守人員,我們只有深入了解潛在攻擊者可能會使用的信息收集手段,才能有效防御、嚴密防備,從而在攻防對抗中占據(jù)優(yōu)勢。
第3章全面講解了隧道穿透技術,同時融入大量內網(wǎng)穿透實戰(zhàn)案例,為紅藍兩隊人員分別提供了常用攻擊手法和檢測防護措施。
第4章主要分析了紅隊人員在實網(wǎng)攻防對抗中經(jīng)常使用的Windows與Linux系統(tǒng)的提權手法,如內核漏洞提權、錯配提權、第三方服務提權等,同時為藍隊人員提供了防御提權攻擊和進行溯源分析的有效措施,使兩隊人員能夠在該環(huán)節(jié)的實戰(zhàn)中更得心應手。
第5章從軟件憑據(jù)獲取、本地憑據(jù)獲取、域內憑據(jù)等多個維度剖析了紅隊人員在紅藍攻防對抗中經(jīng)常使用的憑據(jù)獲取手法。藍隊人員也能從中獲得相應的檢測防護建議。
第6章主要通過實戰(zhàn)來具體地剖析紅隊人員如何利用計劃任務、遠程服務、組策略、WSUS、SCCM、PsExec、WMI等系統(tǒng)應用服務及協(xié)議進行橫向滲透。本章內容能引發(fā)安全領域從業(yè)者對內網(wǎng)安全體系建設的更多思考。
第7章主要分析了紅隊人員在持久化利用上經(jīng)常使用的手法,如Windows單機持久化、Linux單機持久化、Windows域權限維持等,并詳細講解了如何對這些持久化手法進行檢測和防御。通過本章內容,讀者能夠掌握持久化利用的原理、實現(xiàn)過程以及相應防御方式。
勘誤和支持
本書經(jīng)過幾番修改和自查,終得定稿。但我們的寫作時間和技術水平畢竟有限,書中難免有疏忽和不足的地方,懇請讀者批評指正。各位讀者可以通過郵箱2637745396@qq.com與我們聯(lián)系。如果你有更多的寶貴意見,也歡迎聯(lián)系我們。期待能得到你的支持與反饋。
致謝
志合者,不以山海為遠。感謝五湖四海的友人們在我們迷茫的深夜給予我們鼓勵和支持。感謝劉思雨、王太愚、草老師、daiker、謝公子、王世超、于書振、李樹新、k8gege、何佳歡、3gstudent、klion、KLI、指尖浮生、李東東、成鵬理、韓昌信、史曉康、傅奎、
郭英達、王祥剛、周鵬、肖輝、高玉慧、邵國飛、馬志偉、王海洋、徐香香、劉鑫、王新龍、路人王小明、汪汪汪、北極星、K1ey、Se7en、Xiaoli、PLZ、武宇航、張艷、王文矅、黨艷輝、楊秀璋、郭鎮(zhèn)鑫對本書的建議。
與此同時,感謝我們自己的執(zhí)著,在無數(shù)個奮筆疾書的夜晚沒有放棄,堅持熱愛。
目錄 Contents
贊譽
序一
序二
序三
前言
第1章 Windows安全基礎1
1.1 Windows認證基礎知識1
1.1.1 Windows憑據(jù)1
1.1.2 Windows訪問控制模型2
1.1.3 令牌安全防御10
1.2 UAC13
1.2.1 UAC原理概述13
1.2.2 UAC級別定義13
1.2.3 UAC觸發(fā)條件15
1.2.4 UAC用戶登錄過程16
1.2.5 UAC虛擬化18
1.3 Windows安全認證機制18
1.3.1 什么是認證18
1.3.2 NTLM本地認證19
1.3.3 NTLM網(wǎng)絡認證22
1.3.4 Kerberos域認證25
1.4 Windows常用協(xié)議28
1.4.1 LLMNR28
1.4.2 NetBIOS31
1.4.3 Windows WPAD34
1.5 Windows WMI詳解36
1.5.1 WMI簡介36
1.5.2 WQL36
1.5.3 WMI Client40
1.5.4 WMI遠程交互41
1.5.5 WMI事件42
1.5.6 WMI攻擊45
1.5.7 WMI攻擊檢測46
1.6 域46
1.6.1 域的基礎概念46
1.6.2 組策略49
1.6.3 LDAP56
1.6.4 SPN59
1.7 本章小結65
第2章 信息收集66
2.1 主機發(fā)現(xiàn)66
2.1.1 利用協(xié)議主動探測主機存活66
2.1.2 被動主機存活探測71
2.1.3 內網(wǎng)多網(wǎng)卡主機發(fā)現(xiàn)76
2.2 Windows主機信息收集檢查清單78
2.3 Linux主機信息收集檢查清單81
2.4 組策略信息收集81
2.4.1 本地組策略收集81
2.4.2 域組策略收集81
2.4.3 組策略存儲收集83
2.4.4 組策略對象收集86
2.5 域信息收集90
2.5.1 域控制器收集90
2.5.2 域DNS信息枚舉92
2.5.3 SPN掃描96
2.5.4 域用戶名獲取98
2.5.5 域用戶定位102
2.6 net session與net use利用110
2.6.1 net session利用110
2.6.2 net use利用112
2.7 Sysmon檢測117
2.8 域路徑收集分析119
2.8.1 域分析之BloodHound119
2.8.2 域分析之ShotHound137
2.8.3 域分析之CornerShot142
2.9 Exchange信息收集146
2.9.1 Exchange常見接口146
2.9.2 Exchange常見信息收集146
2.9.3 Exchange攻擊面擴展收集
。ū┝ζ平猓154
2.9.4 Exchange郵件列表導出156
2.10 本章小結162
第3章 隧道穿透163
3.1 隧道穿透技術詳解163
3.1.1 正向連接163
3.1.2 反向連接163
3.1.3 端口轉發(fā)164
3.1.4 端口復用165
3.1.5 內網(wǎng)穿透165
3.1.6 代理和隧道的區(qū)別165
3.1.7 常見隧道轉發(fā)場景165
3.1.8 常見隧道穿透分類166
3.2 內網(wǎng)探測協(xié)議出網(wǎng)166
3.2.1 TCP/UDP探測出網(wǎng)166
3.2.2 HTTP/HTTPS探測出網(wǎng)169
3.2.3 ICMP探測出網(wǎng)171
3.2.4 DNS探測出網(wǎng)171
3.3 隧道利用方法172
3.3.1 常規(guī)反彈172
3.3.2 加密反彈175
3.3.3 端口轉發(fā)177
3.3.4 SOCKS隧道代理180
3.4 利用多協(xié)議方式進行隧道穿透182
3.4.1 利用ICMP進行隧道穿透182
3.4.2 利用DNS協(xié)議進行隧道穿透187
3.4.3 利用RDP進行隧道穿透192
3.4.4 利用IPv6進行隧道穿透195
3.4.5 利用GRE協(xié)議進行隧道穿透 197
3.4.6 利用HTTP進行隧道穿透200
3.4.7 利用SSH協(xié)議進行隧道穿透210
3.5 常見的隧道穿透利用方式215
3.5.1 通過EW進行隧道穿透215
3.5.2 通過Venom進行隧道穿透224
3.5.3 通過Termite進行隧道穿透231
3.5.4 通過frp進行隧道穿透236
3.5.5 通過NPS進行隧道穿透244
3.5.6 通過ngrok進行內網(wǎng)穿透250
3.6 文件傳輸技術252
3.6.1 Windows文件傳輸技巧詳解252
3.6.2 Linux文件傳輸技巧詳解261
3.7 檢測與防護266
3.7.1 ICMP隧道流量檢測與防護266
3.7.2 DNS隧道流量檢測與防護267
3.7.3 HTTP隧道流量檢測與防護267
3.7.4 RDP隧道流量檢測與防護267
3.8 本章小結268
第4章 權限提升269
4.1 Windows用戶權限簡介269
4.2 Windows單機權限提升270
4.2.1 利用Windows內核漏洞
進行提權270
4.2.2 利用Windows錯配進行提權273
4.2.3 DLL劫持285
4.2.4 訪問令牌提權294
4.2.5 獲取TrustedInstaller權限298
4.3 利用第三方服務提權300
4.3.1 利用MySQL UDF進行提權300
4.3.2 利用SQL Server進行提權304
4.3.3 利用Redis進行提權309
4.4 利用符號鏈接進行提權313
4.4.1 符號鏈接313
4.4.2 符號鏈接提權的原理314
4.4.3 CVE-2020-0668316
4.5 NTLM中繼318
4.5.1 通過LLMNR/NBNS欺騙
獲取NTLM哈希320
4.5.2 通過desktop.ini獲取哈希323
4.5.3 自動生成有效載荷325
4.5.4 中繼到SMB326
4.6 Service提權至SYSTEM
(土豆攻擊)328
4.6.1 熱土豆328
4.6.2 爛土豆331
4.6.3 多汁土豆333
4.6.4 甜土豆334
4.7 Linux權限提升334
4.7.1 Linux權限基礎334
4.7.2 Linux本機信息收集337
4.7.3 利用Linux漏洞進行提權340
4.7.4 Linux錯配提權342
4.8 Windows Print Spooler漏洞
詳解及防御346
4.8.1 Windows Print Spooler簡介346
4.8.2 CVE-2020-1048347
4.8.3 CVE-2020-1337350
4.9 繞過權限限制351
4.9.1 繞過 UAC351
4.9.2 繞過AppLocker361
4.9.3 繞過AMSI374
4.9.4 繞過Sysmon383
4.9.5 繞過ETW387
4.9.6 繞過PowerShell Ruler391
4.10 本章小結405
第5章 憑據(jù)獲取406
5.1 Windows單機憑據(jù)獲取406
5.1.1 憑據(jù)獲取的基礎知識406
5.1.2 通過SAM文件獲取
Windows憑據(jù)407
5.1.3 通過Lsass進程獲取
Windows憑據(jù)413
5.1.4 繞過Lsass進程保護419
5.1.5 釣魚獲取Windows憑據(jù)430
5.2 域憑據(jù)獲取 434
5.2.1 利用NTDS.DIT獲取
Windows域哈希434
5.2.2 注入Lsass進程獲取域
用戶哈希440
5.2.3 DCSync利用原理441
5.2.4 利用LAPS獲取Windows域
憑據(jù)449
5.2.5 利用備份組導出域憑據(jù)450
5.3 系統(tǒng)內軟件憑據(jù)獲取455
5.3.1 收集瀏覽器密碼455
5.3.2 使用開源程序獲取瀏覽器憑據(jù)457
5.3.3 獲取常見的運維管理軟件密碼458
5.4 獲取Windows哈希的技巧461
5.4.1 利用藍屏轉儲機制獲取哈希461
5.4.2 利用mstsc獲取RDP憑據(jù)464
5.4.3 通過Hook獲取憑據(jù)466
5.4.4 使用Physmem2profit遠程
轉儲Lsass進程469
5.5 Linux憑據(jù)獲取470
5.5.1 Shadow文件詳解470
5.5.2 利用Strace記錄密碼472
5.6 憑據(jù)防御473
5.7 本章小結473
第6章 橫向滲透474
6.1 常見的系統(tǒng)傳遞攻擊474
6.1.1 哈希傳遞474
6.1.2 票據(jù)傳遞477
6.1.3 密鑰傳遞482
6.1.4 證書傳遞484
6.2 利用Windows計劃任務進行
橫向滲透485
6.2.1 at命令485
6.2.2 schtasks命令487
6.3 利用遠程服務進行橫向滲透489
6.3.1 利用SC創(chuàng)建遠程服務后進行
橫向滲透489
6.3.2 利用SCShell進行橫向滲透491
6.4 利用PsExec進行橫向滲透492
6.4.1 利用PsExec獲取交互式會話493
6.4.2 建立IPC$連接,獲取交互式
會話494
6.5 利用WinRM進行橫向滲透494
6.5.1 利用WinRS建立交互式會話495
6.5.2 利用Invoke-Command遠程
執(zhí)行命令496
6.5.3 利用Enter-PSSession建立
交互式會話497
6.6 利用WMI進行橫向滲透499
6.6.1 利用WMIC進行信息收集500
6.6.2 利用wmiexec.py獲取
交互式會話503
6.6.3 利用wmiexec.vbs遠程
執(zhí)行命令503
6.6.4 利用WMIHACKER實現(xiàn)
命令回顯504
6.7 利用DCOM進行橫向滲透504
6.7.1 利用MMC20.Application
遠程控制MMC506
6.7.2 利用ShellWindows遠程
執(zhí)行命令508
6.7.3 利用Dcomexec.py獲得
半交互shell509
6.7.4 其他DCOM組件510
6.8 利用RDP進行橫向滲透510
6.8.1 針對RDP的哈希傳遞510
6.8.2 RDP會話劫持512
6.8.3 使用SharpRDP進行橫向滲透514
6.9 利用MSSQL數(shù)據(jù)庫進行橫向滲透516
6.9.1 利用sp_oacreate執(zhí)行命令516
6.9.2 利用CLR執(zhí)行命令518
6.9.3 利用WarSQLKit擴展命令523
6.10 利用組策略進行橫向滲透524
6.10.1 本地組策略與域組策略的區(qū)別524
6.10.2 使用組策略推送MSI525
6.10.3 使用域組策略創(chuàng)建計劃任務529
6.10.4 利用登錄腳本進行橫向滲透534
6.11 利用WSUS進行橫向滲透537
6.11.1 WSUS利用原理537
6.11.2 WSUS橫向滲透538
6.11.3 WSUS檢測及防護542
6.12 利用SCCM進行橫向滲透543
6.13 本章小結556
第7章 持久化557
7.1 Windows單機持久化557
7.1.1 Windows RID劫持557
7.1.2 利用計劃任務進行權限維持562
7.1.3 利用Windows注冊表進行
權限維持563
7.1.4 利用映像劫持進行權限維持566
7.1.5 利用CLR劫持進行權限維持569
7.1.6 利用Telemetry服務進行
權限維持571
7.1.7 利用WMI進行權限維持573
7.1.8 遠程桌面服務影子攻擊579
7.2 Windows域權限維持583
7.2.1 黃金票據(jù)583
7.2.2 白銀票據(jù)589
7.2.3 黃金票據(jù)與白銀票據(jù)的區(qū)別597
7.2.4 利用DSRM進行域權限維持597
7.2.5 利用DCShadow進行域
權限維持600
7.2.6 利用SID History進行域
權限維持606
7.2.7 利用AdminSDHolder進行域
權限維持609
7.2.8 注入Skeleton Key進行域
權限維持613
7.3 Linux單機持久化614
7.3.1 利用Linux SUID進行權限維持614
7.3.2 利用Linux計劃任務進行
權限維持615
7.3.3 利用Linux PAM創(chuàng)建后門616
7.3.4 利用SSH公鑰免密登錄622
7.3.5 利用Vim創(chuàng)建后門623
7.3.6 Linux端口復用625
7.3.7 利用Rootkit進行權限維持627
7.4 持久化防御632
7.5 本章小結632