内网横向移动技术与防御详解
这是一个非常核心且重要的攻防对抗领域。下面我将为您详细解析内网横向移动的技术、原理,并给出相应的防御和检测建议。
一、 什么是内网横向移动?
横向移动 是指攻击者在成功突破并控制一台内网主机(跳板机/失陷主机)后,以该主机为基点,向网络内部其他主机和服务器进行渗透,扩大战果的过程。
核心目标:获取更关键系统的访问权限,如域控制器、文件服务器、数据库服务器等,最终达到窃取核心数据、部署持久化后门或破坏业务的目的。
二、 横向移动技术详解
横向移动是一个系统性的过程,通常遵循一定的流程。下图清晰地展示了攻击者在横向移动中所遵循的典型生命周期:
下面,我们将对图中每个关键阶段的核心技术进行详细解析。
阶段一:信息收集(踩点)
在行动之前,攻击者需要了解内部网络环境。
网络结构:使用
ipconfig /all
、route print
、arp -a
查看本机IP、路由表和ARP缓存。存活主机发现:使用
ping
扫描、nmap
、Masscan
等工具探测存活主机。端口和服务发现:扫描内网主机的开放端口(如SMB的445、RDP的3389、SSH的22、WinRM的5985/5986),确定攻击面。
域内信息收集(如果目标在AD域中):
net view /domain
: 查看域名称。net group "domain computers" /domain
: 查看域内所有计算机。net user /domain
: 查看域用户。net group "domain admins" /domain
: 查看域管理员。dsquery
、bloodhound
: 高级工具,用于分析域内信任关系和攻击路径。
阶段二:凭证窃取与准备
获取合法用户的凭证是最高效的横向方式。
明文密码窃取:
Mimikatz: 神器中的神器,可以从LSASS进程内存中提取明文密码、NTLM哈希、Kerberos票据。
Procdump + Mimikatz: 先用Procdump转储LSASS进程,再到本地用Mimikatz分析,规避AV。
WCE、LaZagne: 其他凭证抓取工具。
哈希传递:
原理: 在Windows中,系统不存储明文密码,而是存储密码的哈希值(NTLM Hash)。在很多情况下(如NTLM认证),系统直接使用哈希值进行身份验证,而不需要明文密码。
攻击: 攻击者获取了某个用户的NTLM Hash后,即使不知道明文密码,也能使用这个Hash直接向其他机器进行身份验证。
mimikatz # sekurlsa::pth /user:username /domain:target_ip /ntlm:hash
工具: Mimikatz、Impacket套件中的
psexec.py
、smbexec.py
等。
票据传递:
原理: 在Kerberos认证中,用户会从域控制器获取一个访问特定服务的票据。如果攻击者获取了用户的Kerberos票据(特别是TGT票据),就可以冒充该用户访问域内任何他有权限的服务。
黄金票据: 伪造TGT票据,需要获取
krbtgt
用户的NTLM Hash。拥有黄金票据,可以生成域内任何用户的TGT,从而访问任何资源。白银票据: 伪造针对特定服务的ST票据,需要获取服务主机的NTLM Hash。权限不如黄金票据,但更隐蔽。
密码爆破与撞库:
如果窃取的凭证无法直接使用,攻击者会尝试对内网其他主机的常见服务(如SMB、RDP、SSH)进行密码爆破,或使用已获得的密码进行撞库攻击(密码重用)。
阶段三:利用与执行
拿到凭证后,攻击者开始移动。
Windows原生工具利用:
PsExec: 微软官方工具,使用SMB协议在远程主机上执行命令。攻击者常用其变种(如Impacket里的psexec)进行横向移动。
WMI: 强大的管理系统。通过WMI可以执行命令、抓取进程列表等。
wmic /node:"target_ip" /user:"username" /password:"password" process call create "cmd.exe /c ipconfig > C:\temp\result.txt"
WinRM: 允许远程使用PowerShell。
Enter-PSSession -ComputerName target_ip -Credential $cred
计划任务: 通过创建远程计划任务来执行命令或 payload。
schtasks /create /s target_ip /u username /p password /tn backdoor /tr "C:\shell.exe" /sc hourly
远程服务利用:
SMB: 利用SMB协议上传文件或执行命令。
RDP: 如果开启了RDP服务,攻击者可以直接远程登录,进行图形化交互操作。
SSH: 在Linux环境或混合环境中,通过SSH执行命令。
应用层服务利用:
攻击数据库(如MySQL、MSSQL)、Web服务(如Weblogic、Tomcat)的弱口令或漏洞,获取服务器权限。
漏洞利用:
利用内网主机存在的永恒之蓝、PrintNightmare等漏洞直接获取系统权限,无需凭证。
三、 防御与检测建议
防御横向移动需要一个纵深防御体系,遵循“零信任”原则。
1. 加固与预防
最小权限原则:
为用户和服务分配完成其任务所必需的最小权限。避免使用域管理员账户登录普通工作站。
实施本地管理员密码解决方案,或禁用本地管理员账户,避免密码重用。
强密码策略:
强制使用长且复杂的密码,定期更换。
多因素认证:
对VPN、RDP、关键系统登录强制实施MFA,即使凭证泄露,攻击者也难以利用。
网络分段与微隔离:
根据业务功能将网络划分为不同的安全区域(VLAN),并在区域之间部署防火墙,严格控制流量(例如,办公网段不能直接访问核心数据库段)。
实施东西向流量管控。
补丁管理:
及时安装系统和应用补丁,尤其是高危漏洞补丁。
服务加固:
关闭不必要的服务和端口(如445、135、139、3389等)。如果必须开启,限制访问源IP。
禁用SMBv1,升级到SMBv3并启用签名。
谨慎使用WinRM、WMI,限制可访问的用户。
保护凭证:
启用 受保护的凭据 功能,防止内存中明文密码的存储。
配置 LSA保护,防止非特权进程读取LSASS内存。
使用 Credential Guard 来保护Kerberos票据和NTLM哈希。
2. 监控与检测
监控异常登录:
监控来自非工作时间、非常用地点的RDP、SMB等登录事件。
监控哈希传递行为:例如,一个主机在短时间内使用同一个NTLM Hash尝试登录多台其他主机。
监控票据请求:异常数量的TGT请求或异常用户的票据请求。
启用并集中审计日志:
启用Windows安全日志(如4688、4624、4625、4672等),并发送至中央SIEM系统。
重点关注:
使用WMI、PsExec、WinRM的远程命令执行。
来自单一源IP的大量失败登录尝试(爆破)。
敏感用户组(如Domain Admins)的登录行为。
部署EDR/NDR:
终端检测与响应 在主机层面监控进程行为、命令行参数、网络连接等,能有效发现Mimikatz、异常PowerShell脚本等。
网络检测与响应 在网络层面分析东西向流量,识别异常的协议通信、横向移动流量模式。
使用威胁狩猎:
主动假设攻击者已在内网,使用BloodHound等工具分析域内攻击路径,并主动搜索相关攻击痕迹。
3. 响应与恢复
制定应急响应计划:一旦发现横向移动,能快速定位失陷主机、隔离威胁、清除后门和恢复业务。
溯源分析:分析攻击链条,找出初始入侵点,修补安全漏洞。
总结
内网横向移动是高级持续性威胁的核心环节,防御的重点在于增加攻击者的成本和难度。通过“预防+检测+响应” 的综合安全体系,构建纵深防御,才能有效遏制攻击者在内部的蔓延,保护核心数字资产。