内容简介
这是一本能同时帮助红队和蓝队建立完整攻击和防御知识体系的著作,也是一本既能指导企业建设和完善网络安全防御系统,又能打造安全工程师个人安全能力护城河的著作。
全书以ATT&CK框架模型为基座,系统、详细地讲解了信息收集、隧道穿透、权限提升、凭据获取、横向渗透、持久化6大阶段所涉及的技术原理、攻击手段和防御策略。既能让红队理解攻击的本质、掌握实战化的攻击手段,又能让蓝队看透红队的攻击思路,从而构建更为强大的防御体系。
本书的宗旨是“以攻促防、以战训战”,所以书中精心整理了大量来自实践的攻防案例,每个案例都提供了详细的思路、具体的步骤,以及实战中的经验、技巧和注意事项,尽可能让读者感受到真实的攻防对抗氛围。
本书内容丰富,讲解又极为细致,所以篇幅巨大,具体包含如下7个方面的内容。
(1)Windows安全基础
详细介绍Windows的安全认证机制(NTLM认证、Kerberos域认证)、协议(LLMNR、NetBIOS、WPAD、LDAP)和域的基础知识。
(2)信息收集
详细讲解主机发现、Windows/Linux操作系统信息收集、组策略信息收集、域控相关信息收集、Exchange信息收集等各种信息收集手段。
(3)隧道穿透
全面、透彻讲解隧道穿透技术基础知识、利用多协议进行隧道穿透的方法、常见的隧道利用工具、以及检测防护方法。
(4)权限提升
详细讲解内核漏洞提权、错配漏洞提权、第三方服务提权等红蓝对抗中常用的提权手法,既讲解这些手法在实际场景中的利用过程,又提供针对性的防御手段。
(5)凭据获取
从攻击和防御两个维度,详细讲解主要的凭证获取手法,包括软件凭证获取、本地凭证获取、域内凭证等。
(6)横向移动
全面分析利用任务计划、远程服务、组策略、WSUS、SCCM、Psexec、WMI等系统应用服务及协议进行横向移动的原理与过程。
(7)持久化
既详细讲解红队常用的持久化手法,如Windows持久化、Linux持久化、Windows域权限维持等,又系统分析蓝队针对持久化攻击的检测和防御思路。
封面
前折页
书名页
版权
赞誉
序一
序二
序三
前言
第1章 Windows安全基础
1.1 Windows认证基础知识
1.1.1 Windows凭据
1.1.2 Windows访问控制模型
1.1.3 令牌安全防御
1.2 UAC
1.2.1 UAC原理概述
1.2.2 UAC级别定义
1.2.3 UAC触发条件
1.2.4 UAC用户登录过程
1.2.5 UAC虚拟化
1.3 Windows安全认证机制
1.3.1 什么是认证
1.3.2 NTLM本地认证
1.3.3 NTLM网络认证
1.3.4 Kerberos域认证
1.4 Windows常用协议
1.4.1 LLMNR
1.4.2 NetBIOS
1.4.3 Windows WPAD
1.5 Windows WMI详解
1.5.1 WMI简介
1.5.2 WQL
1.5.3 WMI Client
1.5.4 WMI远程交互
1.5.5 WMI事件
1.5.6 WMI攻击
1.5.7 WMI攻击检测
1.6 域
1.6.1 域的基础概念
1.6.2 组策略
1.6.3 LDAP
1.6.4 SPN
1.7 本章小结
第2章 信息收集
2.1 主机发现
2.1.1 利用协议主动探测主机存活
2.1.2 被动主机存活探测
2.1.3 内网多网卡主机发现
2.2 Windows主机信息收集检查清单
2.3 Linux主机信息收集检查清单
2.4 组策略信息收集
2.4.1 本地组策略收集
2.4.2 域组策略收集
2.4.3 组策略存储收集
2.4.4 组策略对象收集
2.5 域信息收集
2.5.1 域控制器收集
2.5.2 域DNS信息枚举
2.5.3 SPN扫描
2.5.4 域用户名获取
2.5.5 域用户定位
2.6 net session与net use利用
2.6.1 net session利用
2.6.2 net use利用
2.7 Sysmon检测
2.8 域路径收集分析
2.8.1 域分析之BloodHound
2.8.2 域分析之ShotHound
2.8.3 域分析之CornerShot
2.9 Exchange信息收集
2.9.1 Exchange常见接口
2.9.2 Exchange常见信息收集
2.9.3 Exchange攻击面扩展收集(暴力破解)
2.9.4 Exchange邮件列表导出
2.10 本章小结
第3章 隧道穿透
3.1 隧道穿透技术详解
3.1.1 正向连接
3.1.2 反向连接
3.1.3 端口转发
3.1.4 端口复用
3.1.5 内网穿透
3.1.6 代理和隧道的区别
3.1.7 常见隧道转发场景
3.1.8 常见隧道穿透分类
3.2 内网探测协议出网
3.2.1 TCP/UDP探测出网
3.2.2 HTTP/HTTPS探测出网
3.2.3 ICMP探测出网
3.2.4 DNS探测出网
3.3 隧道利用方法
3.3.1 常规反弹
3.3.2 加密反弹
3.3.3 端口转发
3.3.4 SOCKS隧道代理
3.4 利用多协议方式进行隧道穿透
3.4.1 利用ICMP进行隧道穿透
3.4.2 利用DNS协议进行隧道穿透
3.4.3 利用RDP进行隧道穿透
3.4.4 利用IPv6进行隧道穿透
3.4.5 利用GRE协议进行隧道穿透
3.4.6 利用HTTP进行隧道穿透
3.4.7 利用SSH协议进行隧道穿透
3.5 常见的隧道穿透利用方式
3.5.1 通过EW进行隧道穿透
3.5.2 通过Venom进行隧道穿透
3.5.3 通过Termite进行隧道穿透
3.5.4 通过frp进行隧道穿透
3.5.5 通过NPS进行隧道穿透
3.5.6 通过ngrok进行内网穿透
3.6 文件传输技术
3.6.1 Windows文件传输技巧详解
3.6.2 Linux文件传输技巧详解
3.7 检测与防护
3.7.1 ICMP隧道流量检测与防护
3.7.2 DNS隧道流量检测与防护
3.7.3 HTTP隧道流量检测与防护
3.7.4 RDP隧道流量检测与防护
3.8 本章小结
第4章 权限提升
4.1 Windows用户权限简介
4.2 Windows单机权限提升
4.2.1 利用Windows内核漏洞进行提权
4.2.2 利用Windows错配进行提权
4.2.3 DLL劫持
4.2.4 访问令牌提权
4.2.5 获取TrustedInstaller权限
4.3 利用第三方服务提权
4.3.1 利用MySQL UDF进行提权
4.3.2 利用SQL Server进行提权
4.3.3 利用Redis进行提权
4.4 利用符号链接进行提权
4.4.1 符号链接
4.4.2 符号链接提权的原理
4.4.3 CVE-2020-0668
4.5 NTLM中继
4.5.1 通过LLMNR/NBNS欺骗获取NTLM哈希
4.5.2 通过desktop.ini获取哈希
4.5.3 自动生成有效载荷
4.5.4 中继到SMB
4.6 Service提权至SYSTEM(土豆攻击)
4.6.1 热土豆
4.6.2 烂土豆
4.6.3 多汁土豆
4.6.4 甜土豆
4.7 Linux权限提升
4.7.1 Linux权限基础
4.7.2 Linux本机信息收集
4.7.3 利用Linux漏洞进行提权
4.7.4 Linux错配提权
4.8 Windows Print Spooler漏洞详解及防御
4.8.1 Windows Print Spooler简介
4.8.2 CVE-2020-1048
4.8.3 CVE-2020-1337
4.9 绕过权限限制
4.9.1 绕过UAC
4.9.2 绕过AppLocker
4.9.3 绕过AMSI
4.9.4 绕过Sysmon
4.9.5 绕过ETW
4.9.6 绕过PowerShell Ruler
4.10 本章小结
第5章 凭据获取
5.1 Windows单机凭据获取
5.1.1 凭据获取的基础知识
5.1.2 通过SAM文件获取Windows凭据
5.1.3 通过Lsass进程获取Windows凭据
5.1.4 绕过Lsass进程保护
5.1.5 钓鱼获取Windows凭据
5.2 域凭据获取
5.2.1 利用NTDS.DIT获取Windows域哈希
5.2.2 注入Lsass进程获取域用户哈希
5.2.3 DCSync利用原理
5.2.4 利用LAPS获取Windows域凭据
5.2.5 利用备份组导出域凭据
5.3 系统内软件凭据获取
5.3.1 收集浏览器密码
5.3.2 使用开源程序获取浏览器凭据
5.3.3 获取常见的运维管理软件密码
5.4 获取Windows哈希的技巧
5.4.1 利用蓝屏转储机制获取哈希
5.4.2 利用mstsc获取RDP凭据
5.4.3 通过Hook获取凭据
5.4.4 使用Physmem2profit远程转储Lsass进程
5.5 Linux凭据获取
5.5.1 Shadow文件详解
5.5.2 利用Strace记录密码
5.6 凭据防御
5.7 本章小结
第6章 横向渗透
6.1 常见的系统传递攻击
6.1.1 哈希传递
6.1.2 票据传递
6.1.3 密钥传递
6.1.4 证书传递
6.2 利用Windows计划任务进行横向渗透
6.2.1 at命令
6.2.2 schtasks命令
6.3 利用远程服务进行横向渗透
6.3.1 利用SC创建远程服务后进行横向渗透
6.3.2 利用SCShell进行横向渗透
6.4 利用PsExec进行横向渗透
6.4.1 利用PsExec获取交互式会话
6.4.2 建立IPC$连接,获取交互式会话
6.5 利用WinRM进行横向渗透
6.5.1 利用WinRS建立交互式会话
6.5.2 利用Invoke-Command远程执行命令
6.5.3 利用Enter-PSSession建立交互式会话
6.6 利用WMI进行横向渗透
6.6.1 利用WMIC进行信息收集
6.6.2 利用wmiexec.py获取交互式会话
6.6.3 利用wmiexec.vbs远程执行命令
6.6.4 利用WMIHACKER实现命令回显
6.7 利用DCOM进行横向渗透
6.7.1 利用MMC20.Application远程控制MMC
6.7.2 利用ShellWindows远程执行命令
6.7.3 利用Dcomexec.py获得半交互shell
6.7.4 其他DCOM组件
6.8 利用RDP进行横向渗透
6.8.1 针对RDP的哈希传递
6.8.2 RDP会话劫持
6.8.3 使用SharpRDP进行横向渗透
6.9 利用MSSQL数据库进行横向渗透
6.9.1 利用sp_oacreate执行命令
6.9.2 利用CLR执行命令
6.9.3 利用WarSQLKit扩展命令
6.10 利用组策略进行横向渗透
6.10.1 本地组策略与域组策略的区别
6.10.2 使用组策略推送MSI
6.10.3 使用域组策略创建计划任务
6.10.4 利用登录脚本进行横向渗透
6.11 利用WSUS进行横向渗透
6.11.1 WSUS利用原理
6.11.2 WSUS横向渗透
6.11.3 WSUS检测及防护
6.12 利用SCCM进行横向渗透
6.13 本章小结
第7章 持久化
7.1 Windows单机持久化
7.1.1 Windows RID劫持
7.1.2 利用计划任务进行权限维持
7.1.3 利用Windows注册表进行权限维持
7.1.4 利用映像劫持进行权限维持
7.1.5 利用CLR劫持进行权限维持
7.1.6 利用Telemetry服务进行权限维持
7.1.7 利用WMI进行权限维持
7.1.8 远程桌面服务影子攻击
7.2 Windows域权限维持
7.2.1 黄金票据
7.2.2 白银票据
7.2.3 黄金票据与白银票据的区别
7.2.4 利用DSRM进行域权限维持
7.2.5 利用DCShadow进行域权限维持
7.2.6 利用SID History进行域权限维持
7.2.7 利用AdminSDHolder进行域权限维持
7.2.8 注入Skeleton Key进行域权限维持
7.3 Linux单机持久化
7.3.1 利用Linux SUID进行权限维持
7.3.2 利用Linux计划任务进行权限维持
7.3.3 利用Linux PAM创建后门
7.3.4 利用SSH公钥免密登录
7.3.5 利用Vim创建后门
7.3.6 Linux端口复用
7.3.7 利用Rootkit进行权限维持
7.4 持久化防御
7.5 本章小结
推荐阅读
后折页
封底
机械工业出版社 京icp备14043556号-1 (署)网出证(京)字第214号 Copyright (C) 2001 CmpBook. All Rights Reserved