本書將分為三大部分,首先介紹內網滲透技術中涉及到的各類基礎概念,并介紹攻擊者視角中的入侵生命周期流程。其次進行環境搭建準備,并介紹各類常用工具的使用。z后通過9套內網環境的高強度實戰訓練,系統性的介紹和實踐內網滲透過程中的各個環節及對應操作手段,快速掌握大量的內網滲透實戰技能。
(1)作者背景權威:美創科技已成為國內數據安全領域代表企業,本書正是由美創科技的創始人兼CEO及第59號安全實驗室專家等一線安全從業者聯合撰寫。
(2)實戰經驗豐富:美創科技在18年間廣泛服務于政府、醫療、金融、能源、運營商等各大行業的企業,面對各種規模及復雜度的業務都有豐富的成功案例,旗下專家多年來積累了大量的一線安全項目實戰經驗。
(3)理論體系創新:基于美創的入侵生命周期系統地梳理內網滲透全流程,串聯7大階段,覆蓋20余種滲透測試工具、60多種攻防手段。
(4)實操指導詳細:靶場模擬教學,針對9個迥異的內網環境進行滲透實戰,對于解決企業和個人面臨的網絡安全問題具有實效。
(5)安全大咖力薦:知名教授紀守領、任一支,傳奇黑客黑哥、張迅迪,及眾多安全圈內專家高度評價并力薦。
Preface前 言
為什么要寫這本書
當今,網絡系統面臨著越來越嚴峻的安全挑戰。在眾多的安全挑戰中,一種有組織、有特定目標、長時間持續的新型網絡攻擊日益猖獗,國際上常稱之為APT(Advanced Persistent Threat,高級持續性威脅)攻擊。傳統的滲透測試從外網發起攻擊,并以攻破單臺主機為目標。與之相比,APT攻擊在技術上更加系統地實現了對目標內網主機的大批量控制,從而使業內對內網滲透技術的關注度提高到了一個空前的高度。
為了更好地防范APT攻擊,網絡安全從業人員需要在原有的滲透測試技術的基礎上,更加深入地了解內網滲透領域的技術知識及實戰技能,才能針對APT攻擊有的放矢地進行防御,有效提升組織的網絡安全能力。
在需求迫切的行業背景下,現有的圖書及教程大多仍停留在概念介紹和知識普及上,而眾所周知,網絡安全是一項需要通過長期實操和練習來獲得經驗的實踐性技術。于是,我們創作了本書,精心挑選了9個場景各異的內網環境,累計涉及30多臺目標主機,遵循從零開始、由淺入深的設計理念,帶領讀者全面而系統地進行內網滲透攻防實戰訓練,幫助讀者快速了解內網滲透技術知識,并掌握對應的實戰技能。
本書所有實踐主機環境均為靶機環境,即專為網絡安全實踐所設計的脆弱性主機,因此在實踐過程中不會有任何真實業務受到損害,能滿足網絡安全實踐中最為重要的法律合規
要求。
讀者對象
本書適用于具有網絡安全攻防實踐需求的多類受眾,包括以下讀者群體:
網絡安全技術的初學者;
企業中的網絡安全工程師;
網絡安全相關專業的在校學生及教師;
其他對網絡安全攻防感興趣且具備計算機基礎知識的讀者。
如何閱讀本書
本書由淺入深、循序漸進,系統性地講解并實踐內網滲透過程中的各個環節及其對應的操作手段,一網打盡內網滲透的核心實戰技能。通過大量的實戰演練和場景復現,讀者將快速建立內網滲透的實戰技能樹以及對應的知識框架。
本書按如下方式組織內容:
內網滲透基礎(第1、2章)。介紹內網滲透中的域、工作組、域控以及活動目錄等重要概念及相關知識,同時介紹攻擊者視角下的入侵生命周期,細致分解攻擊者從外網探測到內網滲透再到攻破的全流程的各個階段以及對應的常用手段。
環境準備與常用工具(第3章)。介紹實戰所需的軟件環境以及接下來高頻使用的各類工具,為實戰環節做好準備。
內網滲透實戰(第4~12章)。這幾章為本書的核心內容,將帶領讀者系統化搭建和攻破9個風格各異的內網環境,涉及30余臺目標主機的探測和攻破過程。這幾章將對內網滲透技術的高頻攻擊和防御手法進行全面演示,包括利用phpMyAdmin日志文件獲取服務器權限、執行進程注入攻擊、收集內網域信息、利用Mimikatz獲取內網Windows服務器密碼、通過PsExec建立IPC通道等60多種具體的操作手段。
勘誤和支持
雖然筆者再三檢查,但書中難免會出現一些錯誤或不準確的地方,懇請讀者批評指正。如果讀者有任何建議或意見,歡迎發送郵件至penetration@mchz.com.cn。
柳遵梁
杭州美創科技股份有限公司創始人、CEO。
畢業于中國人民解放軍信息工程大學,全國工商聯大數據運維(網絡安全)委員會委員,中國網絡安全產業聯盟常務理事,中國(中關村)網絡與信息安全產業聯盟理事,浙江省網絡空間安全協會數據安全專委會主任兼秘書長。
擁有20年數據管理和信息安全從業經驗,在通信、社保、醫療、金融等民生行行業積累了大量實踐經驗。具備長遠戰略眼光,準確把握技術發展趨勢,持續創新,帶領公司完成運維、服務、產品多次轉型,均獲得成功。
目前公司已經完成全國布局,成為國內重要的數據安全管理綜合供應商,著有《Oracle數據庫性能優化方法論和最佳實踐》,并且發表多篇學術文章。
Contents目 錄
前 言
第1章 內網滲透測試基礎 1
1.1 工作組 1
1.2 域 2
1.3 活動目錄 3
1.4 域樹和域森林 4
1.5 常規安全域劃分 6
第2章 基于入侵生命周期的攻擊
流程設計 8
2.1 網絡殺傷鏈、ATT&CK及NTCTF 8
2.2 入侵生命周期 11
第3章 環境準備與常用工具 13
3.1 基礎環境:VMware與
Kali Linux 13
3.2 端口掃描及服務發現類工具 14
3.2.1 Nmap 14
3.2.2 Zenmap 15
3.3 流量捕獲工具:Burp Suite 16
3.4 爆破類工具 23
3.4.1 DirBuster 23
3.4.2 超級弱口令檢查工具 24
3.4.3 dirsearch 25
3.4.4 JWTPyCrack 26
3.4.5 tgsrepcrack 27
3.5 Web漏洞檢測及利用類工具 27
3.5.1 WeblogicScanner 27
3.5.2 Struts 2 28
3.5.3 TPscan 29
3.5.4 TongdaOA-exp 30
3.5.5 laravel-CVE-2021-3129-EXP 30
3.6 webshell管理類工具 31
3.6.1 冰蝎3 31
3.6.2 中國蟻劍 35
3.6.3 哥斯拉 37
3.6.4 Gomoon 40
3.7 數據庫管理工具 41
3.7.1 Navicat 41
3.7.2 Redis Desktop Manager 44
3.7.3 Multiple Database Utilization
Tools 45
3.7.4 SQLTools 49
3.8 字典類工具fuzzDicts 49
3.9 網絡代理類工具Proxif?ier 50
3.10 內網滲透綜合類工具 54
3.10.1 Cobalt Strike 54
3.10.2 Metasploit 65
3.10.3 Railgun 72
3.10.4 Mimikatz 76
第4章 Vulnstack1:利用域賬號
實現權限擴散 81
4.1 環境簡介與環境搭建 82
4.2 探索發現階段 84
4.2.1 使用Nmap對靶場入口IP
進行端口掃描及服務探測 84
4.2.2 識別80端口的Web應用
框架及版本 84
4.3 入侵和感染階段 86
4.3.1 對Web服務進行目錄掃描 87
4.3.2 利用phpMyAdmin日志文件
獲取Web服務器權限 89
4.4 攻擊和利用階段:Web服務器
進程注入與提權 97
4.5 探索感知階段 100
4.5.1 收集內網域服務器信息 100
4.5.2 抓取哈希及轉儲明文密碼 101
4.6 傳播階段 101
4.6.1 使用PsExec建立IPC通道,
上線域控服務器 102
4.6.2 使用PsExec建立IPC通道,
上線域成員服務器 104
4.7 持久化和恢復階段 104
4.7.1 通過Cobalt Strike持久化控制
服務器 105
4.7.2 恢復階段的攻擊 106
4.8 實踐知識點總結 106
第5章 Vulnstack2:攻防中的
殺軟對抗 108
5.1 環境簡介與環境搭建 108
5.2 探索發現階段 112
5.3 入侵和感染階段 115
5.3.1 對WebLogic服務進行批量
漏洞掃描 115
5.3.2 利用反序列化漏洞攻擊
WebLogic 116
5.4 攻擊和利用階段 119
5.4.1 利用cmd webshell寫入
冰蝎馬 119
5.4.2 通過冰蝎3將WebLogic
服務器上線到Metasploit 123
5.4.3 繞過360安全衛士,將
WebLogic服務器上線到
Cobalt Strike 125
5.4.4 繞過360安全衛士,對
WebLogic服務器進行提權 128
5.4.5 將WebLogic服務器的
Metasploit會話傳遞到
Cobalt Strike 132
5.4.6 抓取WebLogic服務器上的
操作系統憑證 133
5.4.7 通過3389端口RDP登錄
WebLogic服務器 135
5.5 探索感知階段 135
5.6 傳播階段 136
5.6.1 利用Zerologon漏洞攻擊
域控服務器 136
5.6.2 使用PsExec將域控服務器
上線到Cobalt Strike 138
5.6.3 使用PsExec將域內主機上線
到Cobalt Strike 140
5.7 持久化和恢復階段 142
5.7.1 通過Cobalt Strike持久化
控制服務器 142
5.7.2 恢復階段的攻擊 143
5.8 實踐知識點總結 143
第6章 Vulnstack3:利用PTH
攻擊獲取域控權限 144
6.1 環境簡介與環境搭建 145
6.2 探索發現階段 147
6.2.1 使用Nmap對靶場入口IP
進行端口掃描及服務探測 147
6.2.2 識別80端口的Web應用
框架及版本 148
6.3 入侵和感染階段 149
6.3.1 SSH應用服務攻擊 149
6.3.2 MySQL應用服務攻擊 149
6.3.3 Joomla應用攻擊 154
6.4 攻擊和利用階段 163
6.4.1 查找Linux服務器敏感
文件 163
6.4.2 Linux服務器提權 164
6.4.3 Linux服務器上線MSF 167
6.5 探索感知階段 169
6.5.1 利用MSF配置內網路由 169
6.5.2 探測內網網段存活主機 170
6.6 傳播階段 172
6.6.1 利用SMB爆破攻擊內網
Windows服務器 172
6.6.2 利用Zerologon攻擊域控
服務器 174
6.6.3 利用PTH攻擊域控服務器 177
6.6.4 利用PTH攻擊域內主機 177
6.7 持久化和恢復階段 179
6.7.1 通過定時任務持久化控制
Linux服務器 179
6.7.2 恢復階段的攻擊 179
6.8 實踐知識點總結 180
第7章 Vulnstack4:Docker
逃逸突破邊界 181
7.1 環境簡介與環境搭建 182
7.2 探索發現階段 185
7.2.1 使用Nmap對靶場入口IP
進行端口掃描及服務探測 186
7.2.2 識別2001端口的Web
應用框架及版本 187
7.2.3 識別2002端口的Web
應用框架及版本 187
7.2.4 識別2003端口的Web
應用框架及版本 189
7.3 入侵和感染階段 190
7.3.1 使用Struts 2漏洞檢測工具
對Web應用進行漏洞測試 190
7.3.2 使用Tomcat框架漏洞對Web
應用進行漏洞測試 194
7.3.3 使用phpMyAdmin應用漏洞
對Web應用進行漏洞測試 197
7.4 攻擊和利用階段 202
7.4.1 Struts 2 應用服務器環境
識別 202
7.4.2 Struts 2應用Docker服務器
逃逸 203
7.4.3 Tomcat應用服務器環境
識別 205
7.4.4 Tomcat應用Docker服務器
逃逸 205
7.4.5 phpMyAdmin應用服務器
環境識別 212
7.4.6 phpMyAdmin應用服務器
權限提升 213
7.4.7 利用MSF配置內網代理 215
7.5 探索感知階段 219
7.6 傳播階段 221
7.6.1 利用MSF對Windows
服務器445端口的SMB
服務進行漏洞檢測 221
7.6.2 利用smart_hashdump獲取
內網Windows服務器密碼
哈希 222
7.6.3 利用PTH攻擊域內服務器 224
7.7 持久化和恢復階段 225
7.7.1 通過定時任務持久化控制
服務器 225
7.7.2 恢復階段的攻擊 227
7.8 實踐知識點總結 228
第8章 Vulnstack5:使用PsExec對
不出網的域控服務器進行橫
向滲透及上線 229
8.1 環境簡介與環境搭建 229
8.2 探索發現階段:利用GUI掃描
工具進行端口掃描 232
8.3 入侵和感染階段 233
8.3.1 對ThinkPHP V5.0框架服務
進行批量漏洞掃描 233
8.3.2 利用ThinkPHP V5.0 RCE
漏洞攻擊Web服務器 233
8.3.3 對MySQL數據庫服務進行
弱口令爆破攻擊 235
8.4 攻擊和利用階段 236
8.4.1 利用cmd webshell傳輸
Cobalt Strike上線木馬 236
8.4.2 抓取Web服務器上的操作
系統憑證 241
8.5 探索感知和傳播階段 242
8.5.1 使用Cobalt Strike對內網段
進行掃描 242
8.5.2 使用PsExec將域控服務器
上線到Cobalt Strike 245
8.6 持久化和恢復階段 251
8.6.1 通過Cobalt Strike持久化
控制服務器 251
8.6.2 清除攻擊日志 255
8.7 實踐知識點總結 260
第9章 Vulnstack6:利用Zerologon
漏洞獲得域控權限 261
9.1 環境簡介與環境搭建 261
9.2 探索發現階段:利用GUI掃描
工具進行服務掃描 264
9.3 入侵和感染階段 265
9.3.1 對Web服務進行目錄掃描 265
9.3.2 Typecho CMS反序列化漏洞
測試 268
9.3.3 Typecho CMS弱口令漏洞
測試 268
9.3.4 通過phpStudy Nginx解析
漏洞攻擊Typecho服務器 271
9.4 攻擊和利用階段 274
9.4.1 通過MS16-075漏洞對Typecho
服務器進行提權測試 274
9.4.2 獲取Typecho服務器的系統
憑證 275
9.4.3 通過Cobalt Strike構建內網
代理 276
9.5 探索感知階段 277
9.5.1 利用Cobalt Strike對已知
內網段進行探測 277
9.5.2 使用工具代理對已知內網段
進行探測 278
9.6 傳播階段 280
9.6.1 域控服務器Zerologon漏洞
測試 280
9.6.2 通過PTH將域控服務器上
線到Cobalt Strike 286
9.7 持久化和恢復階段 288
9.7.1 通過啟動項設置持久化控制
Windows服務器 288
9.7.2 恢復階段的攻擊 288
9.8 實踐知識點總結 288
第10章 Vulnstack7:利用不同
服務漏洞突破多層內網 289
10.1 環境簡介與環境搭建 290
10.2 探索發現階段 292
10.2.1 對目標服務器進行端口
掃描 292
10.2.2 識別81端口的Web應用
框架及版本 293
10.3 入侵和感染階段 294
10.3.1 利用Laravel RCE漏洞攻擊
服務器81端口 295
10.3.2 利用Redis未授權訪問漏洞
攻擊服務器6379端口 298
10.4 攻擊和利用階段 302
10.4.1 Laravel服務器環境識別 303
10.4.2 Laravel Docker服務器權限
提升 304
10.4.3 Laravel Docker服務器
逃逸 305
10.4.4 利用MSF搭建內網路由 306
10.5 探索感知階段 311
10.5.1 通過內網代理對內網服務器
進行端口掃描 311
10.5.2 識別內網服務器8080端口
的Web應用框架及版本 312
10.6 傳播階段 313
10.6.1 利用通達OA漏洞攻擊
內網服務器8080端口的
Web應用 313
10.6.2 利用MS17-010漏洞攻擊
內網服務器445端口的
SMB服務 317
10.6.3 利用Mimikatz獲取內網
Windows服務器密碼 318
10.6.4 利用PTH攻擊域控
服務器 319
10.7 持久化和恢復階段 323
10.7.1 通過Metasploit持久化控制
服務器 323
10.7.2 通過Cobalt Strike持久化
控制服務器 323
10.7.3 恢復階段的攻擊 324
10.8 實踐知識點總結 324
第11章 暗月ack123:通過SPN
攻擊獲取域控權限 326
11.1 環境簡介與環境搭建 327
11.2 探索發現階段:使用Nmap
進行服務掃描 331
11.3 入侵和感染階段 333
11.3.1 對Web服務進行目錄
掃描 333
11.3.2 使用UEditor編輯器漏洞
攻擊Web服務器 335
11.4 攻擊和利用階段 338
11.4.1 繞過360全家桶,將Web
服務器上線到Cobalt Strike 339
11.4.2 繞過360全家桶,對Web
服務器進行提權攻擊 341
11.4.3 將Metasploit會話傳遞到
Cobalt Strike 345
11.4.4 通過Cobalt Strike或
Metasploit構建內網
代理 346
11.5 探索感知階段 347
11.5.1 搜集Web服務器敏感文件
信息 347
11.5.2 使用工具代理對已知內網段
進行探測 349
11.6 傳播階段 350
11.6.1 通過MSSQL提升系統
權限 351
11.6.2 繞過火絨,將MSSQL服務
器上線到Cobalt Strike 353
11.6.3 利用MS16-075漏洞對MSSQL
服務器進行提權 354
11.6.4 對Web服務器2進行
JWT token爆破攻擊 355
11.6.5 通過phpMyAdmin對Web
服務器2進行getshell操作 358
11.6.6 將不出網的Web服務器2
上線到Cobalt Strike 362
11.6.7 通過Cobalt Strike進程注入
獲取Web服務器2的域用戶
會話 364
11.6.8 收集域網段信息及定位域控
服務器 365
11.6.9 使用SPN攻擊獲取域控
服務器權限 368
11.7 持久化和恢復階段 372
11.7.1 通過Cobalt Strike持久化
控制服務器 372
11.7.2 恢復階段的攻擊 373
11.8 實踐知識點總結 373
第12章 Vulnstack8:挑戰多層
代理下的域滲透 375
12.1 環境簡介與環境搭建 376
12.2 攻擊實戰 377
12.2.1 攻擊第一層主機 377
12.2.2 攻擊其他層主機 378
12.3 實踐知識點總結 379