提权
先说结论:公开样本显示,银狐(Silver Fox)并不是只依赖单一提权手法。
如果把近两年公开分析里出现过的行为串起来看,它更常见的思路是沿着一条“逐层抬高权限”的链路向上走,而不是一上来就直接利用某个本地提权漏洞拿到最高权限。
可以把这条链路大致理解为:
普通用户
↓
UAC Bypass
↓
管理员
↓
启用 SeDebugPrivilege
↓
窃取高权限 Token
↓
SYSTEM
↓
冒充 TrustedInstaller
↓
修改受保护组件
↓
(部分新样本)
BYOVD
↓
Kernel
也就是说,银狐主流样本更像是在滥用 Windows 自身的权限与令牌机制,而不是主要依赖某个著名的本地提权 CVE。
特征
很多人在看木马分析时,容易把“提权”理解成一个瞬间完成的动作,好像样本一运行就直接从普通用户跳到 SYSTEM。
但从银狐相关公开分析来看,它更像是把权限抬升拆成了多个连续阶段:
- 先想办法绕过 UAC,拿到高完整性的管理员权限。
- 再启用
SeDebugPrivilege,让自己更容易打开和操作高权限进程。 - 然后窃取或复制高权限进程的访问令牌,进入
NT AUTHORITY\SYSTEM上下文。 - 在此基础上,进一步冒充
TrustedInstaller,去修改普通管理员甚至 SYSTEM 都不方便直接改的受保护组件。 - 部分更新的 ValleyRAT / Winos 4.0 样本,还会继续往上走,加载存在漏洞的签名驱动,把权限推进到内核态。
这也是为什么讨论银狐提权时,不能只盯着一个动作看,而要看它是不是形成了完整的权限抬升链。
阶段
UAC Bypass
在近期公开分析中,研究人员发现 ValleyRAT / Winos 4.0 相关样本中出现了与 UAC 绕过有关的函数和逻辑,例如:
RunUAC()
CheckAdminPrivileges()
BypassUACViaDebugObject()
这类逻辑的核心目标不是“提到 SYSTEM”,而是先把当前进程从普通用户或中完整性管理员,抬到高完整性的管理员上下文。
公开报告提到,其实现思路中出现过:
RPC AppInfo
+
Debug Object Hijacking
+
computerdefaults.exe
从防守视角理解,这一阶段的关键点在于:
- 样本先判断自己当前是不是已经具备管理员权限。
- 如果没有,就尝试借助 Windows 的 UAC 机制和可被滥用的自动提权组件,绕过正常的用户确认提示。
- 一旦成功,后续进程就会以更高完整性运行,为后面的令牌操作、进程访问和持久化修改打基础。
可见信号
在主机日志或 EDR 遥测里,这一阶段经常会让一些原本就比较敏感的系统组件异常出现,例如:
computerdefaults.exe
fodhelper.exe
sdclt.exe
eventvwr.exe
这些文件名本身并不等于恶意,但如果它们的启动链、父进程、命令行、时序关系明显异常,就很值得重点看。
SeDebugPrivilege
拿到管理员权限以后,银狐常见的下一步并不是立刻注入所有系统进程,而是先把关键权限打开。
公开分析中提到它会围绕下面这条链路操作:
OpenProcessToken
↓
LookupPrivilegeValue
↓
AdjustTokenPrivileges
目标是启用:
SeDebugPrivilege
关键作用
SeDebugPrivilege 可以理解为一种高危调试权限。它本来是给调试器、系统诊断工具、安全产品和故障排查工具使用的,但在恶意样本里很常见,因为它会让进程更容易:
- 打开高权限进程。
- 获取更强的目标进程句柄。
- 读取或操作其他进程的内存与令牌。
- 为后续的 Token Theft、注入、转储或线程控制创造条件。
换句话说,银狐在这一层做的事,不是直接“提权成功”,而是先为后面的高权限进程访问铺路。
检测视角
单独看到某个进程启用了 SeDebugPrivilege,并不能直接下结论说它就是木马,因为很多安全工具、调试器和运维组件也会这么做。
真正值得警惕的是它后面紧跟着出现了什么:
- 是否马上去打开
winlogon.exe、lsass.exe、services.exe等敏感进程。 - 是否出现进程令牌复制、模拟登录用户、远程线程、跨进程读写内存等动作。
- 该进程本身的路径、签名、父进程、命令行是否合理。
如果一个陌生进程在临时目录、用户目录或办公软件子进程链下突然启用 SeDebugPrivilege,风险通常会明显上升。
Token Theft
这是银狐样本里比较有代表性的提权动作。
公开分析指出,它会在启用 SeDebugPrivilege 之后,进一步对高权限进程做访问令牌操作,典型思路可以概括为:
Enable SeDebugPrivilege
↓
OpenProcess(winlogon.exe)
↓
DuplicateTokenEx
↓
ImpersonateLoggedOnUser
最终进入:
NT AUTHORITY\SYSTEM
上下文。
本质
这一步更准确地说属于:
MITRE ATT&CK T1134
Access Token Manipulation
它本质上不是“利用内核漏洞”,而是滥用 Windows 的访问令牌机制。
Windows 中,进程是否以某个身份运行,本质上依赖于它绑定的访问令牌。攻击者如果已经具备足够高的访问能力,就可能去复制高权限进程的令牌,再用复制出的令牌模拟该身份或创建新的高权限进程。
银狐在这里的关键,不是自己凭空生成一个 SYSTEM 身份,而是:
- 先用管理员权限和
SeDebugPrivilege取得对敏感进程的访问能力。 - 再从高权限进程身上复制可用 Token。
- 最后利用这个 Token 进入 SYSTEM 上下文。
目标选择
从防守角度看,winlogon.exe 是一个很典型的高权限目标,因为它通常运行在 SYSTEM 上下文中,而且对登录会话相关活动很敏感。
恶意样本盯上它,不代表只有它能被利用,而是它经常成为一类代表性目标:
- 权限足够高。
- 进程长期存在。
- 访问它本身就具有很强的异常性。
因此,如果在遥测里看到某个不应具备调试或安全管理职责的进程突然去强访问 winlogon.exe,再跟上 DuplicateTokenEx、模拟身份、创建新进程,这通常就是非常强的提权信号。
TrustedInstaller
很多人在学 Windows 权限时,会以为 SYSTEM 已经是无条件的最高权限。但在很多具体运维与系统保护场景里:
SYSTEM ≠ TrustedInstaller
Windows 中一些核心文件、受保护 DLL、计划任务组件和系统资源,真正的拥有者可能是:
TrustedInstaller
这意味着即便恶意样本已经进入 SYSTEM,上层有些对象仍然不一定方便直接修改。
公开分析提到,银狐会在 SYSTEM 基础上进一步获取 TrustedInstaller Token,并进行模拟或继承,然后去修改一些受保护组件。
常被提到的例子包括:
C:\Windows\System32\TimeBrokerClient.dll
以及与其相关的重命名、替换、旁加载等行为,例如分析里经常提到:
Rename TimeBrokerClient.dll
BrokerClientCallback.dll
深入原因
因为从攻击者角度看,进入 SYSTEM 只是“已经足够强”,但不代表“所有受保护文件都能随意改”。
如果样本的目标是:
- 替换受保护 DLL。
- 修改系统组件加载关系。
- 调整某些默认由
TrustedInstaller拥有的资源。
那么继续往 TrustedInstaller 走就会更稳。
从检测角度,这一层的价值在于:它说明样本并不满足于单纯获得高权限,而是想进一步控制系统受保护资源。
BYOVD
在较新的 ValleyRAT / Winos 4.0 相关公开报告中,已经能看到更高阶的一层:
Bring Your Own Vulnerable Driver
也就是常说的:
BYOVD
它的思路不是自己写一个未签名内核驱动,而是想办法加载一个合法签名但存在已知漏洞的驱动,再利用这个驱动在内核里执行高危操作。
公开分析中提到过的行为包括:
- 加载存在问题的签名驱动,例如
wsftprm.sys。 - 借助
NtLoadDriver、RtlAdjustPrivilege等相关能力完成驱动加载。 - 在拿到 Ring0 之后,尝试关闭 EDR、绕过 PPL、隐藏进程或进一步削弱系统防护。
风险
因为这意味着提权已经不再停留在用户态高权限,而是继续向内核态推进。
一旦样本真的走到这一步,防守难度会显著上升。原因包括:
- 某些用户态安全拦截会失效或被绕开。
- 攻击者可能直接干预安全产品驱动。
- 受保护进程、内核回调、进程可见性等边界会被进一步破坏。
不过需要注意的是,并不是每个银狐样本都会稳定走到这一层。更准确的说法是:这是部分更新变种已经出现的补充型高权限手段。
提权后的行为操作
提权后的重点不是“获得了什么权限”,而是这些权限被用于访问什么、执行什么。常见行为可归纳为:
进程发现
→ 打开高权限进程
→ 读取或写入进程内存
→ 远程执行或进程注入
→ 复制、模拟或使用高权限令牌
→ 持久化、凭据访问、横向移动或外传
进程发现与目标选择
提权后通常先枚举进程,再根据进程身份、权限和用途选择目标:
CreateToolhelp32Snapshot
→ Process32FirstW / Process32NextW
→ NtOpenProcess
常见目标可以分为几类:
- 高权限系统进程:
System、services.exe、svchost.exe,用于获得 SYSTEM 上下文或进行高权限注入。 - 登录与认证相关进程:
winlogon.exe、lsass.exe,用于访问登录会话、令牌或认证材料。 - 桌面与用户会话进程:
explorer.exe、taskhostw.exe,用于进入交互式用户会话、隐藏执行或借助已有线程运行代码。 - 命令和脚本宿主:
powershell.exe、cmd.exe,用于执行后续命令或作为注入、代理执行的目标。 - 自身或子进程:用于在不跨越高权限边界的情况下完成代码加载、参数传递或降低注入失败风险。
目标进程名称本身不能直接证明恶意。需要结合调用者是否刚刚启用权限、申请的访问权限、目标进程所属账户以及后续内存和线程操作判断。
进程打开与内存读取
打开目标进程后,木马可能先读取内存,了解目标进程的模块、地址和运行状态:
NtOpenProcess
→ ReadProcessMemory / NtReadVirtualMemory
常见用途包括:
- 获取模块基址、函数地址和进程参数;
- 定位适合写入的内存区域;
- 判断目标进程是否已加载特定模块;
- 读取登录会话、令牌或其他敏感数据。
对 lsass.exe、winlogon.exe 等认证相关进程的异常读取,需要重点关注;但单次读取只能说明存在访问行为,不能单独证明已经完成凭据窃取。
远程进程注入
远程注入通常包括“在目标进程分配内存、写入载荷、触发执行”三个阶段:
OpenProcess / NtOpenProcess
→ VirtualAllocEx
→ WriteProcessMemory / NtWriteVirtualMemory
→ 触发目标线程执行
写入内容可能是 shellcode、DLL 路径、函数参数或其他执行数据。若后续出现内存权限从可写变为可执行,例如 VirtualProtectEx 或 NtProtectVirtualMemory,应进一步关注是否存在代码注入。
注入目标通常包括:
explorer.exe:进入用户桌面会话或借助可信进程隐藏执行;svchost.exe、services.exe:以高权限服务进程为宿主;taskhostw.exe:借助系统任务宿主执行载荷;powershell.exe、cmd.exe:执行命令或脚本;- 木马自身创建的子进程:通过继承句柄或权限完成代码加载。
NtWriteVirtualMemory 只说明发生了跨进程写入,不等于代码已经执行。需要继续关联远程线程、APC、线程上下文修改、模块加载和目标进程后续行为。
APC 注入
APC 注入通常先将代码或参数写入目标进程,再把 APC 函数排入目标线程:
NtOpenProcess
→ VirtualAllocEx
→ NtWriteVirtualMemory
→ OpenThread
→ QueueUserAPC
APC 不一定会立即执行,目标线程通常需要进入可警觉(alertable)状态。因此,以下行为组合比单独的 QueueUserAPC 更有价值:
远程进程内存写入
+ 远程线程句柄
+ QueueUserAPC
+ 目标线程随后运行或目标进程产生新行为
常见目标是 explorer.exe、svchost.exe、taskhostw.exe 等长期运行进程,也可能是木马创建的子进程。检测时应确认 APC 投递的线程是否属于目标进程,以及目标进程之后是否出现异常模块加载、文件操作或网络连接。
远程线程与线程劫持
部分木马会直接创建远程线程执行写入的代码:
VirtualAllocEx
→ WriteProcessMemory
→ CreateRemoteThread / NtCreateThreadEx / RtlCreateUserThread
另一种方式是暂停目标线程并修改其执行上下文:
OpenThread
→ SuspendThread
→ GetThreadContext / NtGetContextThread
→ SetThreadContext / NtSetContextThread
→ ResumeThread
线程劫持可能没有明显的远程线程创建事件,但通常会同时出现线程暂停、上下文修改和目标进程内存写入。
令牌复制与身份模拟
木马也可能从高权限进程获取令牌,再将其绑定到当前线程或用于创建新进程:
NtOpenProcess(高权限进程)
→ OpenProcessToken
→ DuplicateTokenEx
→ ImpersonateLoggedOnUser / SetThreadToken
或者:
DuplicateTokenEx
→ CreateProcessAsUserW / CreateProcessWithTokenW
常见令牌来源目标包括 winlogon.exe、services.exe、lsass.exe 和 System。这类行为可能使当前线程或新进程进入 SYSTEM 上下文,但单独出现 DuplicateTokenEx 不能证明令牌复制成功,需结合目标进程、令牌类型、返回结果和后续高权限操作判断。
提权后的常见目的
- 访问认证进程、浏览器数据、系统密钥和其他用户目录;
- 注入高权限或受信任进程,隐藏自身并继承目标权限;
- 创建或修改服务、计划任务、登录项等高权限持久化;
- 枚举并削弱安全产品、驱动、防火墙或审计策略;
- 访问共享和远程服务,进行横向移动;
- 收集、压缩、加密并外传敏感数据;
- 清理日志、删除投放文件或建立备用恢复机制。
重点检测组合
优先关注以下连续行为:
LookupPrivilegeValueW
→ AdjustTokenPrivileges
→ NtOpenProcess(高权限进程)
→ ReadProcessMemory / NtWriteVirtualMemory
NtWriteVirtualMemory
→ QueueUserAPC / CreateRemoteThread / 线程上下文修改
NtOpenProcess(高权限进程)
→ OpenProcessToken
→ DuplicateTokenEx
→ 身份模拟或高权限进程创建
研判时应把上述链路与调用者路径、签名、父子进程关系、目标进程权限以及后续文件、注册表、服务和网络行为关联起来。单个 AdjustTokenPrivileges、NtOpenProcess、NtWriteVirtualMemory 或 DuplicateTokenEx 都不足以单独证明提权、注入或令牌窃取成功。
归类
从目前公开样本特征来看,银狐更典型的提权路线不是:
利用某个 Windows 本地提权 CVE
↓
直接拿到 SYSTEM
而更像是:
UAC Bypass
→ 管理员
→ SeDebugPrivilege
→ Winlogon Token Theft
→ SYSTEM
→ TrustedInstaller
以及在部分更新变种中继续补上:
BYOVD
→ Kernel Privilege
这条链的意义在于,它提醒我们:很多恶意样本并不需要真正在本机上打穿一个 0day 或 LPE 漏洞,也能通过对系统内建权限机制、令牌机制和驱动加载机制的滥用,逐层把自己的权限堆上去。
排查
如果是从蓝队或应急响应角度看,下面这些信号比较值得组合分析:
- 与 UAC 绕过相关的系统组件异常启动,尤其是
computerdefaults.exe、fodhelper.exe、sdclt.exe、eventvwr.exe等。 - 某个原本不应具备调试能力的进程突然启用
SeDebugPrivilege。 - 对
winlogon.exe、lsass.exe、services.exe等敏感进程出现异常强访问。 - 进程令牌复制、模拟用户、以新令牌创建进程等行为。
TrustedInstaller上下文被异常拉起,或者受保护 DLL、系统组件发生可疑重命名与替换。- 主机上加载异常驱动,特别是和
NtLoadDriver、签名驱动滥用、EDR 关闭动作接近出现的情况。
真正高价值的不是某一个点,而是这些点能不能拼成完整链路。
小结
银狐木马的提权思路,可以概括为一句话:
它并不总是依赖某个本地提权漏洞,而是更擅长把 Windows 现有的权限提升路径、令牌操作能力和受保护组件访问链路串起来,逐层把权限从普通用户推到管理员、SYSTEM、TrustedInstaller,甚至在部分新变种里继续推到内核态。
所以如果只把它理解成“某个 UAC 绕过样本”,或者只把它理解成“会偷 SYSTEM Token 的木马”,都还不够完整。
更准确的理解应该是:
银狐常见提权路线
=
UAC Bypass
→ SeDebugPrivilege
→ Access Token Manipulation
→ TrustedInstaller Impersonation
→ (部分样本) BYOVD / Kernel
参考资料
- Winos 4.0 – ValleyRat & Silver Fox - X-Industry - Red Sky Alliance
- Silver Fox Expands Winos 4.0 Malware Targets Southeast Asia With Privilege Escalation - Intertec Systems
- Cracking ValleyRAT: From Builder Secrets to Kernel Rootkits - SecOpsDaily 社区转载线索
第 3 条属于社区传播线索,可信度和严谨性不应与正式厂商分析报告等量齐观。实际研判时,建议优先以厂商报告、样本复现和本地遥测证据作为依据。