June 3, 2022

Взлом Windows Remote Management (WinRM)

Удаленное управление Windows (WinRM) – это применение корпорацией Майкрософт протокола WS-Management, простого доступа к объектам (SOAP), работа которого связана с брандмауэром. Протокол позволяет взаимодействовать оборудованию и операционным системам разных производителей.

Особенности протокола WS-Management предоставляют общий доступ к системе, ее управлению и обмену информацией в рамках IT-инфраструктуры. WinRM, интеллектуальный интерфейс управления платформой (IPMI) и Event Collector являются компонентами оборудования для осуществления удаленного управления Windows.

Об этом и говорится в статье, переведенной нами. А подробнее прочитать о том, что такое WinRM, можно, перейдя по ссылке.

При сканировании ОС Windows пользователь имеет возможность наткнуться на данный процесс. На скрине изображены порты номер 5985 (http) и 5986 (https).

По умолчанию служба не работает, и даже если она включена (как в случае с Windows 2008), то порт не прослушивается, а значит трафик не передается. Таким образом, подобный процесс очень трудно обнаружить, но, все-таки, он осуществляется.

Некоторым системам необходима возможность дистанционного выполнения, поэтому пользователям придется активировать службу. Однако они могут и не знать, что это потенциальная угроза. Другая проблема заключается в том, что продавцы либерально относятся к гарантированной поддержке системных функций. Конечно, такой подход работает только на благо покупателей, но должен применяться в меру.

Как можно заметить по поиску Shodan, в интернете есть несколько систем, с которыми работает служба WinRM. Они доступны постоянно и находятся под доменом «Workgroup». Атака может быть выполнена с легкостью, поскольку существуют определенные ограничения доверенного домена.

Существует несколько скриптов, доступных для связи с этой службой. Однако наиболее распространенным методом считается использование модулей Metasploit.

Если есть желание использовать Ruby, об этом подробнее можно прочитать здесь.

gem install-r winrm

Metasploit предварительно устанавливается на такие ОС, как Kali или Parrot, поэтому чтобы начать, стоит всего лишь выполнить команду: msfconsole

Сначала нужно просканировать систему, чтобы проверить, запущен ли процесс. Для этого используется сканер Winrm_auth_methods, он проверяет, работает ли служба.

Используется следующая комбинация:  auxiliary/scanner/winrm/winrm_auth_methods

Пользователю нужно будет ввести соответствующие параметры, но сначала ему стоит немного узнать о характеристиках оборудования. Например, если порт показывает 5986, следует использовать SSL. Очень трудно определить дистанционно конфигурацию сервиса, поэтому иногда применяется метод проб и ошибок.

Как только есть уверенность в том, что цель уязвима, можно атаковать.

Используется следующая комбинация auxiliary/scanner/winrm/winrm_login

Опять же, нужно будет ввести необходимые параметры.

Очень важно правильно определить домен, так как для этой службы существует требование доверенного домена (по умолчанию). Его можно заполучить путем сканирования дополнительных портов. Если компьютер входит в Workgroup, у пользователя не должно быть никаких проблем.

На этом скрине видно, что учётные данные получены.

Теперь есть возможность взаимодействовать с удаленным кодом в системе. Будучи администратором, пользователь способен совершить много «разрушительных» действий. Он также станет доверенным лицом, ведь обладает необходимыми данными. Вредоносный код точно нанесет удар злоумышленникам, обезопасив его создателя. Таким образом, человек способен обойти антивирусную защиту.

Несколько строк кода могут помочь пользователю получить учетные данные. Не обязательно иметь Linux или Metasploit, для того чтобы проникнуть в чужую систему. Поскольку в ваш Windows встроен сервис PowerShell, с помошью которого можно следующие команды:

Командная строка:

Winrs — это команда, которая может быть использована для выполнения удаленных команд. В приведенном ниже примере показано, как передаются учетные данные и запускается «whoami»

PowerShell:

Также можно использовать несколько команд Powershell для сканирования или выполнения удаленного кода посредством клиента службы WinRM/WsMan.

Тest-Wsman:

Test-NetConnection:

Invoke-Command

Однако это очень утомительный метод. Именно поэтому был создан скрипт, который позволяет сканировать и атаковать WinRM с помощью системы Windows.

Подробнее об этом тут.

Рекомендуется не запускать сервисы по умолчанию. Если они все же включены, стоит прочитать следующую документацию и активировать некоторые ограничения.

Эта полезная статья рассказывает об ином способе получения учетных данных. Он был придуман еще в 2015 году, но до сегодняшнего дня считается действенным.

WinRM может предоставить постоянный доступ к компьютеру. Ниже приведены команды, которые можно выполнить для включения службы на необходимой машине.

Сервис запускается автоматически по умолчанию, так что даже если система будет перезагружена, он продолжит свою работу.

Следующие команды должны быть запущены от имени администратора:

winrm quickconfig

winrm set winrm/config/Client @{AllowUnencrypted = “true”}

Set-Item WSMan:localhostclienttrustedhosts —value “*”

Преимущество данного способа заключается в том, что это встроенная функция Windows, поэтому никакие антивирусы не должны реагировать на подобную активность.

Если есть желание защититься от подобных атак, стоит принудительно шифровать и ограничивать доверенные хосты. Требуется всего лишь заменить «*» на «server1, server2».