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
revsuit — RevSuit es una plataforma de conexión inversa flexible y potente diseñada para recibir conexiones desde el host objetivo en penetración. | Kitploit
Herramientas/GitHubGitHub/li4n0/revsuit
Frameworks de Pruebas de PenetraciónReconocimientoAnálisis de VulnerabilidadesExplotaciónRecopilación de InformaciónSeguridad WebPruebas de PenetraciónAnálisis de DNS
GitHubli4n0/revsuit

revsuit

RevSuit es una plataforma de conexión inversa flexible y potente diseñada para recibir conexiones desde el host objetivo en penetración.

Ver Repositorio
56469hace 3 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

RevSuit - Una plataforma de conexión inversa flexible y poderosa

English |简体中文

Visión General

RevSuit es una plataforma de conexión inversa flexible y poderosa diseñada para recibir conexiones desde el host objetivo en pruebas de penetración. Actualmente es compatible con los protocolos HTTP, DNS, RMI, LDAP, MySQL y FTP.

Flexible:

  1. RevSuit permite establecer reglas flexibles para capturar diferentes conexiones.
  2. Despliegue y ejecución mediante binarios sin preocuparse por molestos errores de dependencias.

Poderoso:

  1. Permite personalizar la respuesta para diferentes conexiones a través de reglas y admite la generación dinámica de respuestas utilizando variables de plantilla.
  2. Soporta una variedad de protocolos, y permite el aprovechamiento en profundidad de algunos protocolos, como el reenlace DNS, MySQL Load Local Data, Explotación de deserialización JDBC, SSRF en modo pasivo FTP, etc.
  3. Soporte nativo para su uso con escáneres.
  4. Soporta notificaciones push a software de oficina popular.
  5. Otras características detalladas y bien pensadas.

Uso Básico

Instalación y Configuración

Descargue la última versión directamente o construya siguiendo estos pasos:

root@kitploit:~
git clone https://github.com/Li4n0/revsuit.git
cd revsuit/frontend && yarn install && yarn build
cd ../ && go build ./cmd/revsuit/revsuit.go

RevSuit generará un archivo de configuración predeterminado en la primera ejecución. Modifique el archivo de configuración según sus necesidades y luego vuelva a ejecutar. Una descripción detallada del archivo de configuración se encuentra en: Notas de configuración

Ejecución

Para confirmar la ubicación IP, es necesario usar la base de datos de ubicación IP. QQwry se utiliza como fuente de datos por defecto, también puede modificar la configuración para usar GeoIP. Si la base de datos seleccionada no está disponible en el directorio actual o si la base de datos se actualiza durante más de una semana, RevSuit descargará automáticamente la base de datos más reciente. Si la descarga falla, el campo IpArea siempre será nulo.

root@kitploit:~
$ ./revsuit   
2021/05/16 22:55:10 [ INFO] Descargando qqwry.dat...

    ____            _____       _ __ 
   / __ \___ _   __/ ___/__  __(_) /_
  / /_/ / _ \ | / /\__ \/ / / / / __/
 / _, _/  __/ |/ /___/ / /_/ / / /_  
/_/ |_|\___/|___//____/\__,_/_/\__/    
                                   vBeta0.1
     https://revsuit.pro
2021/05/16 22:55:22 [ INFO] Iniciando servidor HTTP en :80, token:your_token
2021/05/16 22:55:22 [ INFO] Iniciando escucha en puerto FTP PASV en :2020, PasvIP es 10.9.8.7
2021/05/16 22:55:22 [ INFO] Iniciando servidor FTP en :21
2021/05/16 22:55:22 [ INFO] Iniciando servidor MySQL en :3306
2021/05/16 22:55:22 [ INFO] Iniciando servidor RMI en :1099
2021/05/16 22:55:22 [ INFO] Iniciando servidor DNS en :53

Después de ejecutar, puede visitar la ruta /revsuit/admin/ del servidor HTTP e ingresar el token para acceder al panel de control.

Crear Reglas y Recibir Conexión

Tomemos como ejemplo la creación de reglas HTTP:

Algunas notas son las siguientes:

  1. El name y el flagFormat de la regla son únicos.
  2. FlagFormat usa sintaxis de expresión regular, y para diferentes protocolos, los campos que coinciden con flagFormat son diferentes; puede consultar las pistas correspondientes para obtener detalles al crear reglas.
  3. Las reglas con mayor rango (rank) tendrán efecto primero.
  4. Para diferentes reglas de protocolo, puede hacer diferentes respuestas personalizadas, y para algunos protocolos, se pueden usar variables de plantilla.
  5. Puede establecer la agrupación nombrada de expresiones regulares en flagFormat, y el resultado de la agrupación coincidente también se utilizará como variable de plantilla.

Como se muestra a continuación, creamos una regla que utiliza variables de plantilla integradas y variables de plantilla personalizadas del protocolo http, y la nombramos test_create_rule:

img.png

Luego realice una solicitud que cumpla con la regla y vea la respuesta.

img.png

La solicitud se registrará en la plataforma al mismo tiempo.

img.png

Notificación

Si desea recibir notificaciones de nuevas conexiones en su software de oficina, puede configurar la dirección del webhook del software correspondiente en el archivo de configuración y activar el interruptor Notice para la regla correspondiente. Actualmente solo se admite cuatro tipos de software: dingtalk, wechat, lark, slack. (El soporte para Discord y Telegram está en planes.)

Importar/Exportar Reglas

Si está migrando plataformas o depurando datos, puede ser una molestia recrear reglas. Por eso la plataforma soporta la importación y exportación de reglas.

El punto de entrada para esta función se encuentra en Configuración>REGLAS.

Las reglas se almacenan en formato yaml para importación y exportación, como el siguiente:

root@kitploit:~
http:
  - name: test_create_rule
    flag_format: (?P<what>\w+)\?
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "302"
    response_headers:
      Location: ${query.url}
    response_body: ${header.say} ${what}
  - name: other_rule
    flag_format: other
    rank: 1
    push_to_client: false
    notice: true
    response_status_code: "200"
    response_headers: { }
    response_body: ¡Hola Revsuit!
dns:
  ... ...

Uso Avanzado

Uso con Escáner

RevSuit fue separado de mi proyecto de escáner, por lo que su soporte nativo funciona con escáneres.

Desde la perspectiva de RevSuit, llamamos cliente al escáner.

Establecer Conexión

RevSuit utiliza Eventos enviados por el servidor HTTP (SSE) para establecer un canal de comunicación unidireccional con el cliente.

La API para el canal es: /revsuit/api/events?message. El cliente primero debe agregar el encabezado Token: your token al encabezado, y luego acceder a la API para establecer el canal. Cuando la plataforma recibe una nueva conexión, el flag capturado por la regla se pasará al cliente a través de este canal. img.png

Aquí hay un demo simple utilizando la biblioteca sse de Golang como ejemplo.

Múltiples Clientes

Como se muestra arriba, RevSuit admite múltiples clientes, y cada cliente en estado conectado recibe un push de flag, por lo que se puede soportar escaneo distribuido.

Si no desea que cada cliente reciba todos los push de flag, puede usar el encabezado de solicitud Flag-Filter al crear una conexión sse para establecer el formato (expresiones regulares) del flag que desea que ese cliente reciba:

img.png

Cola de Almacenamiento Temporal

RevSuit almacenará flag temporalmente en la cola cuando no haya conexión de cliente y lo enviará cuando el cliente se conecte, por lo que no tiene que preocuparse por perder la vulnerabilidad porque el cliente se desconecta. (Esto es especialmente útil para descubrir vulnerabilidades activadas por retardo.)

Uso de flagGroup

En un escenario real de escaneo de vulnerabilidades, puede enviar una gran cantidad de diferentes payloads para un único punto de vulnerabilidad, y todos pueden ser válidos, lo que puede resultar en que la plataforma de enlace inverso reciba muchas solicitudes, pero todas son causadas por la misma vulnerabilidad. Si no desea que el cliente reciba tantos flags para la misma vulnerabilidad, puede aprovechar la característica flagGroup del flagFormat de la regla.

FlagGroup es el contenido coincidente por el grupo anónimo en el campo flagFormat de la regla. La plataforma verificará el contenido coincidente en la agrupación, y el flag solo se enviará al cliente cuando el contenido (flagGroup) capturado aparezca por primera vez.

Por ejemplo, escaneo SSRF.

Primero cree una regla como la siguiente:

root@kitploit:~
http:
  - name: ssrf
    flag_format: (ssrf[a-z0-9]{6})[0-9]{1,3}
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "200"
    response_headers: { }
    response_body: "¡Aquí hay un SSRF!"

Supongamos que nuestro objetivo es https://www.testvuln.com?url=api.com&p=useless, y para SSRF tenemos 5 payloads. La solicitud final enviada por el escáner puede ser ['https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni1&p=useless','https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni2&p=useless', ... ,'https://www.testvuln.com?url=//revsuit.com/ssrfa98oni5&p=useless']. Todos pueden atacar con éxito.

Sin embargo, debido a que se usa agrupación anónima en el flagFormat de la regla, la plataforma consultará el flagGroup conectado, en este caso ssrfa98oni, y enviará flag al cliente solo en su primera aparición, por lo que el cliente solo recibirá un flag: ssrfa98oni1. Ya prueba que el parámetro url del objetivo es vulnerable.

Combinación de Múltiples Módulos

En escenarios reales de pruebas de penetración, ciertas tareas se pueden realizar de manera fácil y rápida combinando y emparejando varios módulos de RevSuit. A continuación se muestra un ejemplo de un XXE ciego en Java Web, que muestra cómo usar los módulos HTTP y FTP de RevSuit, combinados con variables de plantilla, para completar rápidamente un escaneo de puertos.

Primero cree una regla HTTP para devolver evil.dtd, personalice la respuesta al contenido de dtd para que vaya a conectarse al servicio FTP de RevSuit, y use variables de plantilla para pasar el Host y el Puerto a escanear a FTP a través del usuario y contraseña de FTP.

crear regla evil.dtd

Luego cree una regla FTP que reciba el Host y el puerto a escanear desde las variables de plantilla de usuario y contraseña, configurada para Pasv Address.

crear regla de escaneo FTP

Luego use BurpSuit para lanzar el escaneo, configurando los parámetros de host y puerto en la URL evil.dtd para establecer el objetivo del escaneo de puertos.

xxe

El efecto en ejecución es el siguiente:

ftp-scan

Esto se debe a que la conexión FTP se bloqueará si la Dirección Pasiva no es accesible, podemos determinar si el puerto está abierto o no basándonos en si la conexión sale normalmente. Para este ejemplo, detectamos con éxito que los puertos 8005 y 8080 están abiertos.

Más Usos

Se está preparando una wiki más detallada; puede explorar por su cuenta mientras tanto.

Comentarios, Sugerencias y Comunicación

Envíe un issue o contácteme a través de Weixin: TGk0bjA2Cg==

Agradecimientos

Referencias

Este proyecto se basa en el código de los siguientes proyectos destacados:

  • https://github.com/rmb122/rogue_mysql_server
  • https://github.com/256dpi/newdns
  • https://github.com/EmYiQing/JNDIScan

Especialmente

Gracias a mi amigo @E99p1ant por toda la ayuda y los consejos que recibí durante el desarrollo de este proyecto.

Licencia

@Licencia Apache 2.0

Descargar herramienta