本書由淺入深,全面、系統(tǒng)地討論了常見的內網攻擊手段和相應的防御方法,力求語言通俗易懂、示例簡單明了,以便讀者閱讀領會。同時,本書結合具體案例進行講解,可以讓讀者身臨其境,快速了解和掌握主流的內網滲透測試技巧。閱讀本書不要求讀者具備滲透測試的相關背景。如果讀者有相關經驗,會對理解本書內容有一定幫助。本書亦可作為大專院校信息安全學科的教材。
徐焱,北京交通大學安全研究員,MS08067安全實驗室創(chuàng)始人。從2002年開始接觸網絡安全,有豐富的滲透測試經驗,主要研究方向為內網滲透測試和APT攻擊。已出版圖書《網絡攻防實戰(zhàn)研究:漏洞利用與提權》、《Web安全攻防:滲透測試實戰(zhàn)指南》,在《黑客防線》、《黑客X檔案》、《黑客手冊》、FreeBuf、360安全客、阿里云盾先知、嘶吼等媒體發(fā)表過多篇技術文章。賈曉璐,曾任國內某知名安全公司安全研究員,現為自由職業(yè)者。MS08067安全實驗室、破曉安全團隊核心成員,目前主要研究方向為內網滲透測試。從2012年開始接觸網絡安全,擅長滲透測試,沉迷于紅藍對抗(主要為Red Team方向)。
第1章 內網滲透測試基礎
1.1 內網基礎知識 1
1.1.1 工作組 1
1.1.2 域 2
1.1.3 活動目錄 5
1.1.4 域控制器和活動目錄的區(qū)別 6
1.1.5 安全域的劃分 6
1.1.6 域中計算機的分類 7
1.1.7 域內權限解讀 8
1.2 主機平臺及常用工具 12
1.2.1 虛擬機的安裝 12
1.2.2 Kali Linux滲透測試平臺及常用工具 13
1.2.3 Windows滲透測試平臺及常用工具 15
1.2.4 Windows PowerShell基礎 16
1.2.5 PowerShell的基本概念 17
1.2.6 PowerShell的常用命令 18
1.3 構建內網環(huán)境 23
1.3.1 搭建域環(huán)境 23
1.3.2 搭建其他服務器環(huán)境 31
第2章 內網信息收集
2.1 內網信息收集概述 33
2.2 收集本機信息 33
2.2.1 手動收集信息 33
2.2.2 自動收集信息 44
2.2.3 Empire下的主機信息收集 45
2.3 查詢當前權限 46
2.4 判斷是否存在域 47
2.5 探測域內存活主機 50
2.5.1 利用NetBIOS快速探測內網 50
2.5.2 利用ICMP協(xié)議快速探測內網 51
2.5.3 通過ARP掃描探測內網 52
2.5.4 通過常規(guī)TCP/UDP端口掃描探測內網 53
2.6 掃描域內端口 54
2.6.1 利用telnet命令進行掃描 54
2.6.2 S掃描器 55
2.6.3 Metasploit端口掃描 55
2.6.4 PowerSploit的Invoke-portscan.ps1腳本 56
2.6.5 Nishang的Invoke-PortScan模塊 56
2.6.6 端口Banner信息 57
2.7 收集域內基礎信息 59
2.8 查找域控制器 61
2.9 獲取域內的用戶和管理員信息 63
2.9.1 查詢所有域用戶列表 63
2.9.2 查詢域管理員用戶組 65
2.10 定位域管理員 65
2.10.1 域管理員定位概述 65
2.10.2 常用域管理員定位工具 66
2.11 查找域管理進程 70
2.11.1 本機檢查 70
2.11.2 查詢域控制器的域用戶會話 71
2.11.3 查詢遠程系統(tǒng)中運行的任務 73
2.11.4 掃描遠程系統(tǒng)的NetBIOS信息 73
2.12 域管理員模擬方法簡介 74
2.13 利用PowerShell收集域信息 74
2.14 域分析工具BloodHound 76
2.14.1 配置環(huán)境 76
2.14.2 采集數據 80
2.14.3 導入數據 81
2.14.4 查詢信息 82
2.15 敏感數據的防護 87
2.15.1 資料、數據、文件的定位流程 87
2.15.2 重點核心業(yè)務機器及敏感信息防護 87
2.15.3 應用與文件形式信息的防護 88
2.16 分析域內網段劃分情況及拓撲結構 88
2.16.1 基本架構 89
2.16.2 域內網段劃分 89
2.16.3 多層域結構 90
2.16.4 繪制內網拓撲圖 90
第3章 隱藏通信隧道技術
3.1 隱藏通信隧道基礎知識 91
3.1.1 隱藏通信隧道概述 91
3.1.2 判斷內網的連通性 91
3.2 網絡層隧道技術 94
3.2.1 IPv6隧道 94
3.2.2 ICMP隧道 96
3.3 傳輸層隧道技術 103
3.3.1 lcx端口轉發(fā) 104
3.3.2 netcat 104
3.3.3 PowerCat 115
3.4 應用層隧道技術 123
3.4.1 SSH協(xié)議 123
3.4.2 HTTP/HTTPS協(xié)議 129
3.4.3 DNS協(xié)議 131
3.5 SOCKS代理 146
3.5.1 常用SOCKS代理工具 146
3.5.2 SOCKS代理技術在網絡環(huán)境中的應用 148
3.6 壓縮數據 159
3.6.1 RAR 160
3.6.2 7-Zip 162
3.7 上傳和下載 164
3.7.1 利用FTP協(xié)議上傳 164
3.7.2 利用VBS上傳 164
3.7.3 利用Debug上傳 165
3.7.4 利用Nishang上傳 167
3.7.5 利用bitsadmin下載 167
3.7.6 利用PowerShell下載 168
第4章 權限提升分析及防御
4.1 系統(tǒng)內核溢出漏洞提權分析及防范 169
4.1.1 通過手動執(zhí)行命令發(fā)現缺失補丁 170
4.1.2 利用Metasploit發(fā)現缺失補丁 174
4.1.3 Windows Exploit Suggester 174
4.1.4 PowerShell中的Sherlock腳本 176
4.2 Windows操作系統(tǒng)配置錯誤利用分析及防范 178
4.2.1 系統(tǒng)服務權限配置錯誤 178
4.2.2 注冊表鍵AlwaysInstallElevated 181
4.2.3 可信任服務路徑漏洞 184
4.2.4 自動安裝配置文件 186
4.2.5 計劃任務 188
4.2.6 Empire內置模塊 189
4.3 組策略首選項提權分析及防范 190
4.3.1 組策略首選項提權簡介 190
4.3.2 組策略首選項提權分析 191
4.3.3 針對組策略首選項提權的防御措施 195
4.4 繞過UAC提權分析及防范 195
4.4.1 UAC簡介 195
4.4.2 bypassuac模塊 196
4.4.3 RunAs模塊 197
4.4.4 Nishang中的Invoke-PsUACme模塊 199
4.4.5 Empire中的bypassuac模塊 200
4.4.6 針對繞過UAC提權的防御措施 201
4.5 令牌竊取分析及防范 201
4.5.1 令牌竊取 202
4.5.2 Rotten Potato本地提權分析 203
4.5.3 添加域管理員 204
4.5.4 Empire下的令牌竊取分析 205
4.5.5 針對令牌竊取提權的防御措施 207
4.6 無憑證條件下的權限獲取分析及防范 207
4.6.1 LLMNR和NetBIOS欺騙攻擊的基本概念 207
4.6.2 LLMNR和NetBIOS欺騙攻擊分析 208
第5章 域內橫向移動分析及防御
5.1 常用Windows遠程連接和相關命令 211
5.1.1 IPC 211
5.1.2 使用Windows自帶的工具獲取遠程主機信息 213
5.1.3 計劃任務 213
5.2 Windows系統(tǒng)散列值獲取分析與防范 216
5.2.1 LM Hash和NTLM Hash 216
5.2.2 單機密碼抓取與防范 217
5.2.3 使用Hashcat獲取密碼 224
5.2.4 如何防范攻擊者抓取明文密碼和散列值 228
5.3 哈希傳遞攻擊分析與防范 231
5.3.1 哈希傳遞攻擊的概念 231
5.3.2 哈希傳遞攻擊分析 232
5.3.3 更新KB2871997補丁產生的影響 234
5.4 票據傳遞攻擊分析與防范 235
5.4.1 使用mimikatz進行票據傳遞 235
5.4.2 使用kekeo進行票據傳遞 236
5.4.3 如何防范票據傳遞攻擊 238
5.5 PsExec的使用 238
5.5.1 PsTools工具包中的PsExec 238
5.5.2 Metasploit中的psexec模塊 240
5.6 WMI的使用 242
5.6.1 基本命令 243
5.6.2 impacket工具包中的wmiexec 244
5.6.3 wmiexec.vbs 244
5.6.4 Invoke-WmiCommand 245
5.6.5 Invoke-WMIMethod 246
5.7 永恒之藍漏洞分析與防范 247
5.8 smbexec的使用 250
5.8.1 C++ 版smbexec 250
5.8.2 impacket工具包中的smbexec.py 251
5.8.3 Linux跨Windows遠程執(zhí)行命令 252
5.9 DCOM在遠程系統(tǒng)中的使用 258
5.9.1 通過本地DCOM執(zhí)行命令 259
5.9.2 使用DCOM在遠程機器上執(zhí)行命令 260
5.10 SPN在域環(huán)境中的應用 262
5.10.1 SPN掃描 262
5.10.2 Kerberoast攻擊分析與防范 266
5.11 Exchange郵件服務器安全防范 270
5.11.1 Exchange郵件服務器介紹 270
5.11.2 Exchange服務發(fā)現 272
5.11.3 Exchange的基本操作 274
5.11.4 導出指定的電子郵件 276
第6章 域控制器安全
6.1 使用卷影拷貝服務提取ntds.dit 282
6.1.1 通過ntdsutil.exe提取ntds.dit 282
6.1.2 利用vssadmin提取ntds.dit 284
6.1.3 利用vssown.vbs腳本提取ntds.dit 285
6.1.4 使用ntdsutil的IFM創(chuàng)建卷影拷貝 287
6.1.5 使用diskshadow導出ntds.dit 288
6.1.6 監(jiān)控卷影拷貝服務的使用情況 291
6.2 導出NTDS.DIT中的散列值 292
6.2.1 使用esedbexport恢復ntds.dit 292
6.2.2 使用impacket工具包導出散列值 295
6.2.3 在Windows下解析ntds.dit并導出域賬號和域散列值 296
6.3 利用dcsync獲取域散列值 296
6.3.1 使用mimikatz轉儲域散列值 296
6.3.2 使用dcsync獲取域賬號和域散列值 298
6.4 使用Metasploit獲取域散列值 298
6.5 使用vshadow.exe和quarkspwdump.exe導出域賬號和域散列值 301
6.6 Kerberos域用戶提權漏洞分析與防范 302
6.6.1 測試環(huán)境 303
6.6.2 PyKEK工具包 303
6.6.3 goldenPac.py 307
6.6.4 在Metasploit中進行測試 308
6.6.5 防范建議 310
第7章 跨域攻擊分析及防御
7.1 跨域攻擊方法分析 311
7.2 利用域信任關系的跨域攻擊分析 311
7.2.1 域信任關系簡介 311
7.2.2 獲取域信息 312
7.2.3 利用域信任密鑰獲取目標域的權限 315
7.2.4 利用krbtgt散列值獲取目標域的權限 318
7.2.5 外部信任和林信任 321
7.2.6 利用無約束委派和MS-RPRN獲取信任林權限 323
7.3 防范跨域攻擊 327
第8章 權限維持分析及防御
8.1 操作系統(tǒng)后門分析與防范 328
8.1.1 粘滯鍵后門 328
8.1.2 注冊表注入后門 330
8.1.3 計劃任務后門 331
8.1.4 meterpreter后門 335
8.1.5 Cymothoa后門 335
8.1.6 WMI型后門 336
8.2 Web后門分析與防范 339
8.2.1 Nishang下的WebShell 339
8.2.2 weevely后門 340
8.2.3 webacoo后門 344
8.2.4 ASPX meterpreter后門 347
8.2.5 PHP meterpreter后門 347
8.3 域控制器權限持久化分析與防范 347
8.3.1 DSRM域后門 347
8.3.2 SSP維持域控權限 352
8.3.3 SID History域后門 354
8.3.4 Golden Ticket 356
8.3.5 Silver Ticket 362
8.3.6 Skeleton Key 367
8.3.7 Hook PasswordChangeNotify 370
8.4 Nishang下的腳本后門分析與防范 371
第9章 Cobalt Strike
9.1 安裝Cobalt Strike 374
9.1.1 安裝Java運行環(huán)境 374
9.1.2 部署TeamServer 376
9.2 啟動Cobalt Strike 378
9.2.1 啟動cobaltstrike.jar 378
9.2.2 利用Cobalt Strike獲取第一個Beacon 379
9.3 Cobalt Strike模塊詳解 384
9.3.1 Cobalt Strike模塊 384
9.3.2 View模塊 384
9.3.3 Attacks模塊 385
9.3.4 Reporting模塊 386
9.4 Cobalt Strike功能詳解 387
9.4.1 監(jiān)聽模塊 387
9.4.2 監(jiān)聽器的創(chuàng)建與使用 389
9.4.3 Delivery模塊 391
9.4.4 Manage模塊 392
9.4.5 Payload模塊 393
9.4.6 后滲透測試模塊 395
9.5 Cobalt Strike的常用命令 403
9.5.1 Cobalt Strike的基本命令 403
9.5.2 Beacon的常用操作命令 404
9.6 Aggressor腳本的編寫 415
9.6.1 Aggressor腳本簡介 415
9.6.2 Aggressor-Script語言基礎 415
9.6.3 加載Aggressor腳本 418
跋 419