Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/synacktiv/captainhook
Dynamic Analysis (Sandboxing)Vulnerability AnalysisCode AnalysisDebuggersBinary Analysis
GitHubsynacktiv/captainhook

CaptainHook

JDWP 및 Frida를 통해 Java 메서드에서 사용자 입력을 추적하여 잠재적인 커맨드 인젝션 및 SQL 인젝션 지점을 식별합니다.

저장소 보기
924년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Captain Hook

무엇인가요?

이 도구의 목적은 사용자 입력을 추적하여 민감한 메서드(java.lang.Runtime.exec, java.sql.Statement.executeQuery, ...)에 대한 주입 지점을 찾고, 주입 지점과 메서드 호출 사이에서 발생하는 입력의 변형(mutation)을 찾는 것입니다.

"마크(Mark)"가 생성되며, 이 마크는 앱의 모든 가능한 사용자 입력에 삽입되어야 합니다. 서로 다른 마크는 알림(alert)의 출처를 파악하는 데 도움이 됩니다.

모니터링되는 메서드 목록은 CLI에서 > list_breakpoints 명령어를 사용하여 확인할 수 있습니다. 이 목록은 > add_breakpoint 및 > delete_breakpoint 명령어로 수정할 수 있습니다.

아키텍처

root@kitploit:~
            Captain Hook Docker                                   Main machine
                container
 ┌────────────────────────────────────────┐             ┌────────────────────────────────────────┐
 │                                        │             │                                        │
 │ ┌─────────────────┐ ┌────────────────┐ │             │          ┌──────────────────────────┐  │
 │ │                 │ │                │ │             │          │                          │  │
 │ │ ┌────┐          │ │  Java Debugger │ │             │          │                          │  │
 │ │ │    │ Python   │ │                ├─┼─────────────┼──────────►                          │  │
 │ │ │    │    +     │ │                │ │             │          │      Program being       │  │
 │ │ │    │  Frida   │ │                │ │             │          │        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 끝부분에서 "host"(분석할 프로그램이 실행되는 머신) 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 명령어도 마찬가지입니다.

도구 다운로드