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
Venom — Venom - Un proxy de múltiples saltos para probadores de penetración | Kitploit
Herramientas/GitHubGitHub/dliv3/venom
Herramientas de Cifrado/DescifradoMapeo de RedesPruebas de PenetraciónComando y ControlRed TeamingHerramienta de Acceso Remoto
GitHubdliv3/venom

Venom

Venom - Un proxy de múltiples saltos para probadores de penetración

Ver Repositorio
2.2k35815hace 6 añosRevisado por Kitploit

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

Venom - Un Proxy Multi-Salto para Probadores de Penetración

简体中文 | English

Venom es una herramienta de proxy multinivel desarrollada en Go diseñada para probadores de penetración.

Venom permite conectar múltiples nodos y utilizar estos nodos como saltos para construir un proxy multinivel.

Los probadores de penetración pueden usar Venom para enrutar fácilmente el tráfico de red a través de múltiples capas de redes internas y gestionar los nodos proxy de manera eficiente.

Esta herramienta está destinada exclusivamente a la investigación de seguridad y la enseñanza; el usuario asume toda la responsabilidad legal y relacionada derivada del uso de esta herramienta. ¡El autor no asume ninguna responsabilidad legal o relacionada!

Características

  • Topología de red visual
  • Proxy SOCKS5 multinivel
  • Reenvío de puertos multinivel
  • Reutilización de puertos (Apache/MySQL/...)
  • Túnel SSH
  • Shell interactivo
  • Carga y descarga de archivos
  • Cifrado de comunicación entre nodos
  • Soporta múltiples plataformas (Linux/Windows/MacOS) y múltiples arquitecturas (x86/x64/ARM/MIPS)

Dado que los dispositivos IoT (arquitecturas ARM/MIPS/...) suelen tener recursos limitados, los binarios compilados para este proyecto en entornos IoT no admiten la reutilización de puertos ni el túnel SSH. Además, para reducir el uso de memoria, se limita el número de conexiones concurrentes y el tamaño del búfer.

Instalación

Puede descargar y usar directamente los ejecutables compilados en el release.

Si desea compilar el proyecto desde el código fuente, necesita instalar go >= 1.11 y luego ejecutar los siguientes comandos:

go get -u github.com/Dliv3/Venom/...

# $GOPATH es la variable de entorno configurada al instalar Go; se puede ver con el comando go env
cd $GOPATH/src/github.com/Dliv3/Venom

# Los binarios compilados se guardan en la carpeta release en el directorio actual
./build.sh

Uso

Video de demostración en Youtube: https://www.youtube.com/playlist?list=PLtZO9vwOND91vZ7yCmlAvISmEl2iQKjdI

1. Parámetros de línea de comandos de admin/agent

  • Tanto el nodo admin como el nodo agent pueden escuchar conexiones o iniciar conexiones

    El admin escucha en un puerto, el agent inicia la conexión:

    ./admin_macos_x64 -lport 9999
    
    ./agent_linux_x64 -rhost 192.168.0.103 -rport 9999
    

    El agent escucha en un puerto, el admin inicia la conexión:

    ./agent_linux_x64 -lport 8888
    
    ./admin_macos_x64 -rhost 192.168.204.139 -rport 8888
    
  • El nodo agent soporta reutilización de puertos

    El agent proporciona dos métodos de reutilización de puertos:

    1. Reutilización de puertos mediante las opciones SO_REUSEPORT y SO_REUSEADDR.
    2. Reutilización de puertos mediante iptables (solo compatible con Linux).

    Con la función de reutilización de puertos de Venom, en Windows se pueden reutilizar puertos de servicios como Apache y MySQL, pero no los de RDP o IIS. En Linux se pueden reutilizar la mayoría de los puertos de servicio. El puerto reutilizado seguirá funcionando normalmente para su servicio original.

    Primer método de reutilización de puertos

    # Ejemplo con Apache en Windows
    # Reutiliza el puerto 80 de Apache sin afectar su servicio HTTP normal
    # El valor de -lhost debe ser la IP local; no se puede usar 0.0.0.0, de lo contrario la reutilización falla
    ./agent.exe -lhost 192.168.204.139 -reuse-port 80
    
    ./admin_macos_x64 -rhost 192.168.204.139 -rport 80
    

    Segundo método de reutilización de puertos

    # Ejemplo con Apache en Linux
    # Requiere permisos de root
    sudo ./agent_linux_x64 -lport 8080 -reuse-port 80
    

    Este método establece reglas iptables en la máquina local para redirigir el tráfico de reuse-port a lport, y luego el agent distribuye el tráfico.

    Tenga en cuenta que si el programa termina mediante las señales sigterm o sigint (kill o Ctrl+C), el programa limpiará automáticamente las reglas iptables. Si el agent se mata con kill -9, las reglas iptables no se limpian automáticamente y es necesario hacerlo manualmente, ya que el agent no puede manejar la señal sigkill.

    Para evitar que las reglas iptables no se limpien automáticamente e impidan al probador de penetración acceder al servicio en el puerto 80, el segundo método utiliza iptables -m recent para controlar si las reglas de redirección están activas mediante paquetes TCP especiales.

    La implementación aquí se basa en https://threathunter.org/topic/594545184ea5b2f5516e2033

    # Inicia el agent con las reglas iptables configuradas en la máquina Linux
    # Si rhost está en la red interna, se puede usar un proxy SOCKS5 para el tráfico del script; ver más abajo el uso del proxy SOCKS5
    python scripts/port_reuse.py --start --rhost 192.168.204.135 --rport 80
    
    # Conectarse al nodo agent
    ./admin_macos_x64 -rhost 192.168.204.135 -rport 80
    
    # Para desactivar las reglas de redirección
    python scripts/port_reuse.py --stop --rhost 192.168.204.135 --rport 80
    
  • Cifrado de comunicación entre nodos

    Venom proporciona cifrado de comunicación entre nodos. El usuario puede especificar una contraseña mediante la opción -passwd, que se utiliza para generar la clave de cifrado AES.

    # Especifica la contraseña como dlive@dubhe con -passwd
    ./admin_macos_x64 -lport 8889 -passwd dlive@dubhe
    
    # El agent especifica la misma contraseña para conectarse al nodo admin
    ./agent_macos_x64 -rhost 192.168.0.103 -rport 8889 -passwd dlive@dubhe
    

2. Comandos integrados del nodo admin

  • help Muestra la ayuda

    (admin node) >>> help
    
      help                                     Información de ayuda.
      exit                                     Salir.
      show                                     Mostrar topología de red.
      getdes                                   Ver la descripción del nodo objetivo.
      setdes     [info]                        Agregar una descripción al nodo objetivo.
      goto       [id]                          Seleccionar id como nodo objetivo.
      listen     [lport]                       Escuchar en un puerto en el nodo objetivo.
      connect    [rhost] [rport]               Conectar un nuevo nodo a través del nodo objetivo.
      sshconnect [user@ip:port] [dport]        Conectar un nuevo nodo a través de un túnel SSH.
      shell                                    Iniciar un shell interactivo en el nodo objetivo.
      upload     [local_file]  [remote_file]   Subir archivos al nodo objetivo.
      download   [remote_file]  [local_file]   Descargar archivos desde el nodo objetivo.
      socks      [lport]                       Iniciar un servidor SOCKS5.
      lforward   [lhost] [sport] [dport]       Redirigir un puerto local a un puerto remoto.
      rforward   [rhost] [sport] [dport]       Redirigir un puerto remoto a un puerto local.
      
    
  • show Muestra la topología de red

    A representa el nodo admin, los números representan nodos agent.

    El siguiente diagrama de topología muestra que el nodo admin tiene conectado el nodo 1, el nodo 1 tiene conectados los nodos 2 y 4, y el nodo 2 tiene conectado el nodo 3.

    (node 1) >>> show
    A
    + -- 1
         + -- 2
              + -- 3
         + -- 4
    

    Nota: para operar sobre un nodo recién agregado, primero debe ejecutar el comando show en el nodo admin para sincronizar la topología de red y los números de nodo.

  • goto Operar en un nodo

    (admin node) >>> goto 1
    (node 1) >>> 
    

    Una vez que haya ido a un nodo, puede usar los comandos que se describen a continuación.

Descargar herramienta