WMIC详解
字数 1367 2025-08-14 12:04:09

WMIC 命令详解与渗透测试应用指南

一、WMIC 概述

WMIC(Windows Management Instrumentation Command-line)是 Windows 系统自带的一组管理方法和功能,可以视为与 Windows 系统交互的 API 接口。在渗透测试中具有以下重要价值:

  1. 无需下载安装:Windows 系统原生支持
  2. 无痕运行:所有操作在内存中执行,不会在磁盘留下痕迹
  3. 功能强大:既能进行信息收集,也能执行系统管理任务

二、WMIC 信息收集命令

1. 系统软件信息收集

wmic product list brief | more
  • 列出系统已安装的所有软件
  • 包含软件名称、版本、供应商等基本信息
  • | more 用于分页显示,防止信息刷屏

2. 系统服务信息

wmic service list brief | more
  • 显示所有运行中的服务
  • 包含服务名称、状态、启动模式等信息

3. 进程信息收集

wmic process list brief | more
  • 列出当前所有运行中的进程
  • 包含进程 ID、名称、内存使用等信息

4. 启动程序信息

wmic startup list brief | more
  • 显示系统启动时自动运行的程序
  • 可用于查找持久化后门

5. 共享驱动盘信息

wmic netuse list brief | more
  • 列出所有网络共享和映射的驱动器
  • 包含共享路径、用户名等信息

6. 用户账户信息

wmic useraccount list brief | more
  • 显示系统所有用户账户
  • 包含用户名、SID、账户状态等

7. 域控制器信息

wmic ntdomain list brief
  • 在域环境中获取域控制器信息
  • 仅适用于域环境

8. 登录用户信息

wmic logon list brief | more
  • 显示当前登录系统的用户会话
  • 包含登录时间、会话 ID 等

9. 系统补丁信息

wmic qfe list brief | more
  • 列出所有已安装的安全更新
  • 包含补丁 ID、安装日期等
  • 可用于漏洞评估

三、WMIC 任务执行功能

1. 软件卸载

wmic product where "name like '%forti'" get name
wmic product where name like "%FortiClient" call uninstall
  • 第一行用于查找特定软件(如 FortiClient)
  • 第二行执行卸载操作
  • 常用于绕过杀毒软件防护

2. 进程终止

wmic process where name="xxx.exe" call terminate
  • 终止指定名称的进程
  • 可用于停止杀毒软件服务

四、渗透测试应用场景

  1. 信息收集阶段

    • 快速获取系统配置信息
    • 识别安全防护软件
    • 发现网络共享资源
  2. 权限维持

    • 通过启动项添加持久化后门
    • 修改系统服务配置
  3. 防御规避

    • 卸载安全软件
    • 终止安全进程
    • 禁用安全更新
  4. 横向移动

    • 通过共享资源发现内网目标
    • 获取域环境信息

五、防御建议

  1. 监控 WMIC 使用

    • 记录异常 WMIC 命令执行
    • 特别关注卸载、终止类操作
  2. 限制权限

    • 对普通用户限制 WMIC 使用权限
    • 实施最小权限原则
  3. 日志审计

    • 启用详细命令行审计
    • 定期检查 WMIC 相关日志
  4. 应用白名单

    • 限制非授权程序执行
    • 包含对 WMIC 的限制策略

六、高级用法

  1. 远程执行

    wmic /node:"IP地址" /user:"用户名" /password:"密码" process call create "cmd.exe"
    
    • 通过 WMIC 在远程系统执行命令
  2. 输出重定向

    wmic process list brief /format:csv > processes.csv
    
    • 将结果导出为 CSV 格式便于分析
  3. 条件查询

    wmic process where "name='chrome.exe' and workingsetsize>100000" list brief
    
    • 使用复杂条件筛选特定进程
  4. 创建计划任务

    wmic job create "cmd.exe",0,0,false,false,"* * * * * *"
    
    • 通过 WMIC 创建定时任务

七、注意事项

  1. 兼容性问题

    • 不同 Windows 版本 WMIC 功能可能有差异
    • Windows 10/11 中部分功能可能受限
  2. 权限要求

    • 某些操作需要管理员权限
    • 域环境中可能需要域管理员权限
  3. 防御规避

    • 现代 EDR 可能监控 WMIC 活动
    • 建议结合其他规避技术使用
  4. 替代方案

    • PowerShell 提供更强大的管理功能
    • 但 WMIC 的优势在于其普遍存在性和低检测率

通过掌握 WMIC 的这些功能,安全研究人员和渗透测试人员可以更有效地进行系统信息收集和管理操作,同时防御者也能更好地识别和防范潜在的恶意活动。

WMIC 命令详解与渗透测试应用指南 一、WMIC 概述 WMIC(Windows Management Instrumentation Command-line)是 Windows 系统自带的一组管理方法和功能,可以视为与 Windows 系统交互的 API 接口。在渗透测试中具有以下重要价值: 无需下载安装 :Windows 系统原生支持 无痕运行 :所有操作在内存中执行,不会在磁盘留下痕迹 功能强大 :既能进行信息收集,也能执行系统管理任务 二、WMIC 信息收集命令 1. 系统软件信息收集 列出系统已安装的所有软件 包含软件名称、版本、供应商等基本信息 | more 用于分页显示,防止信息刷屏 2. 系统服务信息 显示所有运行中的服务 包含服务名称、状态、启动模式等信息 3. 进程信息收集 列出当前所有运行中的进程 包含进程 ID、名称、内存使用等信息 4. 启动程序信息 显示系统启动时自动运行的程序 可用于查找持久化后门 5. 共享驱动盘信息 列出所有网络共享和映射的驱动器 包含共享路径、用户名等信息 6. 用户账户信息 显示系统所有用户账户 包含用户名、SID、账户状态等 7. 域控制器信息 在域环境中获取域控制器信息 仅适用于域环境 8. 登录用户信息 显示当前登录系统的用户会话 包含登录时间、会话 ID 等 9. 系统补丁信息 列出所有已安装的安全更新 包含补丁 ID、安装日期等 可用于漏洞评估 三、WMIC 任务执行功能 1. 软件卸载 第一行用于查找特定软件(如 FortiClient) 第二行执行卸载操作 常用于绕过杀毒软件防护 2. 进程终止 终止指定名称的进程 可用于停止杀毒软件服务 四、渗透测试应用场景 信息收集阶段 : 快速获取系统配置信息 识别安全防护软件 发现网络共享资源 权限维持 : 通过启动项添加持久化后门 修改系统服务配置 防御规避 : 卸载安全软件 终止安全进程 禁用安全更新 横向移动 : 通过共享资源发现内网目标 获取域环境信息 五、防御建议 监控 WMIC 使用 : 记录异常 WMIC 命令执行 特别关注卸载、终止类操作 限制权限 : 对普通用户限制 WMIC 使用权限 实施最小权限原则 日志审计 : 启用详细命令行审计 定期检查 WMIC 相关日志 应用白名单 : 限制非授权程序执行 包含对 WMIC 的限制策略 六、高级用法 远程执行 : 通过 WMIC 在远程系统执行命令 输出重定向 : 将结果导出为 CSV 格式便于分析 条件查询 : 使用复杂条件筛选特定进程 创建计划任务 : 通过 WMIC 创建定时任务 七、注意事项 兼容性问题 : 不同 Windows 版本 WMIC 功能可能有差异 Windows 10/11 中部分功能可能受限 权限要求 : 某些操作需要管理员权限 域环境中可能需要域管理员权限 防御规避 : 现代 EDR 可能监控 WMIC 活动 建议结合其他规避技术使用 替代方案 : PowerShell 提供更强大的管理功能 但 WMIC 的优势在于其普遍存在性和低检测率 通过掌握 WMIC 的这些功能,安全研究人员和渗透测试人员可以更有效地进行系统信息收集和管理操作,同时防御者也能更好地识别和防范潜在的恶意活动。