内网横向移动与提权
一、概述在近年来的网络安全攻防对抗中内网横向移动Lateral Movement与权限提升Privilege Escalation始终是攻击链中最关键的环节。一旦攻击者获取了内网中某台主机的初始访问权限下一步就是以此为跳板逐步向内网深处渗透最终抵达核心资产——域控制器Domain Controller、数据库服务器、文件服务器等关键节点。核心定义横向移动是指攻击者在获得内网某台终端或服务器的初始访问权限后利用该权限作为跳板向内网中的其他主机、服务或域控制器进行扩散的过程。提权则是指从低权限账户提升到高权限账户如 SYSTEM 或 Domain Admin的过程。从攻击链Kill Chain的角度来看横向移动和提权处于后渗透阶段它们通常交替进行攻击者先在一台机器上提权获取更高权限再使用该权限横向移动到下一台机器循环往复直至控制整个域环境。二、前置阶段内网信息收集在内网中进行横向移动之前充分的信息收集是决定成败的关键。攻击者需要回答两个核心问题我是谁当前机器角色与权限和我在哪在内网拓扑中的位置。2.1 主机基础信息获取初始权限后优先确认当前主机是否处于蜜罐环境以及是否存在终端防护软件EDR、杀软等。通过tasklist /svc、net start、whoami /all等命令快速了解进程、服务、用户和权限信息。2.2 凭证信息收集凭证是横向移动的通行证。攻击者会从多个来源收集凭证信息凭证来源常见位置/工具说明系统内存Mimikatz, ProcDump Mimikatz从 LSASS 进程转储明文密码和 NTLM HashSAM 数据库C:\Windows\System32\config\SAM本地账户的 Hash 存储位置NTDS.ditC:\Windows\NTDS\ntds.dit域控上所有域用户的 Hash 存储浏览器保存密码Chrome, Firefox, Edge 等浏览器内置密码管理器RDP 连接历史注册表 / 配置文件远程桌面连接保存的凭据配置文件Web.config, .env, 数据库配置应用明文存储的数据库连接字符串Wi-Fi 密码netsh wlan show profiles主机保存的无线网络密码2.3 域环境信息收集在域环境中攻击者会使用net user /domain、net group Domain Admins /domain等命令枚举域用户、域管理员组、域控地址。更进阶的方法包括使用 BloodHound/SharpHound 进行 AD 攻击路径分析以及通过 PowerView 等工具进行自动化的域侦察。三、横向移动技术体系横向移动的核心手法可以归纳为两大类别利用远程服务和利用窃取的凭证。前者依赖于目标主机上开启的远程管理服务后者则通过重用已获取的认证凭据来访问其他主机。3.1 远程服务利用Windows 域环境中默认开放了大量远程管理服务这些服务在提供便利管理的同时也成为攻击者横向移动的通道。以下是常用的远程执行技术对比技术默认端口所需权限特点PsExec445 (SMB)管理员Sysinternals 工具通过 ADMIN$ 共享上传服务程序执行返回 SYSTEM 权限。使用最为广泛但特征明显WMI135 (DCOM)管理员Windows 原生管理接口通过 Win32_Process 创建进程。传统 wmiexec.py 依赖 Win32_Process::Create 方法无文件落地但检测特征逐渐成熟SMBExec445 (SMB)管理员通过 SMB 命名管道执行命令输出通过 SMB 共享回传WinRM5985/5986管理员Windows 远程管理使用 WS-Management 协议较新的 Windows 版本默认启用RDP3389任意用户远程桌面协议可获得交互式图形界面常用于跳跃到目标主机DCOM135管理员通过 MMC20.Application、ShellWindows 等 COM 对象进行远程执行任务计划445管理员通过schtasks远程创建计划任务执行命令较为隐蔽SSH22凭证Linux/Unix 环境中最常用的横向移动方式3.2 凭证传递攻击凭证传递是内网横向移动中最核心的攻击技术攻击者无需破解明文密码仅凭哈希值或 Kerberos 票据即可在域内横向移动。以下是三种主要攻击方式的对比攻击类型利用凭证认证协议适用场景PTH (Pass The Hash)NTLM HashNTLM通过 LM/NTLM Hash 直接访问远程主机或服务无需明文密码。未打 KB2871997 补丁时任意用户均可连接打了补丁后仅 Administrator 可连接PTK (Pass The Key)AES256 KeyKerberos当系统安装了 KB2871997 补丁且禁用了 NTLM 时使用 AES256 密钥代替 NTLM Hash 进行攻击PTT (Pass The Ticket)Kerberos TicketKerberos利用 Kerberos 票据TGT/TGS进行攻击将合法票据注入内存实现认证。核心攻击手法包括黄金票据、白银票据、MS14-068[6]Pass The Hash 攻击流程PTH 是最经典的横向移动方式。攻击者首先通过 Mimikatz 从内存中提取 NTLM Hash然后使用 Impacket 工具包中的 psexec.py、wmiexec.py 或 smbexec.py 进行传递# 使用 Mimikatz 提取 Hash mimikatz.exe privilege::debug sekurlsa::logonpasswords exit # 使用 Impacket 进行 PTH 横向移动 python3 psexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator192.168.3.32 python3 wmiexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator192.168.3.32 python3 smbexec.py -hashes :518b98ad4178a53695dc997aa02d455c ./administrator192.168.3.32注意psexec.py 返回 SYSTEM 权限wmiexec.py 返回当前用户权限smbexec.py 返回 SYSTEM 权限。三者底层实现不同检测特征也各有差异实战中应根据目标环境选择最隐蔽的方式。Kerberos 票据攻击Kerberos 票据攻击是域环境中最具破坏力的攻击方式。以下是三种核心票据攻击的对比票据类型所需权限伪造对象影响范围黄金票据 (Golden Ticket)需要 krbtgt 账户的 NTLM HashTGT (票据授予票据)可伪造域内任意用户包括不存在的用户权限维持最强。即使管理员修改密码攻击者仍可通过黄金票据访问白银票据 (Silver Ticket)需要目标服务的 NTLM HashTGS (服务票据)仅能访问特定服务但更加隐蔽不需要与 DC 通信MS14-068普通域用户PAC (特权属性证书)利用 KDC 漏洞 (CVE-2014-6324) 将普通域用户提升至域管理员需目标域控未打补丁3.3 漏洞利用横向移动除了凭证传递利用系统漏洞进行横向移动也是重要手段。典型漏洞包括MS17-010 (永恒之蓝)SMBv1 远程代码执行漏洞影响 Windows 7/2008 R2 及更早版本。通过 Metasploit 的 exploit/windows/smb/ms17_010_eternalblue 模块可直接获取 SYSTEM 权限。MS08-067Server 服务远程代码执行漏洞影响 Windows 2000/XP/2003。经典的远程溢出漏洞利用成功后可直接获得 SYSTEM 权限。Zerologon (CVE-2020-1472)Netlogon 协议特权提升漏洞攻击者可将域控计算机账户密码置空从而获取域控完全控制权。CVSS 评分 10.0。NoPac (CVE-2021-42278)AD 域权限提升漏洞攻击者可通过创建机器账户并修改其 SAM 账户名来冒充域控从而获取域管理员权限。四、权限提升技术体系权限提升Privilege Escalation是指从低权限账户提升到高权限账户的过程。在内网渗透中提权通常分为本地提权单台主机上的权限提升和域提权在域环境中提升到域管理员。4.1 Windows 本地提权Windows 提权技术丰富多样以下按攻击面分类梳理主要技术路线4.1.1 服务配置错误Windows 服务Service是最常见的提权入口之一。当服务以 SYSTEM 权限运行且其可执行文件路径或配置可被低权限用户修改时攻击者可以替换服务程序来获取 SYSTEM 权限# 枚举可修改的服务 accesschk.exe -uwcqv Authenticated Users * /accepteula accesschk.exe -uwcqv Users * # 修改服务配置 sc config VulnService binPath C:\malicious.exe sc start VulnService4.1.2 不安全的服务权限通过accesschk.exe或 PowerShell 检查当前用户是否有权限修改或启动特定服务。重点关注以下情况服务二进制路径可写binPath 可被修改未引用的服务路径Unquoted Service Path——路径中包含空格且未用引号包裹服务注册表权限配置不当4.1.3 令牌窃取 (Token Impersonation)Windows 访问令牌Access Token代表用户的安全上下文。当攻击者拥有SeImpersonatePrivilege或SeAssignPrimaryTokenPrivilege权限时可以使用 Juicy Potato、RoguePotato、PrintSpoofer 等工具进行令牌窃取将权限提升至 SYSTEM。# 检查当前令牌权限 whoami /priv # 使用 PrintSpoofer 提权 PrintSpoofer.exe -i -c cmd.exe4.1.4 UAC 绕过用户账户控制UAC是 Windows 的重要安全机制但存在多种绕过方式。常见方法包括利用fodhelper.exe、eventvwr.exe等自动提升权限的 Windows 程序通过修改注册表键值来劫持其执行流程。4.1.5 DLL 劫持当应用程序在加载 DLL 时未指定完整路径Windows 会按照特定顺序搜索 DLL。攻击者可以在搜索路径中较前的目录放置恶意 DLL实现代码执行。常见场景包括程序安装目录可写、缺少的 DLL 文件等。4.1.6 计划任务与启动项通过schtasks命令或autorunsc.exe枚举计划任务和启动项寻找可被修改的任务或启动程序如果目标程序以高权限运行且其路径可写则可以替换为恶意程序实现提权。4.2 Linux 本地提权Linux 环境下的提权思路与 Windows 有所不同主要围绕文件权限、内核漏洞和配置缺陷展开提权技术原理检测命令SUID 提权SUID 允许二进制程序以文件所有者的身份运行。如果 root 拥有的程序设置了 SUID 位普通用户执行时即以 root 身份运行find / -perm -us -type f 2/dev/nullSudo 配置错误sudoers 文件中配置了某些命令可以无密码以 root 身份执行或可执行危险的命令如 vim、less 等带有 shell 逃逸的编辑器sudo -lCapabilitiesLinux Capabilities 将超级用户的权限细分为独立单元。不当的 Capabilities 分配如 cap_setuidep可能导致提权getcap -r / 2/dev/nullCron 任务以 root 身份运行的定时任务如果引用了可写的脚本或二进制文件可被替换为恶意代码cat /etc/crontabls -la /etc/cron.*内核漏洞利用未打补丁的内核漏洞如 Dirty Cow CVE-2016-5195、Dirty Pipe CVE-2022-0847进行本地提权uname -acat /etc/os-releaseDocker 组提权如果用户属于 docker 组可以通过挂载宿主机文件系统的方式获取 root 权限id(检查 docker 组)自动化提权工具Linux 提权推荐使用linpeas.sh进行自动化枚举该工具会系统性地检查 SUID、Capabilities、Cron 任务、内核漏洞、敏感文件等所有常见提权向量大幅提高效率。4.3 域环境提权域环境中的提权通常涉及利用 Active Directory 的配置缺陷或协议漏洞目标是从普通域用户提升到域管理员Domain Admin或直接控制域控攻击技术利用条件效果DCSync拥有 Replicating Directory Changes 权限的用户如 Domain Admins、Administrators、Domain Controllers 组模拟域控向其他域控请求密码哈希获取任意域用户的 NTLM Hash包括 krbtgt 账户Kerberoasting任意域用户可请求服务票据 (TGS)请求以服务账户可能有高权限身份运行的 SPN 的 TGS 票据离线破解获取明文密码AS-REP Roasting目标用户启用了不要求 Kerberos 预身份验证获取 AS-REP 响应中的数据离线破解用户密码非约束委派配置了非约束委派的计算机账户已攻陷当域管理员登录到该计算机时可窃取其 TGT从而冒充域管理员访问任意服务DACL 滥用对域对象具有 WriteDACL 等写入权限修改 ACL 授予自己 DCSync 权限或强制重置密码五、检测与防御策略理解攻击手法是构建有效防御体系的前提。以下是针对横向移动与提权的主要检测与防御方案5.1 检测策略检测维度关键指标检测方法异常进程创建svchost.exe 或 services.exe 创建 cmd.exe / powershell.exe 子进程WmiPrvSE.exe 产生异常子进程Sysmon Event ID 1 (进程创建)关注父进程-子进程异常关系服务创建非预期服务名称的创建如随机字符串Windows Event ID 7045Sysmon Event ID 13 (注册表修改)凭证访问LSASS 进程访问SAM 注册表读取Sysmon Event ID 10 (进程访问 LSASS)Windows Event ID 4663异常网络连接非工作时间的大量 SMB/RDP 连接横向移动到非相邻主机网络流量分析Windows Event ID 4624/4625 (登录事件)Kerberos 异常TGT 票据有效期异常长默认10小时PAC 签名验证失败Windows Event ID 4769 (服务票据请求)Event ID 4771 (预身份验证失败)任务计划异常非管理员的计划任务创建/修改Windows Event ID 4698/4702 (计划任务创建/修改)5.2 防御措施最小权限原则严格控制本地管理员组成员数量避免使用域管理员账户登录非关键系统。禁用不必要的本地管理员共享账户实施 Local Administrator Password Solution (LAPS)。凭证保护启用 Credential Guard 和远程 Credential Guard 保护 LSASS 进程。部署 Windows Defender ATP 的 Credential Theft 检测功能。禁止在内存中存储明文密码。网络分段通过 VLAN 和防火墙规则将不同安全级别的区域隔离开限制横向移动的通道。用户终端、服务器、域控之间实施严格的访问控制策略。补丁管理建立快速补丁响应机制及时修复 MS17-010、Zerologon、NoPac 等高危漏洞。关注每月补丁星期二发布的安全更新。纵深防御单一防御措施无法应对所有攻击。建议采用假设已被攻破Assume Breach的思维构建纵深防御体系阻止初始入侵 → 限制横向移动 → 检测异常行为 → 快速响应处置。六、总结内网横向移动与提权是现代网络攻击中最核心的战术环节。从攻击者的视角横向移动的成功依赖于凭证获取、远程服务利用和系统漏洞三个支点。PTH、PTT、黄金票据等凭证攻击技术使得攻击者可以在不破解密码的情况下畅游内网而 Windows 和 Linux 系统中丰富的提权向量则为攻击者提供了从普通用户到 SYSTEM/root 的路径。从防御者的视角有效的防护需要覆盖以下关键层面减少攻击面关闭不必要的远程管理服务如 SMBv1、WinRM、实施严格的网络分段保护凭证部署 Credential Guard、LAPS限制域管理员在非信任主机上的登录强化检测部署 Sysmon 和 EDR 进行端点监控关注异常进程创建、LSASS 访问和计划任务修改及时修复建立漏洞管理流程优先修复可被用于横向移动和提权的高危漏洞纵深防御假设攻击者已经进入内网在每一层都设置检测和阻断机制攻防对抗是动态的博弈。随着防御技术的不断进步攻击手法也在持续演进——从传统的 PsExec 到无文件 WMI 攻击从简单的 PTH 到复杂的 Kerberos 委派利用。安全从业者需要持续跟踪最新的攻击趋势和防御技术不断提升自身在内网安全领域的认知深度。