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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/praetorian-inc/wasmforge
Фреймворки для пентестаПовышение привилегийФреймворки для эксплойтовГенерация полезной нагрузкиМеханизмы персистентностиЛатеральное перемещениеЭксплуатация веб-приложенийПост-эксплуатацияКомандование и УправлениеАнализ Бинарных ФайловRed Teaming
11912763 месяцев назадПроверено Kitploit
Генерация Шеллкода
GitHubpraetorian-inc/wasmforge

wasmforge

WasmForge — компилирует программы на Go и C# в однобинарные, изолированные в WASM-песочнице нативные исполняемые файлы с полиморфным выводом.

Репозиторий

Популярное

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

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

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

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

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

WasmForge

WasmForge компилирует программы на Go и C# в WebAssembly, а затем упаковывает их в единые нативные бинарные файлы. Полученные исполняемые файлы изолируют гостевой код внутри WASM-среды выполнения (форк wazero, создаваемый при каждой сборке). Из этой песочницы гости получают прозрачный доступ к сети, сырым сокетам, Win32 API и API фреймворков macOS.

Вы можете писать обычный Go, используя net.Dial, net.Listen или net/http. Вы также можете перенести существующий проект на C# .NET Framework. В любом случае результатом будет один бинарный файл, который запускается на Windows или macOS, без необходимости изменять исходный код гостя.

WasmForge Sliver Demo

Я ПРОСТО ХОЧУ ПОГОВОРИТЬ С ЧЕЛОВЕКОМ

Быстрый взгляд на этот проект покажет, что он разрабатывался с ОЧЕНЬ АКТИВНЫМ использованием LLM. Часть документации тоже написана ими – но этот раздел – нет. Я постарался максимально «деслапифицировать» этот README, а также сделать процесс использования WasmForge максимально простым. И хотя LLM пишут документацию, которая сильно преувеличивает собственные достижения, ограничения в ней не описываются НАСТОЛЬКО чётко.

Чтобы правильно задать ожидания: хотя проект тестировался с множеством различных возможностей Go, это НЕ полное решение для всех программ на Go. Существует ещё значительный процент Win32 API, который не поддерживается должным образом (например, API, требующие callback-заглушек). Sliver, например, работает для значительного числа команд, но это НЕ полное взаимно-однозначное портирование со всей функциональностью. ls, например, всё ещё будет показывать пути с / вместо традиционного C:\, поскольку WASM-блоб не полностью обманут и не осознаёт, что находится в Windows. Другие возможности могут просто вызвать сбой. Перед использованием любой функциональности на реальной цели обязательно протестируйте её. Если что-то не работает, попробуйте создать самый простой пример проблемного API и откройте issue или отправьте PR.

Сторона C# в конечном счёте скорее proof-of-concept, чем полноценная реализация. Процесс компиляции C# в WASM слишком экспериментален, и это означает, что WasmForge часто всё равно приходится переписывать значительную часть программы, чтобы она заработала. В итоге я, вероятно, слишком углубился в эту возможность и должен был просто рекомендовать людям использовать LLM для переписывания кода на C# в код на Go. Вероятно, это менее болезненно. Тем не менее, общий шаблон C# -> Wasm -> WasmForge РАБОТАЕТ и обходит значительное количество детектов, специфичных для C#.

В связи с этим – WasmForge в первую очередь предназначен для борьбы со СТАТИЧЕСКИМИ детектами. Процесс транспиляции обходит большинство детектов, даже для сканирования в памяти, но если ваш бинарный файл содержит такие очевидные строки, как mimikatz или sliver, некоторые простые сканеры памяти всё равно их обнаружат. Автоматическое обфускация строк, вероятно, будет добавлена в будущем, поскольку это довольно простая функция для автоматизации, но для первого прохода я не хотел добавлять дополнительную сложность в конвейер сборки, чтобы отладка оставалась относительно простой.

Хотя были предприняты некоторые усилия по очистке/консолидации исходного кода в этом репозитории, он всё ещё довольно неорганизован. Здесь есть несколько различных папок для разных процессов тестирования. Базовые модульные тесты обычно находятся в examples/ и test/, а некоторые более сложные тесты, предназначенные для запуска в полноценной лабораторной среде, - в testdata/. Также есть ряд инструментов для разработки/тестирования в папках scripts/ и internal/devtools. Они понадобятся только если вы пытаетесь настроить собственную тестовую среду для дальнейшей разработки. В целом, для разработки чего-то такого сложного с помощью LLM требуется большое количество очень конкретных тестовых случаев для направления генерации, иначе вы получите что-то, что вообще не работает. Проект включает эти обвязки, чтобы любой желающий мог продолжить разработку инструментов или внести свой вклад в проект.

Надеюсь, сообщество сочтёт этот инструмент относительно простым в использовании, и со временем мы продолжим его улучшать. Может быть, когда-нибудь компиляция C# будет работать так же хорошо, как компиляция Go.

Быстрый старт (проекты на Go)

Есть три способа получить wasmforge:

  1. Готовый бинарный файл. Загрузите релиз со страницы релизов — сборки CLI для Linux, macOS и Windows прикреплены к каждому тегу.

  2. Docker-образ. Для проектов на C# / .NET в состав образа входят все необходимые компоненты (.NET 10 SDK, рабочая нагрузка NativeAOT-LLVM, WASI SDK 24.0, wasm-ld, osslsigncode), предварительно установленные. Соберите его один раз с помощью make docker-build и запускайте с помощью make docker-run — см. docs/CSHARP.md для полного рабочего процесса. Это рекомендуемый путь для C#.

  3. Сборка из исходников.

    make build
    

    make build перегенерирует встроенный internal/build/build_assets.tar.gz и затем компилирует CLI. Если вы просто выполните go build -o wasmforge ./cmd/wasmforge, вы получите рабочий бинарный файл, но сборки в режиме распространения (когда CLI запускается вне этого дерева исходников) будут использовать устаревший встроенный архив. См. CONTRIBUTING.md для более подробного объяснения.

В каталоге examples/ есть рабочие программы на Go, которые можно собрать сразу. См. examples/README.md для полного меню.

Целевая платформа Windows

GOOS=windows GOARCH=amd64 ./wasmforge build \
  --ghost traefik \
  -o myapp.exe \
  /path/to/your/project

Мост Win32 API автоматически включается, когда GOOS=windows — вам больше не нужно передавать --win32-apis для обычного случая.

--ghost traefik заменяет встроенное распределение символов gopclntab, чтобы оно выглядело как обратный прокси-сервер Traefik. Из встроенных профилей этот даёт наименьший уровень обнаружения в VirusTotal. Другие профили и инструкции по созданию собственных находятся в docs/GHOST-PROFILES.md.

Цели Windows по умолчанию автоматически подписываются самоподписанным сертификатом. Используйте --sign google.com, чтобы подделать TLS-сертификат домена, или --no-sign, чтобы полностью отключить подпись.

Целевая платформа macOS

# Intel
GOOS=darwin GOARCH=amd64 ./wasmforge build -o myapp /path/to/your/project

# Apple Silicon
GOOS=darwin GOARCH=arm64 ./wasmforge build -o myapp /path/to/your/project

Дополнительные флаги не требуются. Мост фреймворков macOS автоматически включается, когда GOOS=darwin. См. docs/MACOS.md о мосте фреймворков, поддержке purego/ObjC и других заметках по macOS.

Дополнительные флаги

# Поддержка сырых сокетов (требует CAP_NET_RAW или root во время сборки)
./wasmforge build --raw-sockets -o myapp ./path/to/project

# Подробный вывод (полезно для первой сборки)
GOOS=windows GOARCH=amd64 ./wasmforge build --ghost traefik --win32-apis -v -o tool.exe /path/to/project

# Пользовательская PE VERSIONINFO (только Windows)
./wasmforge build --pe-company "Acme Corp" --pe-product "AcmeTool" --pe-file-version "10.0.19041.1" ...

Компиляция проектов на C# / .NET

Проекты на C# (файлы .csproj) обнаруживаются автоматически. WasmForge запускает полный конвейер миграции, наложения патчей и сборки NativeAOT-WASI одной командой:

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