Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
wasmforge — WasmForge — compila programas Go y C# a ejecutables nativos en un solo binario, con sandbox WASM y salida polimórfica. | Kitploit
Herramientas/GitHubGitHub/praetorian-inc/wasmforge
Frameworks de Pruebas de PenetraciónEscalada de PrivilegiosFrameworks de ExploitsGeneración de PayloadsMecanismos de PersistenciaMovimiento LateralExplotación de Aplicaciones WebPost-ExplotaciónComando y ControlAnálisis de BinariosRed Teaming
1191276hace 3 mesesRevisado por Kitploit
Generación de Shellcode
GitHubpraetorian-inc/wasmforge

wasmforge

WasmForge — compila programas Go y C# a ejecutables nativos en un solo binario, con sandbox WASM y salida polimórfica.

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

WasmForge

WasmForge compila programas en Go y C# a WebAssembly, luego los empaqueta como binarios nativos individuales. Los ejecutables resultantes aíslan el código invitado dentro de un runtime WASM (una bifurcación por compilación de wazero). Desde dentro de esa caja de arena, los invitados obtienen acceso transparente a redes, sockets sin procesar, APIs Win32 y APIs de frameworks de macOS.

Puedes escribir Go normal usando net.Dial, net.Listen o net/http. También puedes migrar un proyecto .NET Framework C# existente. De cualquier manera, el resultado es un solo binario que se ejecuta en Windows o macOS, sin requerir que el usuario realice modificaciones en el código fuente invitado.

WasmForge Sliver Demo

SOLO QUIERO HABLAR CON UN HUMANO

Un vistazo rápido a este proyecto dejará bastante claro que se desarrolló con un uso INTENSO de LLMs. Parte de la documentación también lo ha sido, pero esta sección no. He hecho todo lo posible por des-simplificar este README, además de hacer que el proceso para usar WasmForge sea lo más directo posible. También, aunque los LLMs escribirán documentación que halaga en gran medida sus propios logros, las limitaciones no se hacen TAN claras.

Para establecer expectativas adecuadamente, aunque esto se ha probado con muchas características diferentes para Go, NO es una solución completa para todos los programas Go. Todavía hay un porcentaje saludable de la API win32 que no está soportada adecuadamente (como las APIs que requieren thunks de callback). Sliver, por ejemplo, funciona para una buena cantidad de comandos, pero NO es un puerto 1:1 completo con funcionalidad. ls, por ejemplo, seguirá mostrando rutas con / en lugar de la tradicional C:\, ya que el blob WASM no está completamente engañado para darse cuenta de que está dentro de Windows. Hay otras capacidades que simplemente provocarán un bloqueo. Asegúrate de probar cualquier funcionalidad que quieras usar antes de intentar usarla en un objetivo real. Si hay algo que no funciona, intenta construir el ejemplo más básico de la API que está rota y abre un issue / envía un PR.

El lado de C# es, en última instancia, más una prueba de concepto que una implementación. El proceso que se usa para compilar C# a WASM es demasiado experimental y significa que WasmForge a menudo necesita reescribir una parte considerable del programa de todos modos para que funcione. Al final, probablemente profundicé demasiado en esta capacidad y debería haber recomendado que la gente use un LLM para reescribir código C# como código Go. Probablemente sea menos doloroso de manejar. Dicho esto, el patrón general de C# -> Wasm -> WasmForge SÍ funciona y rompe una buena cantidad de detecciones específicas de C#.

En ese sentido, WasmForge está principalmente diseñado para lidiar con detecciones ESTÁTICAS. El proceso de transpilación rompe la mayoría de las detecciones, incluso para el escaneo en memoria, pero en última instancia, si tu binario tiene algunas cadenas muy obvias como mimikatz o sliver, hay algunos escaneos en memoria de bajo esfuerzo que causarán una detección. La ofuscación automática de cadenas probablemente se agregará en el futuro, ya que es una característica bastante fácil de automatizar, pero para la primera versión no quise agregar complejidad adicional al pipeline de compilación para mantener la depuración relativamente sencilla.

Si bien se han realizado algunos esfuerzos para limpiar/consolidar el código fuente en este repositorio, sigue estando bastante desorganizado. Hay varias carpetas diferentes para diferentes procesos de prueba. Las pruebas unitarias básicas tienden a vivir en examples/ y test/, mientras que algunas de las pruebas más complejas destinadas a ejecutarse en un entorno de laboratorio completo viven en testdata/. También hay una serie de herramientas solo para desarrollo/pruebas que viven en las carpetas scripts/ y internal/devtools. Estas solo serán necesarias si intentas configurar tu propio entorno de prueba para realizar más desarrollo. En general, cualquier desarrollo de LLM de algo tan complicado requiere una serie de casos de prueba muy explícitos para guiar la generación; de lo contrario, terminas con algo que no funciona en absoluto. El proyecto incluye estos harnesses para que cualquier persona curiosa pueda continuar su propio desarrollo de herramientas o contribuir al proyecto.

Espero que la comunidad encuentre estas herramientas relativamente fáciles de usar y con el tiempo continuaremos mejorándolas. Quizás algún día la compilación de C# funcione tan bien como la compilación de Go.

Inicio rápido (proyectos Go)

Hay tres formas de obtener wasmforge:

  1. Binario precompilado. Descarga una versión de la página de Releases — hay compilaciones del CLI para Linux, macOS y Windows adjuntas a cada tag.

  2. Imagen Docker. Para proyectos C# / .NET, la imagen incluida trae todos los prerrequisitos (.NET 10 SDK, workload NativeAOT-LLVM, WASI SDK 24.0, wasm-ld, osslsigncode) preinstalados. Constrúyela una vez con make docker-build y ejecútala con make docker-run — consulta docs/CSHARP.md para el flujo de trabajo completo. Esta es la ruta recomendada para C#.

  3. Compilar desde el código fuente.

    make build
    

    make build regenera el archivo internal/build/build_assets.tar.gz incrustado y luego compila el CLI. Si solo ejecutas go build -o wasmforge ./cmd/wasmforge obtendrás un binario funcional, pero las compilaciones en modo distribución (cuando el CLI se ejecuta fuera de este árbol de fuentes) usarán un archivo incrustado obsoleto. Consulta CONTRIBUTING.md para una explicación más detallada.

El directorio examples/ contiene programas Go ejecutables que puedes compilar de inmediato. Consulta examples/README.md para la lista completa.

Para Windows

GOOS=windows GOARCH=amd64 ./wasmforge build \
  --ghost traefik \
  -o myapp.exe \
  /ruta/a/tu/proyecto

El puente de la API Win32 se activa automáticamente siempre que GOOS=windows — ya no necesitas pasar --win32-apis para el caso común.

--ghost traefik intercambia la distribución de símbolos gopclntab incrustada para que se parezca al proxy inverso Traefik. De los perfiles incluidos, este produce la tasa de detección más baja en VirusTotal. Otros perfiles e instrucciones para generar los tuyos propios están en docs/GHOST-PROFILES.md.

Los binarios para Windows se firman automáticamente con un certificado autofirmado de forma predeterminada. Usa --sign google.com para suplantar el certificado TLS de un dominio, o --no-sign para deshabilitar la firma por completo.

Para macOS

# Intel
GOOS=darwin GOARCH=amd64 ./wasmforge build -o myapp /ruta/a/tu/proyecto

# Apple Silicon
GOOS=darwin GOARCH=arm64 ./wasmforge build -o myapp /ruta/a/tu/proyecto

No se requieren banderas adicionales. El puente de frameworks de macOS se activa automáticamente siempre que GOOS=darwin. Consulta docs/MACOS.md para el puente de frameworks, soporte de purego/ObjC y otras notas específicas de Apple.

Banderas opcionales

# Soporte de sockets sin procesar (requiere CAP_NET_RAW o root en tiempo de compilación)
./wasmforge build --raw-sockets -o myapp ./ruta/al/proyecto
Descargar herramienta