Эта статья является первой из многих статей, посвященных WMI, и предназначено для довольно новой аудитории. Базовое понимание Powershell определенно поможет читателю при просмотре блога, однако это не является обязательным требованием. Вот и все, давайте перейдем к изучению наступательного WMI-его основы.
WMI — это набор спецификаций от Microsoft, разработанный для быстрого и эффективного администрирования систем Windows. И, как вы, возможно, знаете, правило безопасности гласит, что «все, что полезно для администрации, отлично подходит для злоупотреблений со стороны злоумышленников». WMI действительно может многое — от сбора статусов компьютеров и настройки параметров до запуска приложений и выполнения кода. Более того, WMI присутствует во всех доступных версиях ОС Windows, поэтому целевая область здесь довольно широка.
Давайте быстро рассмотрим несколько важных терминов. WMI расшифровывается как Windows Management Instrumentation, которая представляет собой реализацию Microsoft CIM (Common Information Model) и WBEM (Web-ориентированное управление предприятием), которые в целом являются стандартами DMTF (Distributed Management Task Force). WMI дает нам аккуратный и единообразный интерфейс для приложений / сценариев для управления компьютером (возможно, удаленным и локальным), в т.ч. процессами, услугами и т. д.
wmic.exe, wbemtest.exe, winrm.exe, VBScript / JScript
и, в некоторых случаях, командлеты Powershell.select * from win32_bios
% WINDIR% \ System32 \ Wbem \ Repository.
% WINDIR% \ System32 \ Wbem
с расширением .mof.
В более поздней части этой серии мы рассмотрим, как мы можем писать наши собственные файлы MOF для расширения набора функций WMI.cimwin32.dll, stdprov.dll
и т. д., Чтобы назвать несколько, однако они также могут принимать форму других типов (класс, событие, потребитель события, метод и т. д.) . Провайдеры важны для экосистемы, потому что они отслеживают события и данные от определенных объектов. Поставщики как драйверы, которые обеспечивают мост между управляемыми объектами и WMI.На снимке экрана ниже файлы DLL являются поставщиками связанных файлов MOF:
и 3 вида:
По умолчанию используются следующие известные пространства имен: root \ cimv2, root \ default, root \ security, root \ subscription
и т. д.
Вот и все с архитектурой. Теперь давайте узнаем немного об использовании WMI с Powershell.
Теперь, когда мы закончили с теоретической частью, давайте быстро создадим терминал PS. Важно помнить, что до Powershell версии 2 было всего несколько командлетов для взаимодействия с WMI. Мы быстро проверим нашу версию Powershell и изменим версию на 2:
Теперь давайте запустим командлет Get-Command -CommandType * wmi *
в командной строке Powershell. Это приводит нас к:
СОВЕТ. Названия команд говорят сами за себя (и мы еще поговорим об этом позже). В любой момент вы можете использовать стандартный синтаксис Powershell: help <command>,
чтобы получить дополнительную информацию о том, что делает конкретная команда. например вы можете попробовать help Invoke-WmiMethod для просмотра того, что делает команда — очень похоже на справочные страницы Linux.
Начиная с Powershell v3, MS представила командлеты CIM, которые используют стандарты WS-MAN и CIM для управления объектами. Доступ к командлетам CIM имеет преимущества в двух контекстах:
DCOM: псевдоним для объектной модели распределенных компонентов, DCOM — это проприетарный протокол Microsoft для связи между программными компонентами на сетевых компьютерах. WMI использует распределенный COM (DCOM) для подключения к удаленному компьютеру. Однако DCOM не поддерживает брандмауэр.
WS-MAN: WS-MAN или WS-Management — это стандарт DMTF, который предоставляет системам общий способ доступа к управляющей информации через ИТ-инфраструктуру. WS-MAN, с другой стороны, использует HTTP, поэтому он определенно дружественен к брандмауэрам.
Мы повторим то, что делали выше, но после изменения версии Powershell на значение по умолчанию (в моем случае это Powershell v5):
Повторяя сказанное выше, командлеты CIM могут делать все, что могут командлеты WMI. Если мы хотим сопоставить функциональные возможности командлетов WMI и CIM, вот табличное представление сравнения функциональных возможностей обоих типов:
Использование и типы | WMI Командлеты | CIM Командлеты |
---|---|---|
Получить информацию о классах | Get-WmiObject | Get-CimInstance |
Вызов метода | Invoke-WmiMethod | Invoke-CimMethod |
Подписка на событие | Register-WmiEvent | Register-CimIndicationEvent |
Создание / обновление экземпляров класса | Set-WmiInstance | Set-CimInstance |
Удаление экземпляров класса | Remove-WmiObject |
|
Теперь, когда мы знаем о различных доступных для использования командлетах, мы можем попробовать выполнить приведенный выше образец WQL-запроса. Мы уже знаем, что Get-WmiObject можно использовать для получения информации о классах. Итак, давайте запустим командлет с параметром -Query
:
Get-WmiObject -Query 'select * from win32_bios'
Эта статья была предназначена для обзора того, чем мы будем заниматься в следующих частях этой серии. Здесь много технических модных словечек, но понимать их необходимо. Надеюсь, вам понравилось читать, и я жду нашего совместного путешествия по изучению WMI.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…