Полное руководство по пентесту WinRM

Использование Evil-winrm Kali Linux

В данной статье мы поговорим про пентест WinRM. Я покажу, как злоумышленник может использовать WinRM для латерального перемещения внутри сети.

Еще по теме: Использование Evil-winrm в пентесте на Kali Linux

Что такое WinRM

WinRM (Windows Remote Management) — это протокол, разработанный компанией Microsoft для удаленного управления оборудованием на машинах с Windows. Этот компонент Windows Management Framework реализует протокол WS-Management — стандартный протокол веб-служб для удаленного управления ПО и оборудованием. WS-Management основан на SOAP и поддерживает схему XML. WinRM использует порт 5985 для HTTP и 5986 для HTTPS.

Настройка WinRM

Для настройки стенда необходимо включить и настроить службу WinRM как на сервере, так и на отдельной машине. В данном случае я использую Windows 10 как отдельную машину и Windows Server 2019 в качестве сервера.

  • Сервер — Windows Server 2019 (192.168.31.70)
  • Отдельная машина — Windows 10
  • Машина атакующего — Kali Linux (192.168.31.141)

Статья в образовательных целях, для обучения этичных хакеров. При написании статьи использовались личные устройства автора. Ни редакция spy-soft.net, ни автор не несут ответс­твен­ности за ваши действия.

Настройка WinRM на Windows Server

Для выполнения некоторых скриптов или задач необходимо обойти политику выполнения. Это не изменяет системную политику выполнения, а применяется только к текущей сессии PowerShell:

Команда Enable-PSRemoting настраивает компьютер для получения удаленных команд PowerShell с использованием технологии WS-Management:

По умолчанию WinRM слушает на порту 5985 для HTTP и 5986 для HTTPS. Можно разрешить подключения от определенных удаленных хостов, используя символ подстановки * для всех машин в сети:

После завершения конфигурации службу можно перезапустить:

Добавление пользователя-администратора в группу удаленного управления:

Настройка WinRM на Windows 10

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

Для проверки подключения используйте команду test-wsman. Если соединение успешно, команда вернет информацию о версии:

Боковое перемещение (локально)

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

Команда Enter-PSSession используется для подключения к удаленному серверу. После установления соединения можно выполнять системные команды.

Команда winrs использует службу WinRM для подключения к удаленным системам и выполнения команд.

Команда Invoke-Command позволяет выполнить команду на удаленном хосте.

WinRM взлом

Боковое перемещение (удаленно)

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

Используйте модуль winrm_auth_methods в Metasploit для определения методов аутентификации.

Можно использовать модуль winrm_login для брутa логина.

Как только будут найдены правильные учетные данные, будет установлена сессия.

WinRM пентест

Можно использовать nxc для реализации атаки на службу WinRM методом Password Spray. Просто используйте файл с именами пользователей и паролями в качестве входных данных.

Когда найдены правильные имя пользователя и пароль, можно войти в удаленную систему с помощью инструмента evil-winrm.

Также можно выполнить команды напрямую, используя флаг -x с nxc после нахождения верных учетных данных.

После нахождения правильных учетных данных можно выполнить команду с использованием модуля auxiliary/scanner/winrm/winrm_cmd внутри Metasploit. Команды:

Также можно открыть сессию Meterpreter, используя модуль exploit/windows/winrm/winrm_script_exec, который автоматически пытается выполнить привилегированное выполнение, переносясь на процесс уровня системы.

Получив учетные данные для службы WinRM, можно использовать функциональность WMI для выполнения произвольных WQL-запросов на целевой системе.

Здесь можно указать запрос для получения имени и статуса службы из Win32_Service.

Используйте образ Docker с поддержкой NTLM для PS-Remoting с Linux на Windows.

Можно также подключиться к удаленному серверу с включенным WinRM, используя Ruby-скрипт. Скрипт можно найти здесь:

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

После изменения скрипта его можно выполнить с помощью Ruby.

Заключение

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

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер и компьютерный ниндзя. Новые статьи в нашей Телеге!

Добавить комментарий