本书将分为三大部分,首先介绍内网渗透技术中涉及到的各类基础概念,并介绍攻击者视角中的入侵生命周期流程。其次进行环境搭建准备,并介绍各类常用工具的使用。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