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
CaptainHook — Rastrea las entradas del usuario para detectar vulnerabilidades de inyección en métodos Java mediante JDWP y Frida, identificando posibles puntos de inyección de comandos y SQL. | Kitploit
Herramientas/GitHubGitHub/synacktiv/captainhook
Análisis Dinámico (Sandboxing)Análisis de VulnerabilidadesAnálisis de CódigoDepuradoresAnálisis de Binarios
GitHubsynacktiv/captainhook

CaptainHook

Rastrea las entradas del usuario para detectar vulnerabilidades de inyección en métodos Java mediante JDWP y Frida, identificando posibles puntos de inyección de comandos y SQL.

Ver Repositorio
92hace 4 añosAú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

Captain Hook

¿Qué es?

El propósito de esta herramienta es rastrear las entradas del usuario, para encontrar puntos de inyección en métodos sensibles (como java.lang.Runtime.exec, java.sql.Statement.executeQuery, ...) así como las mutaciones en estas entradas entre el punto de inyección y la llamada al método.

Se generan "Marcas" que deben insertarse en cada posible entrada de usuario de tu aplicación. Las distintas marcas te ayudarán a determinar el origen de una alerta.

La lista de métodos monitorizados está disponible mediante el comando > list_breakpoints en la CLI. Esta lista puede modificarse con los comandos > add_breakpoint y > delete_breakpoint.

La arquitectura

root@kitploit:~
            Captain Hook Docker                                   Main machine
                container
 ┌────────────────────────────────────────┐             ┌────────────────────────────────────────┐
 │                                        │             │                                        │
 │ ┌─────────────────┐ ┌────────────────┐ │             │          ┌──────────────────────────┐  │
 │ │                 │ │                │ │             │          │                          │  │
 │ │ ┌────┐          │ │  Java Debugger │ │             │          │                          │  │
 │ │ │    │ Python   │ │                ├─┼─────────────┼──────────►                          │  │
 │ │ │    │    +     │ │                │ │             │          │      Program being       │  │
 │ │ │    │  Frida   │ │                │ │             │          │        analyzed          │  │
 │ │ │    │          │ │    JDWP     │ │             │          │                          │  │
 │ │ │    │          ◄─┤                │ │             │          │                          │  │
 │ │ │    │          │ │                │ │             │          │                          │  │
 │ │ │CLI │          ├─►                │ │             │          │                          │  │
 │ │ │    │          │ │                │ │             │          │                          │  │
 │ │ │    │          │ └────────────────┘ │             │          │                          │  │
 │ │ │    │          │                    │             │          │                          │  │
 │ │ │    │          │                    │             │ ┌──────┐ │                          │  │
 │ │ │    │          ├────────────────────┼─────────────┤►│frida-├─►                          │  │
 │ │ │    │          │                    │             │ │server◄─┤                          │  │
 │ │ └────┘          │                    │             │ │      │ └──────────────────────────┘  │
 │ │                 │◄───────────────────┼─────────────┼─┤      │                               │
 │ └─────────────────┘                    │             │ └──────┘                               │
 │                                        │             │                                        │
 └────────────────────────────────────────┘             └────────────────────────────────────────┘

¿Cómo iniciar Captain Hook?

En el lado del programa que se está analizando

Su JVM debe lanzarse con las siguientes opciones:

  • -Xdebug
  • -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n
  • -Xint

Por supuesto, el puerto de escucha (1000 en el ejemplo anterior) es arbitrario y se puede cambiar.

Si es posible, instala frida-server en la máquina que contiene el programa que se está analizando y ejecútalo con el siguiente comando: # frida-server -l 0.0.0.0:1500 &

El puerto/dirección de escucha también se puede cambiar según tus necesidades.

En el lado de Captain Hook

Al final del Dockerfile ubicado en ./dbg, establece la dirección IP del "host" (la máquina que ejecuta el programa a analizar), el puerto de escucha de JDWP y el puerto de escucha de Frida (0 si frida-server no está disponible).

Luego # make build, y después # make run-dbg. Adjunta una segunda terminal a este contenedor con # docker exec -it $(docker ps -lq) bash.

En la primera, ejecuta: cd debugger && make debug, luego en la segunda: cd frida && make instrument

Interactuarás con Captain Hook a través de la segunda terminal, que te presenta una CLI. Escribe > help para obtener una lista exhaustiva de los comandos disponibles, todos documentados.

Características experimentales

La carpeta "agent" es puramente experimental, al igual que el comando > set_object_inspection_strategy.

Descargar herramienta