利用wmic对Windows主机批量执行脚本
node-wmic 用法
node-wmic 用法Node-wmi是一个Node.js模块,用于通过WMI(Windows Management Instrumentation)与Windows系统交互。
以下是Node-wmi的基本用法:首先,安装Node-wmi模块:```bashnpm install wmi```然后,在你的Node.js脚本中引入Node-wmi模块:```javascriptconst wmi = require('wmi');```接着,使用`wmi.query()`方法执行WMI查询,并传入一个包含查询条件的字符串作为参数。
例如,以下代码列出了所有的硬盘驱动器:```javascriptwmi.query('SELECT * FROM Win32_LogicalDisk').then((data) => { data.forEach((disk) => {console.log(`Name: ${disk.VolumeLabel}, Size: ${disk.Size}, FreeSpace: ${disk.FreeSpace}`);});}).catch((err) => {console.error(err);});```这段代码首先导入`wmi`模块,然后使用`wmi.query()`方法执行WMI 查询。
查询结果是一个Promise对象,所以我们使用`.then()`方法处理查询结果,并使用`.catch()`方法处理错误。
在查询结果中,每个逻辑磁盘都是一个数组,包含`VolumeLabel`(卷标)、`Size`(大小)、`FreeSpace`(可用空间)等属性。
我们通过遍历数组,输出每个磁盘的属性。
需要注意的是,Node-wmi只能访问本地系统的WMI信息。
如果要访问远程系统的WMI信息,需要使用其他工具,例如PowerShell的`Get-WmiObject`命令。
wmi用法
wmi用法
WMI(Windows Management Instrumentation)是一种用于管理和监控Windows操作系统的技术。
它提供了一组用于查询和控制系统信息的接口和命令行工具。
以下是一些常见的WMI用法示例:
1. 查询系统信息:
使用WMI可以获取许多系统信息,如操作系统版本、计算机名称、处理器信息等。
可以使用命令行工具wmic或者编程语言中的WMI接口来获取这些信息。
2. 执行系统管理任务:
WMI可以用于执行一些系统管理任务,比如创建和管理用户帐户、启动和停止服务、修改系统设置等。
可以使用脚本语言(如VBScript、PowerShell)或编程语言中的WMI接口来完成这些任务。
3. 监控系统性能:
使用WMI可以获取各种系统性能信息,例如CPU利用率、内存使用情况、磁盘空间等。
可以编写脚本或使用监控工具来收集和分析这些信息,以便进行性能优化和故障排查。
4. 远程管理:
WMI支持通过网络远程管理Windows系统,可以在远程计算机上执行各种管理任务,如远程启动/关闭计算机、安装软件、修改注册表等。
需要有相应的权限和网络访问权限。
5. 事件监视与处理:
WMI可以监视系统中发生的各种事件,如启动和关闭进程、文件修改、服务状态变化等,并可以触发相应的操作。
可以使用脚本或编程语言中的WMI接口来处理这些事件。
请注意,WMI的具体用法和语法取决于使用的编程语言或工具,你可以参考相关文档和教程来了解更多详细信息。
wmiexec原理
wmiexec原理Wmiexec原理简介Wmiexec是一种用于远程执行Windows管理工具基础设施(WMI)命令的工具。
它在渗透测试和网络攻击中被广泛使用,可以帮助攻击者在目标系统上执行各种操作。
本文将介绍Wmiexec的原理和工作方式。
Wmiexec是基于WMI的一种命令行工具,它允许用户在目标系统上执行命令并获取结果。
WMI是Windows操作系统中的一种管理框架,提供了一组API和工具,用于管理和监控本地和远程计算机。
Wmiexec利用WMI提供的功能和接口,通过建立与目标系统的远程连接,实现对目标系统的控制和操作。
Wmiexec的原理是利用WMI的功能通过RPC(远程过程调用)协议在本地和远程计算机之间进行通信。
首先,Wmiexec通过用户提供的凭据(用户名和密码)建立与目标系统的连接。
然后,它使用WMI提供的接口来执行命令并获取结果。
Wmiexec将命令发送到目标系统上的WMI服务,WMI服务根据命令执行相应的操作,并将结果返回给Wmiexec。
Wmiexec的工作方式可以分为以下几个步骤:1. 建立连接:Wmiexec通过用户提供的凭据建立与目标系统的连接。
凭据可以是管理员账户的用户名和密码,或者是具有足够权限的其他账户的凭据。
2. 认证和授权:一旦建立连接,Wmiexec将发送认证请求到目标系统上的WMI服务。
WMI服务将使用提供的凭据进行认证,并验证用户是否具有执行命令的权限。
如果认证和授权成功,WMI服务将返回一个令牌,用于后续的命令执行。
3. 执行命令:Wmiexec将命令发送到目标系统上的WMI服务。
命令可以是任何有效的WMI命令,例如执行脚本、查询系统信息、启动和停止服务等。
WMI服务根据命令执行相应的操作,并将结果返回给Wmiexec。
4. 获取结果:一旦命令执行完成,Wmiexec将获取并显示命令的执行结果。
结果可以是命令的输出、错误信息或其他相关信息。
Wmiexec可以将结果保存到本地文件或进行进一步的处理和分析。
如何通过Windows CMD命令执行批量文件操作
如何通过Windows CMD命令执行批量文件操作在Windows操作系统中,CMD命令是一种强大的工具,可以帮助我们完成各种任务。
其中,执行批量文件操作是CMD命令的一项重要功能。
本文将介绍如何通过CMD命令来批量处理文件,提高工作效率。
一、批量重命名文件重命名文件是我们在日常工作中经常遇到的需求。
通过CMD命令,我们可以轻松地批量重命名多个文件。
首先,打开CMD命令行界面。
可以通过按下Win+R键,然后输入“cmd”并按下回车键来打开CMD窗口。
接下来,我们需要进入到待处理文件所在的目录。
使用“cd”命令来切换目录,例如:```cd D:\files```这样,就进入了D盘下的files目录。
然后,使用“ren”命令来进行文件重命名。
例如,我们将所有以“old_”开头的文件名改为以“new_”开头,可以使用以下命令:```ren old_* new_*```这样,所有符合条件的文件名都会被批量重命名。
二、批量复制、移动文件在处理文件时,我们有时需要将文件从一个目录复制或移动到另一个目录。
CMD命令提供了相应的命令来实现这些操作。
首先,同样需要使用“cd”命令进入到待处理文件所在的目录。
然后,使用“copy”命令来复制文件。
例如,将当前目录下的所有txt文件复制到D盘下的backup目录,可以使用以下命令:```copy *.txt D:\backup```这样,所有符合条件的txt文件都会被批量复制到backup目录。
如果需要将文件移动到其他目录,可以使用“move”命令。
例如,将当前目录下的所有jpg文件移动到D盘下的pictures目录,可以使用以下命令:```move *.jpg D:\pictures```这样,所有符合条件的jpg文件都会被批量移动到pictures目录。
三、批量删除文件有时候,我们需要删除某个目录下的一批文件。
CMD命令提供了“del”命令来实现批量删除文件的操作。
利用Windows CMD命令执行程序和脚本的方法
利用Windows CMD命令执行程序和脚本的方法Windows操作系统是目前最为广泛使用的操作系统之一,而CMD命令行工具是Windows操作系统中非常重要的工具之一。
通过CMD命令行,我们可以执行各种操作,包括执行程序和脚本。
本文将介绍一些利用Windows CMD命令执行程序和脚本的方法。
一、执行可执行程序在Windows CMD命令行中执行可执行程序非常简单。
首先,我们需要找到可执行程序所在的路径。
然后,打开CMD命令行工具,输入可执行程序的路径和文件名,按下回车键即可执行该程序。
例如,我们有一个名为"program.exe"的可执行程序,位于"D:\myfolder"目录下。
我们可以通过以下步骤来执行该程序:1. 打开CMD命令行工具,可以通过按下Win+R键,然后输入"cmd"并按下回车键来打开CMD命令行工具。
2. 输入命令"cd D:\myfolder",按下回车键,将当前路径切换到"D:\myfolder"目录。
3. 输入命令"program.exe",按下回车键,即可执行该程序。
二、执行脚本文件除了执行可执行程序,我们还可以使用Windows CMD命令行来执行脚本文件。
脚本文件通常包含一系列命令,可以自动执行一些操作。
在Windows CMD命令行中执行脚本文件的方法有多种。
下面介绍两种常用的方法。
1. 使用"call"命令使用"call"命令可以执行批处理脚本文件(以.bat或.cmd为扩展名)。
首先,我们需要找到脚本文件所在的路径。
然后,打开CMD命令行工具,输入"call"命令,后跟脚本文件的路径和文件名,按下回车键即可执行该脚本文件。
例如,我们有一个名为"script.bat"的脚本文件,位于"D:\myfolder"目录下。
wmiexec原理
wmiexec原理WMIExec原理及其应用WMIExec是一种基于Windows Management Instrumentation (WMI) 的远程命令执行工具,它利用Windows操作系统中的WMI服务来执行命令,实现对远程计算机的控制。
WMIExec的原理非常简单,但却非常强大,因为WMI服务在Windows系统中广泛存在,几乎所有的Windows版本都支持它。
WMIExec利用WMI服务提供的接口和功能,实现了远程命令执行的能力。
WMI服务是Windows操作系统中的一种管理工具,它允许管理员通过一组API接口来管理和监控本地或远程计算机。
WMI 服务能够访问和操作操作系统的各种资源和功能,包括进程、服务、事件日志、注册表等。
通过WMIExec,攻击者可以在远程计算机上执行任意命令,获取系统信息,操纵系统资源等。
WMIExec的使用非常简单,只需要在命令行中输入相应的命令即可。
例如,要执行命令"ipconfig",只需要在命令行中输入"wmic /node:远程计算机名 process call create 'cmd /c ipconfig'",其中"远程计算机名"是目标计算机的名称。
WMIExec的应用非常广泛,特别是在渗透测试和红队行动中。
攻击者可以利用WMIExec来实现横向移动,即从一台受感染的计算机上远程控制其他计算机。
通过WMIExec,攻击者可以执行各种命令,包括上传和下载文件,执行系统命令,启动和停止服务等。
因此,WMIExec成为了渗透测试人员和黑客的一种常用工具。
然而,由于WMIExec具有潜在的危险性,它也被广泛用于防御和安全监测。
安全团队可以利用WMIExec来检测和阻止潜在的攻击行为。
通过监控WMI服务的活动,安全团队可以及时发现并应对威胁。
WMIExec的原理和应用都非常重要,对于渗透测试人员和安全团队来说都是必备的知识。
wmic命令用法及实例
wmic命令⽤法及实例wmic 获取进程名称以及可执⾏路径:wmic process get name,executablepathwmic 删除指定进程(根据进程名称):wmic process where name="qq.exe" call terminate或者⽤wmic process where name="qq.exe" deletewmic 删除指定进程(根据进程PID):wmic process where pid="123" deletewmic 创建新进程wmic process call create "C:\Program Files\Tencent\QQ\QQ.exe"在远程机器上创建新进程:wmic /node:192.168.1.10 /user:administrator /password:123456 process call create cmd.exe关闭本地计算机wmic process call create shutdown.exe重启远程计算机wmic /node:192.168.1.10/user:administrator /password:123456 process call create "shutdown.exe -r -f -m"更改计算机名称wmic computersystem where "caption='%ComputerName%'" call rename newcomputername更改帐户名wmic USERACCOUNT where "name='%UserName%'" call rename newUserNamewmic 结束可疑进程(根据进程的启动路径)wmic process where "name='explorer.exe' and executablepath<>'%SystemDrive%\\windows\\explorer.exe'" delete wmic 获取物理内存wmic memlogical get TotalPhysicalMemory|find /i /v "t"wmic 获取⽂件的创建、访问、修改时间复制代码代码如下:@echo offfor /f "skip=1 tokens=1,3,5 delims=. " %%a in ('wmic datafile where name^="c:\\windows\\system32\\notepad.exe" get CreationDate^,LastAccessed^,LastModified') do (set a=%%aset b=%%bset c=%%cecho ⽂件: c:\windows\system32\notepad.exeecho.echo 创建时间: %a:~0,4% 年 %a:~4,2% ⽉ %a:~6,2% ⽇ %a:~8,2% 时 %a:~10,2% 分 %a:~12,2% 秒echo 最后访问: %b:~0,4% 年 %b:~4,2% ⽉ %b:~6,2% ⽇ %b:~8,2% 时 %b:~10,2% 分 %b:~12,2% 秒echo 最后修改: %c:~0,4% 年 %c:~4,2% ⽉ %c:~6,2% ⽇ %c:~8,2% 时 %c:~10,2% 分 %c:~12,2% 秒)echo.pausewmic 全盘搜索某⽂件并获取该⽂件所在⽬录for /f "skip=1 tokens=1*" %i in ('wmic datafile where "FileName='qq' and extension='exe'" get drive^,path') do (set "qPath=%i%j"&@echo %qPath:~0,-3%)获取屏幕分辨率 wmic DESKTOPMONITOR where Status='ok' get ScreenHeight,ScreenWidthwmic PageFileSet set InitialSize="512",MaximumSize="512"设置虚拟内存到E盘,并删除C盘下的页⾯⽂件,重启计算机后⽣效wmic PageFileSet create name="E:\\pagefile.sys",InitialSize="1024",MaximumSize="1024"wmic PageFileSet where "name='C:\\pagefile.sys'" delete获得进程当前占⽤的内存和最⼤占⽤内存的⼤⼩:wmic process where caption='filename.exe' get WorkingSetSize,PeakWorkingSetSize以KB为单位显⽰复制代码代码如下:@echo offfor /f "skip=1 tokens=1-2 delims= " %%a in ('wmic process where caption^="conime.exe" getWorkingSetSize^,PeakWorkingSetSize') do (set /a m=%%a/1024set /a mm=%%b/1024echo 进程conime.exe现在占⽤内存:%m%K;最⾼占⽤内存:%mm%K)pause远程打开计算机远程桌⾯wmic /node:%pcname% /USER:%pcaccount% PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1检测是否插⼊U盘的批处理复制代码代码如下:@echo off((wmic logicaldisk where "drivetype=2" get name|find "⽆可⽤范例")>nul 2>nul)||for /f "skip=1 tokens=* delims=" %%i in ('wmic logicaldisk where "drivetype=2" get name') do echo U盘盘符是 %%ipauserem 查看cpuwmic cpu list briefrem 查看物理内存wmic memphysical list briefrem 查看逻辑内存wmic memlogical list briefrem 查看缓存内存wmic memcache list briefrem 查看虚拟内存wmic pagefile list briefrem 查看⽹卡wmic nic list briefrem 查看⽹络协议wmic netprotocal list brief【例】将当前系统BIOS,CPU,主板等信息输出到⼀个HTML⽹页⽂件,命令如下:::得到系统信息.bat,运⾏bat⽂件即可::系统信息输出到HTML⽂件,查看帮助: wmic /?::wmic [系统参数名] list [brief|full] /format:hform >|>> [⽂件名]wmic bios list brief /format:hform > PCinfo.htmlwmic baseboard list brief /format:hform >>PCinfo.htmlwmic cpu list full /format:hform >>PCinfo.htmlwmic os list full /format:hform >>PCinfo.htmlwmic computersystem list brief /format:hform >>PCinfo.htmlwmic diskdrive list full /format:hform >>PCinfo.htmlwmic memlogical list full /format:hform >>PCinfo.htmlPCinfo.html。
如何在Windows CMD命令中执行批量操作
如何在Windows CMD命令中执行批量操作在Windows操作系统中,CMD命令是一种非常强大的工具,它可以帮助我们快速完成各种任务。
在CMD命令中执行批量操作可以极大地提高我们的工作效率。
本文将介绍一些常用的方法和技巧,帮助读者更好地利用CMD命令来批量处理任务。
一、使用FOR循环批量操作文件FOR循环是CMD命令中非常常用的一个功能,它可以帮助我们对文件进行批量操作。
下面是一个简单的例子,演示如何使用FOR循环批量重命名文件。
```FOR %%G IN (*.txt) DO (REN "%%G" "new_%%G")```上述命令会将当前目录下所有的txt文件重命名为以"new_"为前缀的文件名。
通过修改REN命令的参数,我们可以实现更多的批量操作,比如删除文件、移动文件等。
二、使用管道符号(|)实现多个命令的组合CMD命令中的管道符号(|)可以将一个命令的输出作为另一个命令的输入。
这个特性可以帮助我们实现多个命令的组合,从而实现更复杂的批量操作。
下面是一个例子,演示如何使用管道符号将文件内容复制到剪贴板中:```TYPE file.txt | CLIP```上述命令会将file.txt文件的内容复制到剪贴板中。
通过组合不同的命令,我们可以实现更多的批量操作,比如筛选文件、统计文件行数等。
三、使用IF语句实现条件判断IF语句是CMD命令中的条件判断语句,它可以帮助我们根据不同的条件执行不同的操作。
下面是一个例子,演示如何使用IF语句批量删除文件。
```FOR %%G IN (*.txt) DO (IF %%~zG LSS 1024 (DEL "%%G"))```上述命令会删除当前目录下所有大小小于1KB的txt文件。
通过修改IF语句的条件,我们可以实现更多的批量操作,比如移动文件、复制文件等。
四、使用批处理文件实现自动化操作批处理文件是一种包含一系列CMD命令的文本文件,它可以实现自动化的批量操作。
Windows渗透测试中wmi的利用
Windows渗透测试中wmi的利⽤0x01 关于WMIWMI可以描述为⼀组管理Windows系统的⽅法和功能。
我们可以把它当作API来与Windows系统进⾏相互交流。
WMI在渗透测试中的价值在于它不需要下载和安装, 因为WMI是Windows系统⾃带功能。
⽽且整个运⾏过程都在计算机内存中发⽣,不会留下任何痕迹。
这⼀点是其它渗透测试⼯具所不能相⽐的。
信息收集1. 检索系统已安装的软件wmic product list brief |more2. 搜索系统运⾏服务wmic service list brief |more2. 搜索运⾏中的程序wmic process list brief |more4. 搜索启动程序wmic startup list brief |more5. 搜索共享驱动盘wmic netuse list brief |more6. 搜索时区wmic timezone list brief |more7. 搜索⽤户帐户wmic useraccount list brief |more8. 搜索计算机域控制器wmic ntdomain list brief9. 搜索登录⽤户wmic logon list brief |more9. 搜索已安装的安全更新wmic qfe list brief |more执⾏任务0x03 WMI0x03 WMI执⾏任务WMIC不仅仅只是⽤于检索系统信息。
在渗透测试中, 使⽤适当的命令,它也可以执⾏各种有⽤的任务。
1. 卸载和重新安装程序在渗透测试中, 我们经常遇到反病毒程序阻⽌payload运⾏。
这时候我们可以通过WMIC命令来卸载反病毒程序。
Wmic product where "name like '%forit%' " get name通过WMIC命令来停⽌运⾏反病毒服务第⼆步,第⼆步, 通过WMIC命令来停⽌运⾏反病毒服务Wmic process where name=“XXX.exe” call terminate0x04 PowerShell⾃从PowerShell的出现,WMI功能已经被完全整合到了PowerShell⾥⾯。
CMD命令行中“WMIC”命令的使用方法
CMD命令行中“WMIC”命令的使用方法WMIC(Windows Management Instrumentation Command-line)是Windows操作系统中提供的一个命令行工具,它允许用户通过命令行界面执行Windows Management Instrumentation(WMI)操作。
WMI是Windows管理的一个核心组成部分,提供了一个标准化的接口,用于访问操作系统、应用程序和服务的信息。
功能:使用户能够远程管理Windows系统。
提供了一个命令行界面来执行WMI查询和操作。
支持执行各种系统管理任务,如获取系统信息、启动服务、安装软件等。
用法:WMIC的基本语法如下:wmic [options] [command] [arguments]其中,options是可选的命令行选项,command是要执行的WMI命令,arguments是传递给命令的参数。
示例:获取计算机上所有服务的列表:wmic service list full获取当前登录用户的详细信息:wmic user list full启动一个服务:wmic computersystem list full请注意:在使用WMIC命令时,需要确保您有权限远程管理目标系统。
在实际应用中,可以根据需要使用不同的选项和命令来执行各种系统管理任务。
在上述示例中,执行命令后,将根据指定的命令执行相应的操作。
例如,获取所有服务的列表、获取当前登录用户的详细信息或列出所有计算机系统的详细信息。
由于WMIC命令涉及到系统管理操作,建议在使用时谨慎操作,并确保您有权限执行这些操作。
在执行任何涉及修改系统设置的操作之前,请确保您了解命令的功能和影响。
Windows CMD中如何执行批处理脚本
Windows CMD中如何执行批处理脚本Windows CMD(命令提示符)是Windows操作系统中的一个重要工具,它可以通过执行批处理脚本来自动化任务。
批处理脚本是一系列命令的集合,可以在CMD中一次性执行。
本文将介绍如何在Windows CMD中执行批处理脚本。
首先,我们需要了解一些基本的CMD命令。
CMD命令是一种文本命令,可以通过键入命令来执行特定的操作。
例如,"dir"命令可以列出当前目录中的所有文件和文件夹,"cd"命令可以切换当前目录,"mkdir"命令可以创建新的文件夹等等。
要执行批处理脚本,我们首先需要创建一个文本文件,并将其保存为以".bat"为扩展名的文件。
例如,我们可以创建一个名为"myscript.bat"的文件。
在这个文件中,我们可以编写一系列CMD命令来实现我们想要的功能。
在批处理脚本中,每一行代表一个CMD命令。
我们可以使用各种CMD命令来完成各种任务。
例如,如果我们想要在CMD中创建一个新的文件夹,我们可以在批处理脚本中写入以下命令:```mkdir NewFolder```这将在当前目录中创建一个名为"NewFolder"的新文件夹。
同样,我们可以使用其他CMD命令来执行不同的操作。
要执行批处理脚本,我们只需要在CMD中输入批处理脚本的文件名,并按下回车键。
例如,如果我们的批处理脚本文件名为"myscript.bat",我们可以在CMD 中输入以下命令:```myscript.bat```CMD将按顺序执行批处理脚本中的每个命令,并显示相应的输出。
我们可以根据需要编写多个命令来实现复杂的操作。
在批处理脚本中,我们还可以使用一些特殊的CMD命令来控制脚本的执行过程。
例如,我们可以使用"echo off"命令来关闭输出显示,以便在执行脚本时不显示每个命令的输出。
WindowsWMIC命令使用详解(附实例)
WindowsWMIC命令使用详解(附实例)Windows WMIC命令使用详解(附实例)执行“wmic”命令启动WMIC命令行环境。
这个命令可以在XP 或 .NET Server的标准命令行解释器(cmd.exe)、Telnet会话或“运行”对话框中执行。
这些启动方法可以在本地使用,也可以通过.NET Server终端服务会话使用。
第一次执行WMIC命令时,Windows首先要安装WMIC,然后显示出WMIC的命令行提示符。
在WMIC命令行提示符上,命令以交互的方式执行。
wimic的运行方式可以有两种法:1、搞入wimic进入后输入命令运行,键入wimic后出现wmic:root\cli>时你就可以输入命令了,如输入process显示所有的进程。
不知道有什么命令时可以输入用/?来显示帮助。
exit 是退出交互模式。
具体帮助用法如下:命令行帮助命令例子说明/? 或 -? 显示所有全局开关和别名的语法/ /? /user /? 显示指定全局开关的信息/? class /? 显示某个命令的信息/? memcache /? 显示某个别名的信息/? temperature get /? 显示别名与动词组合的信息/?:Full irq get /?:Full 显示动词的帮助信息如:我要查看process命令的帮助,键入:process/?后显示如下:wmic:root\cli>process /?PROCESS - 进程管理。
提示: BNF 的别名用法。
(<alias> [WMIObject] | <alias> [<path where>] | [<alias>] <path where>) [<verb clause>].用法:PROCESS ASSOC [<format specifier>]PROCESS CALL <method name> [<actual param list>]PROCESS CREATE <assign list>PROCESS DELETEPROCESS GET [<property list>] [<get switches>]PROCESS LIST [<list format>] [<list switches>]2、用wimic 后面直接跟命令运行,如wmic process 就显示了所有的进程了。
用WMIC命令脚本执行WMI任务
用WMIC命令脚本执行WMI任务━━━━━━━━━━━━━━━━━━━━━━━━━━MicrosoftWindowsManagementInstrumentation(WMI)。
中文名字叫Windows管理规范。
从Windows2000开始,WMI(Windows管理规范)就内置于操作系统中,并且成为了Windows 系统管理的重要组成部分。
所以大家很容易就能见到它的,因为我们至少也应该是个Windows2000的使用者了。
下面我将详细介绍它的每个细节,让你从不认识它到喜欢上它。
WMI能做什么?WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制。
远程控制计算机可是大家都喜欢的东西。
很多远程监视控制类软件通常的做法是:在远程计算机上运行服务端后台程序,在本地计算机上运行一个客户器端控制程序,通过这二个程序的勾结来实现对计算机的远程控制。
这种作法的缺点是十分明显的,当服务端程序关了,这种远程监控就无法实现了,因为没有内线了。
而WMI实现的远程监视和控制完全不需要另外装什么服务端的东西,系统默认就将WMI服务给开了。
具体说来,WMI的本领如下:1.获取本地和远程计算机的硬件软件信息。
2.监视本地和远程计算机的软件和服务等运行状况。
3.控制本地和远程计算机的软件和服务运行。
4.高级应用。
如何访问WMI?当我们知道WMI的某些本领后,我们已经很想知道如何认识他并利用他了。
利用WMI有许多途径,简单说来有三种了:1.通过微软给我们提供的各种工具来实现普通查询和操作。
主要包括命令提示符下面的WMIC,还有就是微软给我们提供的WMITOOL,大家可以到微软的网站上免费下载,当然我也可以给大家免费提供。
2.通过自己编写脚本来实现更灵活操作。
要想真正灵活实用,对WSH脚本的熟悉是必须的,当然如果你不熟悉也没有关系,稍后我会给大家详细解释的。
3.通过编写我们自己的程序来访问并操作它。
什么语言都行。
如果用.NET类程序要简单些了,如果用VC等要复杂些了,起码我是这么认为的。
windows下强大的wmic命令行工具
windows下强大的wmic命令行工具windows最令网管诟病的地方就是命令行没有unix和linux强大。
但这种情况正在不断改观,windows命令行也越来越强大了。
其中,微软耗费大量精力打造的wmi就是一例。
获得进程ID与进程名称代码:wmic process get processid,name远程创建进程代码:wmic /node:109.254.2.102 /user:"rdgad\administrator" /password:"梦想成真" process call create commandline="cmd.exe /k echoxxxxx|clip.exe"获取cpu名称,位数,序列号代码:wmic cpu get name,addresswidth,processorid获取物理内存数代码:wmic memlogical get totalphysicalmemory获得品牌机的序列号代码:wmic csproduct get IdentifyingNumber加入域代码:wmic computersystem where name="%computername%" call joindomainorworkgroup name="" username="rdgad\adddomain" password="mxcz" fjoinoptions=1 accountou=null获取硬盘的总容量代码:wmic diskdrive get deviceid,size启动某服务代码:WMIC SERVICE where caption='TELNET' CALL STARTSERVICE杀掉某进程代码:WMIC PROCESS where name='calc.exe' delete获取cpu使用百分比代码:wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTimewmic cpu get LoadPercentage……更具体的帮助请在命令行下键入 wmic /?查询。
wmic原理
wmic原理一、什么是wmic?wmic是Windows Management Instrumentation Command-line(Windows管理工具命令行)的缩写,是Windows操作系统中的一个命令行工具。
它基于WMI(Windows管理规范)技术,提供了一种简单而强大的管理Windows系统的方式。
二、wmic的原理wmic通过WMI来实现对Windows系统的管理。
WMI是一种微软开发的系统管理技术,它提供了一种统一的接口,使得管理员可以通过编程的方式来管理和监控Windows系统。
WMI通过公开的API,允许开发人员使用各种编程语言(如VBScript、PowerShell 等)来访问和操作系统的各个组件和资源。
wmic命令行工具是基于WMI的命令行接口,它提供了一组丰富的命令,用于查询和配置系统的各项属性和功能。
通过使用这些命令,管理员可以方便地获取系统信息、管理硬件设备、配置网络设置、执行脚本等操作。
三、wmic的功能1. 查询系统信息:通过wmic命令,管理员可以获取系统的各项信息,如操作系统版本、计算机名称、处理器信息、内存大小等。
例如,使用命令"wmic os get Caption"可以获取操作系统的名称。
2. 管理硬件设备:wmic可以用来管理计算机的硬件设备,如显示器、打印机、网卡等。
管理员可以使用命令"wmic printer list brief"来列出所有打印机的信息。
3. 配置网络设置:通过wmic命令,管理员可以配置计算机的网络设置,如IP地址、DNS服务器、网关等。
例如,使用命令"wmic nicconfig where Index=1 call EnableStatic('192.168.1.100', '255.255.255.0')"可以将网卡1的IP地址配置为192.168.1.100。
用WMIC命令脚本执行WMI任务
用WMIC命令脚本执行WMI任务━━━━━━━━━━━━━━━━━━━━━━━━━━MicrosoftWindowsManagementInstrumentation(WMI)。
中文名字叫Windows管理规范。
从Windows2000开始,WMI(Windows管理规范)就内置于操作系统中,并且成为了Windows 系统管理的重要组成部分。
所以大家很容易就能见到它的,因为我们至少也应该是个Windows2000的使用者了。
下面我将详细介绍它的每个细节,让你从不认识它到喜欢上它。
WMI能做什么?WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制。
远程控制计算机可是大家都喜欢的东西。
很多远程监视控制类软件通常的做法是:在远程计算机上运行服务端后台程序,在本地计算机上运行一个客户器端控制程序,通过这二个程序的勾结来实现对计算机的远程控制。
这种作法的缺点是十分明显的,当服务端程序关了,这种远程监控就无法实现了,因为没有内线了。
而WMI实现的远程监视和控制完全不需要另外装什么服务端的东西,系统默认就将WMI服务给开了。
具体说来,WMI的本领如下:1.获取本地和远程计算机的硬件软件信息。
2.监视本地和远程计算机的软件和服务等运行状况。
3.控制本地和远程计算机的软件和服务运行。
4.高级应用。
如何访问WMI?当我们知道WMI的某些本领后,我们已经很想知道如何认识他并利用他了。
利用WMI有许多途径,简单说来有三种了:1.通过微软给我们提供的各种工具来实现普通查询和操作。
主要包括命令提示符下面的WMIC,还有就是微软给我们提供的WMITOOL,大家可以到微软的网站上免费下载,当然我也可以给大家免费提供。
2.通过自己编写脚本来实现更灵活操作。
要想真正灵活实用,对WSH脚本的熟悉是必须的,当然如果你不熟悉也没有关系,稍后我会给大家详细解释的。
3.通过编写我们自己的程序来访问并操作它。
什么语言都行。
如果用.NET类程序要简单些了,如果用VC等要复杂些了,起码我是这么认为的。
wmiexec原理
wmiexec原理
wmiexec是一种利用Windows管理工具接口(WMI)进行远程命令执行的工具,它是Metasploit框架的一部分。
wmiexec可以在没有受害者主机的凭据和权限的情况下实现远程命令执行,因为它使用WMI接口作为通信渠道,而不是使用传统的远程执行协议(如SSH或RDP)。
WMI是Windows操作系统中的一种管理工具,它允许管理员通过命令行、脚本或图形界面来管理和监视系统。
WMI提供了一个基于COM 的对象模型,使得管理员可以通过编程方式来访问WMI服务。
wmiexec 利用了这一点,通过WMI接口来执行远程命令。
wmiexec的工作原理如下:
1. 客户端通过WMI接口连接到受害者主机。
这可以通过使用WMI 命令行工具(如wmic)或WMI API来完成。
2. 客户端向WMI服务发送命令请求,例如执行一个命令或脚本。
3. WMI服务接收到请求后,将请求传递给WMI提供程序(WMI provider)。
4. WMI提供程序将请求翻译成操作系统可以理解的命令,并将结果返回给WMI服务。
5. WMI服务将结果返回给客户端。
6. 客户端解析结果并做出相应的处理。
需要注意的是,wmiexec需要在受害者主机上启用WMI服务才能正常工作。
另外,使用wmiexec进行远程命令执行可能会被防火墙或
其他安全措施所阻止,因此需要在目标环境中进行适当的配置和测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用wmic对Windows主机批量执行脚本2014年11月13日AM 10:53与类Unix操作系统相比较,Windows系统由于对字符界面的支持不完善,并没有与类Unix系统的shell可以相提并论的工具(cmd的命令行特性难用程度与shell相比简直令人发指,虽然目前Windows推出所谓的PowerShell,但要跟上bash、korn shell等前辈还需要时间来沉淀)。
一直以来,对于Windows进行批量管理大多依靠于图形界面,效率低下且可靠性不足。
其实Windows本身提供了WMI管理规范和接口,专用于支持命令行方式的系统管理,更推出wmic工具来给系统管理员使用,以下是百度百科对于wmic的介绍:WMIC扩展WMI(Windows Management Instrumentation,Windows管理规范),提供了从命令行接口和批命令脚本执行系统管理的支持。
在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。
如果不熟悉C++之类的编程语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的。
WMIC改变了这种情况,为WMI名称空间提供了一个强大的、友好的命令行接口。
概念的介绍总是容易让读者云里雾里,以下试验将演示如何使用wmic以及Windows共享功能来对批量服务器执行一个离线安全扫描脚本并取回结果。
试验背景:现需要对批量Windows Server服务器进行离线安全扫描,即登录到每一台服务器执行一个vbs脚本,脚本会生成扫描结果文件,然后将结果文件下载到本地。
倘若服务器数量不多,那么一台台登录执行也就罢了,但当目标服务器数量达到一定数量后,再手工进行此操作,就成为一件繁琐重复的工作。
有人说,懒惰是推动人类文明不断进步的源动力。
所以为了偷懒,不,为了人类文明的进步,这个工作必须使用批量和自动化的工具来完成。
实现思路:将此工作分解为以下步骤,逐一实现:1、登录Windows Server服务器;2、上传扫描脚本到目标服务器;3、执行扫描脚本;4、下载结果文件;5、对其他服务器重复前4个步骤。
第1步的登录服务器,传统来说,肯定是使用远程桌面了,但如前面所说,图形界面的东西,要进行批量操作是很麻烦的。
那自然要使用字符界面来进行登录了,再自然地想到telnet方式是最简便通用的协议。
但现今所有负责任的系统或安全管理人员都会告诉你,想用telnet来连接我的服务器?门都没有!幸好wmic就提供了远程主机的管理接口,使用"wmic /node:IP地址 /user:帐号 /password:密码"的形式可以登录到远程主机执行wmic命令。
第3步的执行脚本,其实与登录是同时进行的,此处结合第1、第3步,命令就是:wmic /node:IP地址 /user:帐号 /password:密码 process call create "cmd /c cmd命令或脚本"第2和第4步,上传与下载,其实是同样的需求,如果开通了ftp之类的文件传输服务,自然简单。
但当前环境并未开通ftp,所以考虑使用Windows的文件夹共享与网络映射来实现。
首先在远端服务器使用wmic创建一个路径为c:\tempshare的共享目录,然后将其映射到本地的Z盘,再直接在Z盘上进行文件的读取。
第5步,假设将前4步的所有操作命令放入名为chk_by_wmic.bat批处理脚本,只需循环对所有目标服务器执行该脚本即可。
chk_by_wmic.bat脚本内容及注释:::::::::::::::::::::::::::::::::::: chk_by_wmic.bat内容开始 :::::::::::::::::::::::::::::::::::::以下bat脚本大量使用了wmic和bat自身的goto,对于wmic不熟悉的,可百度或直接在任何Windows系统内执行wmic /?来查看帮助::从命令行读入ip和密码(分别为变量%vnode%和%vpswd%)@set vnode=%1@set vpswd=%2::检查连通性,以下命令为登录到目标服务器,并执行wmic os命令(该命令用于读取系统的一些信息)::若执行失败,则表示可能出现以下情况:::1、网络不通::2、帐号密码错误::3、未知原因,反正是无法继续了::检查失败的话,则跳转到:notconn标签(即跳转到脚本中:notconn这一行内容的地方,并从下一行开始继续执行)wmic /node:%vnode% /user:administrator /password:%vpswd% os >nul || goto :notconn::检测本地的Z盘盘符是否已被占用,若已被占用则无法映射远端的共享目录dir z:\ >nul 2>&1 && goto :notZ::在目标服务器创建c:\tempshare目录wmic /node:%vnode% /user:administrator /password:%vpswd% processcall create "cmd /c mkdir c:\tempshare"::将目标服务器的c:\tempshare目录设置为共享::创建共享的命令格式为:wmic share call create "Access","Description","MaximumAllowed","Name","Password","Password" ,"Type"::详见wmic share call /?wmic /node:%vnode% /user:administrator /password:%vpswd% share call create "","temp description","","tempshare","","c:\tempshare",0::映射目标服务器的tempshare共享目录到本地的Z盘net use Z: \\%vnode%\tempshare::复制扫描脚本到Z盘,即完成上述的步骤1copy c:\Scripts\tmp\96c221be-6ab2-ef53-1589-fe16877914ca.vbs Z:\::在目标服务器上执行扫描脚本,扫描脚本执行完成后会在c:\tempshare生成名为%vnode%*xml的结果文件wmic /node:%vnode% /user:administrator /password:%vpswd% processcall create "cmd /c cscript 96c221be-6ab2-ef53-1589-fe16877914ca.vbs","c:\tempshare"::由于该扫描脚本执行时间很长,且上一条命令执行时,只是调起服务器的进程就会立即返回,所以要等待扫描脚本执行完再继续::解决方法是,对z:执行dir检查是否已生成xml结果文件,等待5分钟,发现生成了%vnode%*xml再继续@set slptimes=1goto :sleep::以下为循环等待,每次等待5秒钟,最多等待60次:sleepset /a slptimes+=1if %slptimes% gtr 60 (echo exceeded 5 min && goto :eof)@echo ---------------- waiting %slptimes% ----------------::利用ping命令来进行5秒的定时等待@ping -n 5 localhost >nul::判断是否已生成xml结果文件,已生成则跳转到:getfile,否则进入下一轮的等待dir z:\*%vnode%*xml >nul 2>&1 || goto :sleepdir z:\*%vnode%*xml >nul 2>&1 && goto :getfile:::sleep循环已退出(结果文件已生成或超时),开始下载结果文件:getfilerem dir z:\::从Z盘将结果文件复制到C盘,即上述步骤的第4步copy z:\*96c221be*xml c:\Scripts\tmp\::删除本地的Z盘映射,并在目标服务器取消共享goto :delshare:delsharenet use z: /deletewmic /node:%vnode% /user:administrator /password:%vpswd% share where name="tempshare" call delete::跳转到:eof,退出脚本goto :eof:notconn@echo =================================== Can't connect to %vnode% ===================================goto :eof:notZ@echo =================================== Can't use Z:\ %vnode%===================================:eof ::::::::::::::::::::::::::::::::::: chk_by_wmic.bat内容结束 :::::::::::::::::::::::::::::::::::假设现在需要对ip为192.168.0.2,密码为AdminPass的Windows Server执行扫描,则只需在本地cmd中执行以下命令即可:chk_by_wmic.bat 192.168.0.2 AdminPass假设有多台服务器,将IP和密码写入到一个名为iplist.txt的文件中,每行第一列为IP,第二列为密码,然后利用以下命令按行读取并执行:for /f "tokens=1,2" %i in (iplist.txt) do chk_by_wmic.bat %i %j 至此,利用wmic来对Windows主机批量执行脚本的试验完成。