
CLI 및 MCP를 통한 인간과 에이전트 간의 협업형 애플리케이션 보안 테스트
코딩 에이전트를 위한 MCP 기반 애플리케이션 보안 테스트 도구.
스캐너가 아니라 협업 워크벤치입니다. 에이전트는 UI와 상태 기반 API를 다루는 데 어려움을 겪지만, 여러분은 둘 다 능숙합니다. Sectool을 사용하면 프록시를 통해 애플리케이션을 탐색하는 동시에, 에이전트가 여러분이 생성한 동일한 인증 트래픽을 분석하고 조작할 수 있습니다.
여러분은 인증과 UI 상호작용을 담당하고, 에이전트는 플로우를 조회하고, 요청을 변조하고, 반사(reflection)를 찾고, 대역 외 상호작용을 모니터링하며, 다른 변형들을 시도합니다. 두 능력을 결합하면 일상적인 작업이 더 쉬워지고, 숨겨진 지표를 놓칠 가능성이 줄어들며, 복잡한 테스트가 더 철저해집니다.
go install github.com/go-appsec/toolbox/sectool@latest
Go가 없으신가요? 최신 릴리스에서 사용 중인 플랫폼(Linux, macOS, Windows — amd64 및 arm64)용 바이너리를 다운로드하세요.
sectool mcp
이 명령은 포트 9119에서 MCP 서버를 시작하고, 포트 8080에서 내장 HTTP 프록시를 시작합니다.
브라우저의 프록시 설정을 127.0.0.1:8080(또는 --proxy-port로 지정한 포트)으로 지정하세요.
HTTPS 가로채기를 위해서는 ~/.sectool/ca.pem에 있는 CA 인증서를 설치하세요(첫 실행 시 자동 생성됨). 대부분의 브라우저는 인증서 설정을 통해 이를 수용하며, macOS에서는 시스템 키체인에 추가할 수도 있습니다.
Burp를 사용 중이신가요? 대신 Burp의 프록시 구성을 따르고, sectool mcp --burp로 sectool을 시작하세요.
Claude Code:
claude mcp add --transport http sectool http://127.0.0.1:9119/mcp
Codex (~/.codex/config.toml):
[mcp_servers.sectool]
url = "http://127.0.0.1:9119/mcp"
에이전트와 함께 테스트 계획을 수립하고 함께 실행하세요. 에이전트는 프록시 기록을 조회하고, 수정된 요청을 재전송하고, 엔드포인트를 크롤링하고, 대역 외 상호작용을 테스트할 수 있으며, 여러분은 인증이나 UI 상호작용 및 검토와 같은 브라우저 기반 작업을 처리합니다.
네이티브: 와이어 충실도(wire-fidelity)와 HTTP/1.1, HTTP/2, WebSocket 지원을 갖춘 내장 프록시. MITM 테스트에서 Burp만큼 강력하도록 설계되었습니다. 단일 바이너리가 MCP 서버, 프록시, CLI를 제공하며 — 완전히 자체 포함되어 헤드리스 환경에서도 사용할 수 있습니다.
Burp (선택 사항): 에이전트의 동작을 검토할 GUI를 선호하거나 이미 Burp를 실행 중이라면, BApp Store에서 MCP 확장을 설치하고 MCP 서버가 http://127.0.0.1:9876/에서 실행되도록 하세요.
| 옵션 | 설명 |
|---|---|
| (기본값) | 자동 감지: 먼저 Burp MCP를 시도하고, 실패하면 네이티브 프록시로 대체 |
--proxy-port 8080 | 지정한 포트에서 네이티브 프록시 강제 사용 |
--burp | Burp MCP 강제 사용 (사용 불가 시 실패) |
Sectool은 세션 시작 시 에이전트가 workflow 도구를 호출하면 적절한 워크플로를 자동으로 결정합니다. 워크플로를 미리 지정하면 이 단계를 건너뛰고 토큰을 절약할 수 있습니다:
sectool mcp # 기본값: 에이전트가 workflow 도구를 통해 작업 유형 선택
sectool mcp --workflow explore # 탐색 모드 미리 설정
sectool mcp --workflow test-report # 검증 모드 미리 설정
sectool mcp --workflow none # 워크플로 지침 없음
sectool mcp --workflow multi # 여러 에이전트가 서버 공유
| 모드 | 설명 |
|---|---|
| (기본값) | 에이전트가 workflow 도구를 호출하여 작업 유형을 선택하고 협업 지침을 받음 |
explore | 탐색적 보안 테스트; 모든 도구 사용 가능 |
test-report | 특정 취약점 보고서 검증; 크롤 도구 제외 |
none | 워크플로 지침 없음, 모든 도구 즉시 사용 가능 |
multi | 여러 사용자나 에이전트가 서버를 공유하는 경우; 한 에이전트가 다른 에이전트를 혼란스럽게 할 수 있는 기능 숨김 |
워크플로 지침은 에이전트가 모든 것을 자율적으로 처리하려 하거나 가치를 더하지 않고 여러분을 절차에 따라 안내하는 대신, 협업 테스트로 나아가도록 유도합니다. 에이전트 협업 개선에 대한 아이디어가 있다면 이슈를 열어주세요.
--notes 플래그는 플로우에 연결된 관찰 내용을 저장하기 위한 notes_save 및 notes_list 도구를 활성화합니다. 짧은 세션에서 컨텍스트 사용을 최소화하기 위해 기본적으로 비활성화되어 있습니다. 여러 발견 사항이나 대화 압축이 예상될 때 활성화하세요.
서버는 두 개의 엔드포인트를 노출합니다:
/mcp - Streamable HTTP (권장)/sse - SSE (레거시, 구형 클라이언트용)CLI는 에이전트와 상태를 공유하며, 검토, 재전송, 스크립팅을 위한 사람 친화적 인터페이스를 제공합니다. 모든 CLI 명령은 MCP 도구에 매핑되므로 에이전트가 동일한 상태를 공유합니다.
# 브라우징하는 동안 프록시가 캡처한 내용 검토
sectool proxy summary
sectool proxy list --host example.com
sectool proxy cookies --name session_id
# 앱을 크롤링하여 엔드포인트와 폼 발견
sectool crawl create --url https://example.com
sectool crawl summary <session_id>
# 캡처한 요청을 수정하여 재전송
sectool replay send --flow <flow_id> --set-header "X-Test: value"
# 대역 외 상호작용 테스트 설정 및 콜백 확인
sectool oast create
sectool oast poll <oast_id>
sectool oast get <event_id>
# 두 플로우 비교, 반사 탐지, JWT 검사
sectool diff <flow_a> <flow_b> --scope response
sectool reflected <flow_id>
sectool jwt <token>
# 플로우 내보내기, 오프라인에서 편집 후 재전송
sectool proxy export <flow_id>
# ... ./sectool-requests/<flow_id>/request.http 편집 ...
sectool replay send --bundle <flow_id>
자세한 옵션은 sectool <command> --help를 사용하세요.
sectool을 sidenuclei와 함께 사용하세요. 이는 여러분이 접촉하는 모든 엔드포인트에 대해 Nuclei를 실행하는 자사 사이드카입니다. --notes로 sectool을 시작하고 세션과 함께 sidenuclei를 붙이면, 실제 캡처된 요청을 사용하여 각 엔드포인트를 스캔하므로 실제 파라미터, 쿠키, 인증된 세션으로 테스트가 실행됩니다. 발견 사항은 이를 트리거한 플로우에 연결된 finding 노트로 저장되어, 여러분과 에이전트가 수동 테스트에 집중하는 동안 추가적인 커버리지를 제공합니다.
HTTP와 WebSocket 외에도, sectool은 사이드카 어댑터 모델을 통해 사용자 정의 및 바이너리 프로토콜(일반적으로 요청/응답)을 지원합니다. 사이드카 API를 사용하여 연결하고 통신하는 어댑터를 작성하세요. 사이드카 트래픽은 동일한 통합 플로우 타임라인에 들어가므로 flow_get, diff_flow, replay_send 및 기타 도구가 수정 없이 작동합니다. 어댑터는 JSON-RPC 2.0 API를 통해 어떤 언어로든 작성할 수 있으며, 등록, 규칙 캐싱, 플로우 방출을 처리하는 SDK 클라이언트를 사용하여 Go로도 작성할 수 있습니다. 사이드카 SDK 및 프로토콜에서 둘 다 문서화되어 있습니다.