Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
wcfproxy — Un proxy para tráfico WCF basado en net.tcp. | Kitploit
Herramientas/GitHubGitHub/syss-research/wcfproxy
Proxies Web e InterceptaciónPruebas de Seguridad de APIsSeguridad de RedesPruebas de PenetraciónAnálisis de BinariosAutenticación
GitHubsyss-research/wcfproxy

wcfproxy

Un proxy para tráfico WCF basado en net.tcp.

Ver Repositorio
816hace 6 mesesAún no revisado

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

Compilación

Puedes compilar la herramienta una vez y luego usar el binario resultante, o ejecutarla "como un script" (el toolchain de Go la compilará sobre la marcha). Para desarrollo, la última opción es conveniente. Para uso productivo, se recomienda compilarlo una vez (desde el directorio cli) y usar el ejecutable resultante. Gracias al compilador de Go, puedes compilar desde y para Linux o Windows. Se requiere al menos la versión 1.18 de Go para compilar (probado con Go 1.23).

Compilación desde Linux

Para compilar desde Linux para Windows o Linux, simplemente establece GOOS apropiadamente (ejecuta desde el directorio cli):``` GOOS=windows GOARCH=amd64 go build -o wcfproxy.exe

*   **-param** puede proporcionar un valor pero también recuperar valores del contenido de archivos o resultados de un comando:
    *   `-param 'aes-256-ctr'` proporcionar valor directamente
    *   `-param @file.txt` proporcionar valor desde el contenido del archivo
    *   `-param $(command)` proporcionar valor desde los resultados del comando
*   **-pipe** puede pasar el contenido redirigido desde stdin al binario de destino:
    *   Suministrar contenido redirigido vía stdin `echo "test" | secshell -pipe -cmd 'nc localhost 1337'`
    *   Suministrar contenido redirigido vía redirección de archivo `secshell -pipe -cmd 'nc localhost 1337' < file.txt`

## ¿Por qué no simplemente usar el shell?

La razón principal para usar secshell es evitar dejar rastros en los registros del sistema.

Cuando ejecutas un comando como `ncat -e /bin/bash`, la cadena completa del comando se registra en varios registros del sistema (historial del shell, auditd, syslog). Esto deja un rastro forense digital claro para equipos azul/rojo.```
GOOS=linux GOARCH=amd64 go build -o wcfproxy

Compilar desde Windows

Para compilar desde Windows, ejecuta los comandos equivalentes, por ejemplo desde PowerShell:``` $env:GOOS='windows'; $env:GOARCH='amd64'; go build -o wcfproxy.exe

las actualizaciones se aplican automáticamente sin intervención del usuario, garantizando que el sistema esté siempre protegido contra las vulnerabilidades más recientes.```
$env:GOOS='linux'; $env:GOARCH='amd64'; go build -o wcfproxy

Uso

La configuración para wcfproxy se proporciona a través de un archivo JSON. Por defecto, se utiliza el archivo de configuración config.json, pero la ruta a un archivo de configuración se puede especificar con el parámetro -config. El archivo de configuración debe contener tantas configuraciones con nombre como se desee, de la siguiente manera:```json { "my-config": { " ... ": " ... " } }

El valor de los objetos de configuración nombrados debe coincidir con la estructura `Config` (ver [Estructura de Config](#config-structure)).
Este archivo fuente con los comentarios incluidos también funciona como la documentación más precisa para las opciones de configuración de `wcfproxy`.
De toda la configuración proporcionada, la que se debe usar se identifica por nombre mediante la opción de línea de comandos `-enable`:```
wcfproxy.exe -config config.json -enable my-config

Estructura de configuración

La estructura de nivel superior de cada objeto de configuración es la siguiente:```json { "listen": "[::1]:8000", "connect": "[::1]:9000", "retarget": "net.tcp://127.0.0.1:8000/WCFLab/WCFDemoService/nettcp", "retarget-map": { "nettcps": "net.tcp://localhost:8210/WCFLab/WCFDemoService/nettcps", "winauth": "net.tcp://localhost:8220/WCFLab/WCFDemoService/nettcp-winauth" }, "log-level": "debug|info|warn|error", "log-file": "path/to/log/file", "tls-server": { " ... ": " ... " }, "tls-client": { " ... ": " ... " }, "ntlm": { " ... ": " ... " }, "interceptor": { " ... ": " ... " }, "ctrl": { " ... ": " ... " } }

Nota que no se puede proporcionar una configuración TLS (`tls-server` y/o `tls-client`) si existe una configuración NTLM.

### Opciones de configuración
+ `listen` - el punto final TCP en el que *wcfproxy* debe escuchar, p. ej. `127.0.0.1:8000` o `[::1]:8000`
+ `connect` - el punto final TCP del servidor WCF ascendente, p. ej. `127.0.0.1:9000` o `[::1]:9000`
+ `retarget` - especificación del objetivo original (y valor de reserva para `retarget-map`); para una explicación, consulte [Reescritura de objetivo](#target-rewriting)
+ `retarget-map` - generalización de `retarget`; permite realizar la reescritura de objetivo para múltiples puntos finales (solo es útil si se trabaja con múltiples servicios WCF en el mismo puerto)
    + si una de las claves en `retarget-map` coincide con el objetivo actual, la URI del objetivo se reemplazará con el valor dado para la comunicación ascendente
    + si ninguna clave de `retarget-map` coincide con el objetivo actual, se usará `retarget` en su lugar
+ `log-level` - nivel de registro; valores disponibles: `debug`, `info` (por defecto), `warn`, `error`
+ `log-file` - ruta al archivo de registro; si no se proporciona una ruta, el registro se escribe en `stdout`
+ `tls-server` - instancia de `TlsServerConfig` (consulte [Configuración del servidor TLS](#tls-server-configuration)); solo se requiere si se debe soportar la actualización TLS
+ `tls-client` - instancia de `TlsClientConfig` (consulte [Configuración del cliente TLS](#tls-client-configuration)); solo es relevante si se debe soportar la actualización TLS
+ `ntlm` - instancia de `NtlmConfig` (consulte [Configuración NTLM](#ntlm-configuration)); solo se requiere si se debe soportar la actualización NTLM (directamente o a través de SPNEGO)
+ `interceptor` - instancia de `InterceptorConfig` (consulte [Configuración del interceptor](#interceptor-configuration)); requerido
+ `ctrl` - instancia de `ControlServerConfig` (consulte [Configuración del servidor de control](#control-server-configuration)) que puede proporcionar un servidor echo HTTP por defecto (útil junto con el interceptor HTTP) así como una pequeña API para controlar el flujo de mensajes (aún en desarrollo)

### Configuración del servidor TLS
La configuración del lado del servidor TLS brinda control sobre la mayoría de los ajustes típicamente relevantes del servidor TLS.
Tiene la siguiente estructura:```json
{
	"cert-pem": "path/to/certificate",
	"cert-key": "path/to/certificate-key",
	"max-version": "1.0|1.1|1.2|1.3",
	"min-version": "1.0|1.1|1.2|1.3",
	"client-roots": "path/to/client-ca1,path/to/client-ca2",
	"client-auth": "none|request|require-any|verify-if-given|require-and-verify",
	"keylog": "path/to/keylog-file"
}

Opciones de configuración del servidor TLS

  • cert-pem - ruta al certificado X.509 (en formato PEM)
  • cert-key - ruta a la clave correspondiente para el certificado
  • max-version - versión TLS máxima aceptable; una de 1.0, 1.1, 1.2, 1.3 (predeterminada)
  • min-version - versión TLS mínima aceptable; una de 1.0 (predeterminada), 1.1, 1.2, 1.3
  • client-roots - lista separada por comas de rutas a certificados raíz aceptables (PEM) para autenticación del cliente; opcional
  • client-auth - política de autenticación del cliente; valores más útiles: none (predeterminado), require-and-verify
  • keylog - archivo para escribir secretos TLS en formato NNS
Descargar herramienta