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

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

Сегодня рассмотрим популярный инструмент Evil-winrm. Его цель — максимально упростить тестирование на проникновение, в особенности в среде Microsoft Windows. Далее покажу, как использовать Evil-winrm в пентесте на Kali Linux.

Еще по теме: Обнаружение компьютеров в сети при пентесте

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

Инструмент Evil-winrm с открытым исходным кодом, написанный на языке ruby, максимально упрощает пост-эксплуатацию.

Что такое Evil-winrm

Этот инструмент имеет множество интересных функций, таких, как удаленный вход в систему с паролем и получение сессии PowerShell, с шифрованием SSL, с помощью хэша NTLM и т. д. Авторы постоянно обновляют тулзу и добавляют множество новых функций.

Evil-winrm работает с протоколом PowerShell (PSRP). Системные и сетевые администраторы часто используют протокол удаленного управления Windows для загрузки, редактирования и выгрузки. WinRM — это основанный на SOAP и дружественный к брандмауэру протокол, который работает с транспортом HTTP через HTTP-порт 5985 по умолчанию. Для получения дополнительной информации об удаленном работе PowerShell посетите официальный сайт Microsoft.

Evil-winrm предустановлен в Kali Linux, но если вы используете урезанную версию, то можете скачать и установить из официального репозитория git.

Обнаружение службы WinRM

Итак, Evil-winrm может быть использован, если на удаленном хосте включена служба Winrm, о чем говорит работающие порты службы WinRM 5895 и 5896. Используя Nmap мы обнаружили, что служба WinRM включена, и теперь для входа в систему и выполнения других задач можно использовать Evil-winrm.

Обнаружение службы WinRM

Традиционно, запускаем справку используя параметр -h:

Параметры использования Evil-winrm

Вход с использованием пароля

Если есть пароль и на удаленном хосте работает WinRM, можно попробовать подключиться, используя команду:

Где:

  • -i — указывает IP-адрес
  • -u — пользователь
  • -p — пароль
    Вход evil-winrm с использованием пароля

На изображении выше получен удаленный сеанс PowerShell.

Вход с использованием пароля и включенным SSL

WinRM передает трафик по протоколу HTTP, поэтому, чтобы сделать соединение безопасным, можно использовать SSL. Для этого используйте параметр -S:

Вход с помощью NTLM Hash — Pass The Hash Attack

Во время пентеста мы можем получить хеш NTLM. Для авторизации с помощью хеша используется параметр -H:

Evil-winrm NTLM Hash Pass The Hash

Подробное об атаке pass-the-hash:

Загрузить скрипт Powershell

Evil-winrm также предлагает функцию, которая позволяет нам использовать сценарии с нашей базовой машины. Мы можем напрямую загружать сценарии непосредственно в память, используя флаг -s вместе с путем к файлу сценария, в котором мы сохранили сценарии на нашей локальной машине. Кроме того, он также предлагает функцию AMSI, которая нам часто требуется перед импортом любого скрипта. В приведенном ниже примере мы обходим AMSI, а затем напрямую вызываем сценарий Invoke-Mimiktz.ps1 из нашей системы на целевую машину и загружаем его в память. После этого мы можем использовать любую команду mimikatz. В демонстрационных целях здесь мы выгрузили учетные данные из кеша. После сброса учетных данных мы можем снова провести хэш-атаку с полученным хэшем NTLM. Выполните следующие действия, чтобы воспроизвести атаку с помощью evil-winrm.

https://github.com/clymb3r/PowerShell/blob/master/Invoke-Mimikatz/Invoke-Mimikatz.ps1

Хранить логи с помощью Evil-winrm

Эта функция предназначена для сохранения журналов в нашей локальной системе при выполнении перечисления после получения удаленного сеанса. Когда мы играем в CTF или проводим внутреннее тестирование на проникновение в режиме реального времени, нам необходимо сохранять ссылки для отчетов. Evil-winrm позволяет сохранять все журналы на нашей базовой машине с помощью флага -l. Мы можем взять любой удаленный сеанс, используя evil-winrm и добавить флаг -l, чтобы он сохранял все журналы на нашей базовой машине в каталоге /root/evil-winrm-logs с датой и IP-адресом, которые можно использовать позже для ссылок. . В приведенном ниже примере мы использовали команду ipconfig и вывод команды, сохраненный на нашей базовой машине одновременно.

Мы можем проверить это, проверив содержимое сохраненных журналов, вы заметите, что он сделал снимок экрана терминала, где мы использовали команду ipconfig.

Отключить завершение удаленного пути

По умолчанию он поставляется с функцией завершения удаленного пути, но если мы хотим отключить завершение удаленного пути, мы можем добавить флаг -N вместе с нашей командой. Это зависит от людей, предпочитают ли они функцию автозаполнения или нет, но если вам комфортно с автозаполнением, не стесняйтесь использовать его функцию по умолчанию.

Отключить цветной интерфейс

Всякий раз, когда мы устанавливаем какой-либо удаленный сеанс с помощью evil-winrm, он порождает красивый цветной интерфейс командной строки. Тем не менее, если мы хотим отключить цветной интерфейс, мы также можем сделать это, используя флаг -n вместе с нашей командой при установлении сеанса.

Запустить исполняемый файл

Эта функция предназначена для решения проблем и трудностей в режиме реального времени, с которыми мы столкнулись во время оценки, когда у нас есть сеанс PowerShell, и мы не можем сбросить его в командную строку. В таких сценариях нам хотелось бы, чтобы мы могли запускать исполняемые файлы в сеансах evil-winrm. Предположим, у нас есть исполняемый файл, который мы хотим запустить в целевой системе.

Команда Hackplayers снова разработала этот инструмент и добавила дополнительную функцию, с помощью которой мы можем запускать все исполняемые файлы как шарм во время сеанса PowerShell evil-winrm. Точно так же, как мы использовали флаг -s для выполнения пути сценариев PowerShell, на этот раз мы используем флаг -e для выполнения исполняемых двоичных файлов exe. В приведенном ниже примере мы выдаем путь, по которому исполняемый файл WinPEAS.exe хранится на локальном компьютере, и запускаем его с помощью дополнительной функции (Invoke-Binary) из меню evil-winrm. Эта функция позволяет нам выполнять любые двоичные файлы exe, которые обычно запускаются в оболочке командной строки.

После того, как мы установили путь к исполняемым файлам, мы можем использовать любой исполняемый файл, который мы хотим запустить в целевой системе. В приведенном ниже примере мы вызываем WinPEASx64.exe и запускаем его в целевой системе с помощью evil-winrm. Как мы видим, он работает нормально, как и ожидалось.

Перечисление сервисов с помощью Evil-winrm

Иногда многие инструменты перечисления после эксплуатации не могут определить имя службы, работающей в целевой системе. В этом случае мы можем использовать evil-winrm, чтобы найти имена служб, работающих в целевой системе. Для этого мы снова можем зайти в меню и использовать сервисы. В нем будут перечислены все службы, запущенные на скомпрометированном хосте. Эта функция может быть очень удобной, когда мы видим, что в целевой системе установлена какая-либо служба без кавычек, а другие инструменты постэксплуатации не могут определить имя службы.

Передача файлов с помощью Evil-winrm

Нет никаких сомнений в том, что evil-winrm сделал все возможное, чтобы сделать нашу работу максимально легкой. Нам всегда нужно передавать файлы с атакующей машины на удаленную машину, чтобы выполнить перечисление или другие вещи. Вместо того, чтобы устанавливать сервер Python и загружать его из целевой системы, мы можем просто использовать команду загрузки с именем файла. Это спасительная функция, которую предоставляет инструмент evil-winrm, особенно в таких сценариях, когда мы сталкиваемся с правилами исходящего трафика, установленными в целевой системе, и когда мы используем evil-winrm с прокси. В приведенном ниже примере мы загружаем файл notes.txt в целевую систему.

Точно так же мы можем загрузить файл из целевой системы на компьютер злоумышленника, используя команду загрузки вместе с именем файла.

Мы можем проверить это, перейдя по пути, который мы скачали notes.txt на атакующей машине.

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

Этот инструмент также можно установить в докере. Если у нас в докере есть другая система, где установлен evil-winrm, то мы тоже можем вызвать ее из докера. Он будет работать так же, как и в основной базовой системе, без каких-либо проблем. Для этого следуйте синтаксису докера вместе с командой evil-winrm, чтобы вызвать его из докера.

Войти с помощью ключа с помощью Evil-winrm

Evil-winrm также позволяет нам использовать открытый и закрытый ключи для установления удаленного сеанса с использованием флага -c для открытого ключа и флага -k для закрытого ключа. Кроме того, мы также можем добавить флаг -an S, чтобы включить SSL, чтобы сделать наше соединение зашифрованным и безопасным.

Заключение

Мы кратко изучили инструмент Evil-winrm и его специальные функции, которые значительно упростят нашу внутреннюю оценку. Мы изучили несколько способов установки удаленного сеанса с помощью evil-winrm. Кроме того, мы изучили некоторые из его расширенных функций, которые повысят нашу производительность в производственной среде, а также в CTF. Наконец, я хотел бы поблагодарить Hackplayers за создание такого замечательного инструмента. Надеюсь, вы сегодня узнали что-то новое. Удачного взлома!

ВКонтакте
OK
Telegram
WhatsApp
Viber

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *