Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CaptainHook — 通过 JDWP 和 Frida 追踪用户输入,以检测 Java 方法中的注入漏洞,识别潜在的命令注入和 SQL 注入点。 | Kitploit
工具/GitHubGitHub/synacktiv/captainhook
动态分析 (沙盒)漏洞分析代码分析调试器二进制分析
GitHubsynacktiv/captainhook

CaptainHook

通过 JDWP 和 Frida 追踪用户输入,以检测 Java 方法中的注入漏洞,识别潜在的命令注入和 SQL 注入点。

查看仓库
924年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Captain Hook

它是什么?

该工具的目的是追踪用户输入,以便发现进入敏感方法(如 java.lang.Runtime.exec、java.sql.Statement.executeQuery 等)的注入点,以及这些输入从注入点到方法调用之间发生的变异。

会生成“标记”(Marks),你必须在应用的每个可能的用户输入中插入这些标记。不同的标记将帮助你确定警报的来源。

受监控方法的列表可通过 CLI 中的 > list_breakpoints 命令查看。该列表可通过 > add_breakpoint 和 > delete_breakpoint 命令进行修改。

架构

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

如何启动 Captain Hook?

在被分析程序一侧

其 JVM 必须使用以下选项启动:

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

当然,监听端口(上例中的 1000)是任意的,可以根据需要更改。

如果可能,请在包含被分析程序的机器上安装 frida-server,并使用以下命令启动它: # frida-server -l 0.0.0.0:1500 &

监听端口/地址也可以根据你的需要更改。

在 Captain Hook 一侧

在位于 ./dbg 的 Dockerfile 末尾,设置“主机”(运行待分析程序的机器)IP 地址、JDWP 监听端口和 Frida 监听端口(如果 frida-server 不可用,则设为 0)。

然后运行 # make build,再运行 # make run-dbg。使用 # docker exec -it $(docker ps -lq) bash 将第二个终端附加到该容器。

在第一个终端中运行:cd debugger && make debug,然后在第二个终端中运行:cd frida && make instrument

你将通过第二个终端与 Captain Hook 交互,该终端会为你呈现一个 CLI。输入 > help 可查看所有可用命令的完整列表,这些命令均有文档说明。

实验性功能

“agent”文件夹以及 > set_object_inspection_strategy 命令纯粹是实验性的。

下载工具