本章节内容主要是介绍在内网中wmic命令。
文章内容主要摘自某红队系列丛书,将市面上现在流传的 redteam 系列书籍进行一个学习记录。
0x00.前言
wmic和cmd一样在所有的windows版本中都存在,同时wmic有很多cmd下不方便使用的部分,今天给大家介绍一些在后渗透过程中非常适用的使用wmic进行信息收集的命令
0x01.关于wmic
WMI命令行(WMIC)实用程序为WMI提供了命令行界面。WMIC与现有的Shell和实用程序命令兼容。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用像CIM Studio之类的工具。如果不熟悉C++之类的编程语言或VBSCript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的。WMIC改变了这种情况
0x02.wmic的简单使用
首先在cmd命令行输入wmic进入交互式页面,这里说一下在powershell也可以和cmd命令行一样的操作
wmic /?
查看WMIC命令的全局选项,WMIC全局选项可以用来设置WMIC环境的各种属性
wmic process /?
进程管理的帮助
wmic process get /?
属性获取操作帮助
0x03.以进程为例展现wmic的使用
这里的靶机使用的是一台win7 x86的虚拟机 这里以查看进程为例:
wmic process get caption,executablepath,processid
获取系统当前正在运行的进程、进程运行的路径、进程id
wmic service where (state="running") get name,processid,pathname,startmode,caption
获取系统运行的应用进程,进程名称,进程应用路径、进程id
wmic /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,productState,pathToSignedProductExe,productState
查询杀毒软件
wmic onboarddevice get Description,DeviceType,Enabled,Status /format:list
获取主板内置信息
wmic product get name
系统安装软件情况
wmic environment get Description,VariableValue
系统环境变量
wmic computersystem get Name,Domain,Manufacturer,Model,Username,Roles /format:list
获取域名,主板信息,主机名,角色,用户名
wmic sysdriver get caption,Name,PathName,ServiceType,State,Status /format:list
获取所有进程的进程名、运行路径、服务类型、状态
关于跟多的信息可以通过官方的说明文档
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wmic
0x04.关于powershell的Get-Wmi对象
Get-Wmi是获取Windows Management Instrumentation(WMI)类的实例或有关可用类的信息。
我们需要首先知道自己的windows计算机支持哪些可用的WMI类
Get-Wmiobject -list
自己的windows计算机支持哪些可用的WMI类
例子:在本地计算机上获取进程
PS C:\Users\Administrator> get-wmiobject
位于命令管道位置 1 的 cmdlet Get-WmiObject
请为以下参数提供值:
Class: win32_process
#在本地计算机上获取进程
Get-WmiObject和wmic相比,可以说是一个升级版,Get-WmiObject可以指定一个参数进行使用(Parameters)例如在本地计算机上获取进程,也可以指定相应的参数进行一个查询他的一个过程
Get-WmiObject -Class Win32_Process
在本地计算机上获取进程
具体的参数以及命令在官方文档中进行查询