Описание
Windows Management Instrumentation ((WMI) – это технология Microsoft, которая была разработана, чтобы позволить администраторам выполнять локальные и удаленные операции управления по сети.
Поскольку WMI является частью экосистемы Windows, которая существует с Windows 98, ее можно использовать практически в каждой сети, независимо от того, работает ли она под управлением Windows 10 или Windows XP.
Некоторые из операций, которые могут выполняться через WMI:
- Выполнение команды
- Передача файла
- Чтение файлов и ключей реестра
- Проверка файловой системы
- Подписаться на мероприятия
Злоумышленник могут использовать функциональность WMI и тот факт, что ее можно использовать против различных систем Windows, чтобы выполнять ретрансляцию хоста, выполнять команды и т.д.
Служба WMI использует DCOM (TCP-порт 135) или протокол WinRM (SOAP-порт 5985).
Он работает как SYSTEM, и необходимы учетные данные администратора.
С 2014 года существуют различные инструменты, которые существуют публично, которые могут использоваться как команда и управление через WMI.
WmiShell
WmiShell – это скрипт PowerShell, который является частью WmiSploit и основан на WMIShell, который был разработан на python Андреем Думитреску.
Этот сценарий использует пространства имен WMI для выполнения команд.
Enter-WmiShell -ComputerName desktop-1st179m -UserName netbiosX
WmiSploit содержит также скрипт, который может выполнять команды и скрипты PowerShell на удаленной цели, используя WMI в качестве канала связи.
Invoke-WmiCommand -ComputerName desktop-1st179m -ScriptBlock {tasklist}
WMImplant
Chris Truncer разработал WMImplant, который является инструментом PowerShell, который использует WMI для выполнения наступательных операций.
Его можно использовать в качестве средства управления и контроля с тем преимуществом, что он не требует, чтобы агент был сброшен на цель.
Однако необходимы учетные данные администратора.
Import-Module .\WMImplant.ps1 Invoke-WMImplant
Возможности WMimplant можно найти в главном меню после его выполнения.
Он может выполнять операции передачи файлов, боковое перемещение и повтор хоста.
Для выполнения правильных учетных данных для удаленных подключений требуется изменить change_user перед выполнением любых других команд.
Также возможно выполнить небольшие скрипты PowerShell на целевую машину.
Дополнительно, как и инструмент WmiShell, он имеет функциональность оболочки, которая может быть запущена с помощью команды command_exec, как показано ниже:
Операции с файлами также могут выполняться удаленно.
WMIOps
До WMImplant Chris Truncer разработал WMIOps, который может использоваться для выполнения различных действий на цели во время аудита.
Некоторые из этих действий включают:
- Перенос файлов
- Пусковые процессы
- Процессы килл
- Совместное использование папок
Несмотря на то, что функциональность ограничена сравнением с WMImplant, она реализует идею выполнения команд и получения вывода через WMI.
Invoke-ExecCommandWMI имеет возможность запускать процесс удаленно.
Invoke-FileTransferOverWMI -RemoteUser victimusername -RemotePass victimpassword -TARGETS 192.168.1.124 -File C:\Users\netbiosX\Desktop\WMImplant.ps1 -Download C:\Users\User\Downloads\WMI\WMImplant.ps1 -LocalUser Administrator -LocalPass pentestlab
Вывод
Использование WMI для хостов ретрансляции может позволить злоумышленнику остававаться скрытым и обновлять информацию.
Тот факт, что WMI не требует удаления двоичного кода для извлечения информации и что большинство безопасников не контролируют действия WMI, могут исключить риск обнаружения.
Поэтому необходимо не полностью отключать WMI и фильтровать трафик на порты 135 и 5985, если это необходимо.
¯\_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.