Invoke-TheHash

Описание Invoke-TheHash

Invoke-TheHash содержит функции PowerShell для выполнения pass the hash (передача хеша) в WMI и SMB задачи.

Технология pass the hash (передача хеша) позволяет проходить аутентификацию не имя пароля в виде простого текста, а имея только его хеш. Для этого программа запускает процесс с поддельной идентификацией, затем заменяет фальшивую информацию (NTLM хеш фальшивого пароля) на реальную информацию (NTLM хеш реального пароля).

WMI и SMB подключения доступны через .NET TCPClient.

Аутентификация выполняется передачей NTLM хеша в протокол аутентификации NTLMv2. Привилегии локального администратора на клиентской стороне не требуются.

Домашняя страница: https://github.com/Kevin-Robertson/Invoke-TheHash

Автор: Kevin Robertson

Лицензия: BSD-3-Clause

Справка по Invoke-TheHash

Invoke-TheHash включает в себя 5 функций:

  • Invoke-WMIExec
  • Invoke-SMBExec
  • Invoke-SMBEnum
  • Invoke-SMBClient
  • Invoke-TheHash

Справка по Invoke-WMIExec

Функция выполнения команд через WMI.

Использование:

Invoke-WMIExec -Target ЦЕЛЬ -Domain ДОМЕН -Username ПОЛЬЗОВАТЕЛЬ -Hash ХЕШ -Command "КОМАНДА" -verbose

Параметры:

-Target — Имя хоста или IP адрес цели.

-Username — Имя пользователя для использования в аутентификации.

-Domain — Домен для использования в аутентификации. Этот параметр не нужен с локальными аккаунтами или когда используется @domain после имени пользователя.

-Hash — NTLM хеш пароля для аутентификации. Эта функция примет как LM:NTLM, так и NTLM формат.

-Command — Команда для выполнения на цели. Если команда не указана, то функция просто проверит, имеет ли пользователь и хеш доступ к WMI на целевой системе.

-Sleep — По умолчанию = 10 миллисекунд: Устанавливает значение функции Start-Sleep в миллисекундах.

Справка по Invoke-SMBExec

Функция выполнения команд через SMB (PsExec) поддерживающая SMB1, SMB2.1, с входом или без по SMB.

Использование:

Invoke-SMBExec -Target ЦЕЛЬ -Domain ДОМЕН -Username ПОЛЬЗОВАТЕЛЬ -Hash ХЕШ -Command "КОМАНДА" -verbose

Параметры:

-Target — Имя хоста или IP адрес цели.

-Username — Имя пользователя для использования в аутентификации.

-Domain — Домен для использования в аутентификации. Этот параметр не нужен с локальными аккаунтами или когда используется @domain после имени пользователя.

-Hash — NTLM хеш пароля для аутентификации. Эта функция примет как LM:NTLM, так и NTLM формат.

-Command — Команда для выполнения на цели. Если команда не указана, то функция просто проверит, имеет ли пользователь и хеш доступ к SCM на целевой системе.

-CommandCOMSPEC - По умолчанию = enabled: Добавлять %COMSPEC% /C к Команде.

-Service — По умолчанию = 20 случайных символов: Имя службы для создания или удаления на цели

-Sleep — По умолчанию = 150 миллисекунд: Устанавливает значение функции Start-Sleep в миллисекундах.

-Version — По умолчанию = Auto: (Auto,1,2.1) Принудительно указывает версию SMB. Поведением по умолчанию является выполнить переговоры о версиии SMB и использовать SMB2.1 если она поддерживается целью.

Справка по Invoke-SMBEnum

Invoke-SMBEnum выполняет перечисление пользователей, групп, сетевых сессий и совместных ресурсов (принтеров и сетевых папок) по SMB2.1 с или без входа по SMB.

Использование:

Invoke-SMBEnum -Target ЦЕЛЬ -Domain ДОМЕН -Username ПОЛЬЗОВАТЕЛЬ -Hash ХЕШ -verbose

Параметры:

-Target — Имя хоста или IP адрес цели.

-Username — Имя пользователя для использования в аутентификации.

-Domain — Домен для использования в аутентификации. Этот параметр не нужен с локальными аккаунтами или когда используется @domain после имени пользователя.

-Hash — NTLM хеш пароля для аутентификации. Эта функция примет как LM:NTLM, так и NTLM формат.

-Action - (All,Group,NetSession,Share,User) По умолчанию = Share: Какое действие по перечислению выполнить.

-Group — По умолчанию = Administrators: Group to enumerate.

-Sleep — По умолчанию = 150 миллисекунд: Устанавливает значение функции Start-Sleep в миллисекундах.

-Version — По умолчанию = Auto: (Auto,1,2.1) Принудительно указывает версию SMB. Поведением по умолчанию является выполнить переговоры о версиии SMB и использовать SMB2.1 если она поддерживается целью. Обратите внимание, что только проверка входа работает с SMB1.

Справка по Invoke-SMBClient

Функция клиента SMB поддерживающая вход по SMB2.1 и SMB. Эта функция в первую очередь обеспечивает функции работы с файлами на совместно используемых папках по SMB протоколу для работы с хешами, которые не имеют привилегии удалённого выполнения команд. Эта функция может также использоваться для доставки полезной нагрузки для использования с Invoke-WMIExec и Invoke-SMBExec. Обратите внимание, что Invoke-SMBClient встроен в .NET TCPClient и не использует клиент Windows SMB. Invoke-SMBClient намного медленнее, чем клиент от Windows.

Использование:

Invoke-SMBClient -Domain ДОМЕН -Username ПОЛЬЗОВАТЕЛЬ -Hash ХЕШ -Action ДЕЙСТВИЕ -Source \\СЕРВЕР\ПАПКА -Destination ПАПКА -verbose

Параметры:

-Username — Имя пользователя для использования в аутентификации.

-Domain — Домен для использования в аутентификации. Этот параметр не нужен с локальными аккаунтами или когда используется @domain после имени пользователя.

-Hash — NTLM хеш пароля для аутентификации. Эта функция примет как LM:NTLM, так и NTLM формат.

-Action — По умолчанию = List: (List/Recurse/Delete/Get/Put) Действие для выполнения.

List: Выводит список содержимого директории.

Recurse: Выводит список содержимого директории и всех поддиректорий.

Delete: Удаляет файл.

Get: Загружает файл.

Put: Выгружает файл и устанавливает метки времени создания, доступа и последней записи для соответствия исходного файлу.

-Source

List и Recurse: UNC путь к директории.

Delete: UNC путь к файлу.

Get: UNC путь к файлу.

Put: Файл для выгрузки. Если полный путь не указан, то файл должен быть в текущей директории. Когда используется переключатель 'Modify', 'Source' должен быть массивом байтов.

-Destination

List и Recurse: Не используется.

Delete: Не используется.

Get: Если используется, значение будет новым именем загруженного файла. Если полный путь не указан, то файл будет создан в текущей директории.

Put: UNC путь для выгружаемого файла. Имя файла должно быть указано.

-Modify

List и Recurse: Эта функция выведет объект состоящий из содержимого каталога.

Delete: Не используется.

Get: Эта функция выведет массив байт загруженного файла вместо записи файла на диск. Рекомендуется использовать это только с небольшими файлами и отправлять вывод в переменную.

Put: Выгрузить массив байт в новый файл.

-NoProgress — Не выводить бар выгрузки и загрузки.

-Sleep — По умолчанию = 100 миллисекунд: Устанавливает значение функции Start-Sleep в миллисекундах.

-Version — По умолчанию = Auto: (Auto,1,2.1) Принудительно устанавливает версию SMB. Поведением по умолчанию является выполнить переговоры о версиии SMB и использовать SMB2.1 если она поддерживается целью. Обратите внимание, что только проверка входа работает с SMB1.

Справка по Invoke-TheHash

Функция для запуска функций Invoke-TheHash в отношении множества целей.

Использование:

Invoke-TheHash -Type ТИП -Target СЕТЬ -TargetExclude ИСКЛЮЧЕНИЕ -Username ПОЛЬЗОВАТЕЛЬ -Hash ХЕШ

Параметры:

-Type — Установить желаемую функцию Invoke-TheHash. Установить на SMBClient, SMBEnum, SMBExec или WMIExec.

-Target — Список имён хостов, IP адресов, CIDR нотация или диапазоны IP в качестве целей.

-TargetExclude — Список имён хостов, IP адресов, CIDR нотация или диапазоны IP для исключения из списка целей.

-PortCheckDisable — (Переключатель) Отключить проверку портов WMI или SMB. Поскольку эта функция ещё не сделана многопоточной проверка портов нужна для ускорения работы этой функции путём проверки на открытый порт WMI или SMB перед попыткой полного синхронного TCPClient соединения.

-PortCheckTimeout — По умолчанию = 100: Устанавливает таймаут ответа в милисекундах для WMI или SMB проверки портов.

-Username — Имя пользователя для использования в аутентификации.

-Domain — Домен для использования в аутентификации. Этот параметр не нужен с локальными аккаунтами или когда используется @domain после имени пользователя.

-Hash — NTLM хеш пароля для аутентификации. Эта функция примет как LM:NTLM, так и NTLM формат.

-Command — Команда для выполнения на цели. Если команда не указана, то функция просто проверит, имеет ли пользователь и хеш доступ к WMI или SCM на целевой системе.

-CommandCOMSPEC — По умолчанию = Enabled: Только для типа SMBExec. Добавляет %COMSPEC% /C к Команде.

-Service — По умолчанию = 20 случайных символов: только для типа SMBExec. Имя службы для создания и удаления на цели.

-SMB1 - (Переключатель) Принудительный выбор SMB1. Только для типа SMBExec. Поведение по умолчанию — это выполнить переговоры по версии SMB и использовать SMB2 если она поддерживается целью.

-Sleep — По умолчанию = WMI 10 миллисекунд, SMB 150 миллисекунд: Устанавливает значение функции Start-Sleep в миллисекундах.

Руководство по Invoke-TheHash

Страница man отсутствует.

Примеры запуска

Использовать функцию для выполнения команды (-Command "whoami") на удалённой системе (-Target 192.168.100.20) с помощью WMI (Invoke-WMIExec), пройдя аутентификацию с именем пользователя (-Username TEST) и используя хеш (-Hash F6F38B793DB6A94BA04A52F1D3EE92F0), включить подробный вывод (-verbose):

Invoke-WMIExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "whoami" -verbose

Проверить, возможен ли вход на удалённый компьютер (-Target 192.168.100.20) по протоколу SMB (Invoke-SMBExec) без пароля:

Invoke-SMBExec -Target 192.168.100.20

Перечислеть совместные папки (Invoke-SMBEnum) на цели (-Target 192.168.100.20), пройдя аутентификацию с именем пользователя (-Username TEST) и используя хеш (-Hash F6F38B793DB6A94BA04A52F1D3EE92F0), включить подробный вывод (-verbose):

Invoke-SMBEnum -Target 192.168.100.20 -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -verbose

Установка Invoke-TheHash

Установка в Kali Linux

Начните с установки PowerShell:

sudo apt install powershell

Затем скачайте файлы скриптов:

git clone https://github.com/Kevin-Robertson/Invoke-TheHash
cd Invoke-TheHash/

Для запуска импортируйте функции:

Import-Module ./Invoke-TheHash.psd1

И используйте эти функции для запуска:

Invoke-WMIExec
Invoke-SMBExec
Invoke-SMBEnum
Invoke-SMBClient
Invoke-TheHash

Либо запускайте непосредственно файлы скриптов:

./Invoke-WMIExec.ps1
./Invoke-SMBExec.ps1
./Invoke-SMBEnum.ps1
./Invoke-SMBClient.ps1
./Invoke-TheHash.ps1

Установка в BlackArch

Установите PowerShell, для помощи смотрите инструкцию «Настройка рабочего окружения PowerShell в Windows и Linux», а затем скачайте (https://github.com/Kevin-Robertson/Invoke-TheHash/archive/master.zip) и запускайте скрипты в соответств

Установка в Windows

Скачайте файлы скриптов: https://github.com/Kevin-Robertson/Invoke-TheHash/archive/master.zip

Для запуска импортируйте функции:

Import-Module ./Invoke-TheHash.psd1

И используйте эти функции для запуска:

Invoke-WMIExec
Invoke-SMBExec
Invoke-SMBEnum
Invoke-SMBClient
Invoke-TheHash

Дополнительную помощь вы найдёте в статье «Настройка рабочего окружения PowerShell в Windows и Linux».

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты Invoke-TheHash

Инструкции по Invoke-TheHash

Близкие программы:

  • keimpx (100%)
  • Pupy (69.7%)
  • mXtract (67.5%)
  • mimikatz (67.5%)
  • APT2 (66.8%)
  • statsprocessor (RANDOM - 2.6%)
  • Рекомендуется Вам:

    Comments are Closed