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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitLabGitLab/wattocyber/masq
ReconnaissanceStatic AnalysisVulnerability AnalysisAPI Security TestingConfiguration AuditingSecret DetectionSupply Chain SecurityAI SecurityLog Analysis
GitLabwattocyber/masq

masq

AI 에이전트 인프라를 위한 실시간 정찰 및 보안 상태 감사: MCP 구성, 세션 로그, API를 스캔하여 비밀 정보, 오염된 카탈로그, CoT 유출을 탐지합니다.

3일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기웹사이트

masq: 에이전트의 자리에 앉으세요

르네상스 가장무도회. 에이전트의 자리에 앉으세요.

masq

에이전트의 자리에 앉으세요.

모델과 같은 방식으로 MCP와 OpenAI 호환 프로토콜을 구사한 뒤, linpeas처럼 보고하는 CLI입니다. 발견 사항과 수정 조치를 함께 제공합니다. 익스플로잇 페이로드 없음. CoT 복호화 없음.

개요에이전트 인프라의 실시간 정찰: MCP 구성, 리스너, 세션 로그, 암호화된 chain-of-thought 에코, 인증 없는 API, 카탈로그 포이즈닝, 스킬 트리.
대상Hermes, Grok, Claude, Cursor, VS Code, Codex 및 로컬 모델 스택 운영자 중 에이전트가 볼 수 있는 것을 확인해야 하는 사람.
이 도구가 아닌 것제일브레이크 생성기가 아닙니다. arXiv:2608.09867 약한 모델 디코더가 아닙니다. 런타임 게이트웨이가 아닙니다.
상태베타. 오프라인 cargo test가 공개 게이트입니다. 라이브 --lab은 본인이 소유한 호스트용입니다.
라이선스MIT

pipeline license rust

왜 필요한가

정적 MCP 스캐너(Invariant mcp-scan, mcp-security-scan)는 스키마와 구성을 린트합니다. 상태 점검 도구는 initialize를 핑합니다. 빈틈은 바로 seat입니다:

  1. 암호화된 추론 블롭은 클라이언트로 에코되고 세션 로그에 저장됩니다. 이 블롭은 세션, 사용자, 더 약한 형제 모델 간에 이식 가능합니다(arXiv:2608.09867). 공개 블롭 315,000개를 스크래핑하여 자격 증명 182개를 복구했습니다. masq는 그러한 블롭을 탐지합니다. 복호화하지는 않습니다.
  2. 공개 MCP 서버 상당수가 인증이 없습니다. initialize를 할 수 있다면, 당신이 바로 에이전트입니다.
  3. 로컬 모델 포트(:11434, :8000)는 종종 bearer 없이 0.0.0.0에 바인딩됩니다.

우리가 다시 만들지 않고 그대로 활용하는 것들: 기존 카탈로그 탐지기 + pin/check, netstat, GET 전용 ureq, 발견 사항 분류 체계로서의 OWASP MCP Top 10. 우리는 mcp-scan이나 mcp-security-scan을 복제하지 않았습니다.

설치

root@kitploit:~
git clone https://gitlab.com/WattoCyber/masq.git
cd masq
cargo install --path .
# binary: masq
cargo test
# expect: exit 0

월드 스위트(픽스처, 로컬 목, 이 호스트 정찰에 대한 바이너리 기반):

root@kitploit:~
python scripts/world_suite.py
# field = ~/.grok/sessions  lab = allowlisted hosts  bench = frozen-corpus wall
python scripts/world_suite.py --lanes all

데스크톱에서 Kali 스타일 원격 박스로 배포:

root@kitploit:~
MASQ_REMOTE_HOST=user@host bash scripts/deploy_kali.sh
# on the box:
~/.local/bin/masq --plain
MASQ_LAB_HOSTS=... ~/.local/bin/masq --lab --plain

기본 사용 경로

root@kitploit:~
masq                         # live stream + posture report (includes skills)
masq --lab                   # same, plus allowlisted homelab hosts
masq tui                     # boxed TUI, stays until Ctrl+C
masq --plain                 # report only, no live stream
masq --json                  # machine report
masq recon                   # same dump, recon only
masq sniff ~/.grok/sessions  # CoT / secrets in session logs
masq sniff --timeline PATH   # file-order blob/secret/reason lines (no decrypt)
masq api                     # GET /v1/models on local (and --lab) ports
masq sit --url http://127.0.0.1:4443/mcp
masq chameleon --url http://127.0.0.1:4443/mcp -o /tmp/chameleon
masq chameleon --url ws://127.0.0.1:9000/mcp -o /tmp/chameleon
masq chameleon --url unix:///tmp/mcp.sock -o /tmp/chameleon
masq chameleon --token-file ~/.secrets/mcp.txt --url http://127.0.0.1:9/mcp -o /tmp/chameleon
masq chameleon -- python -m their_mcp -o /tmp/chameleon
# then: npx -y @copilotkit/aimock --config /tmp/chameleon/aimock.json
masq discover                # find VS Code / Cursor / Claude / Grok / Hermes MCP configs
masq proxy --upstream http://127.0.0.1:4443/mcp --block
masq sast ./server           # local sinks (semgrep if present)
masq classify --url http://127.0.0.1:4443/mcp --lab
masq overnight --lab --hours 6
masq map --from reports/overnight-YYYYMMDD/latest.json

# catalog
masq fixtures/t3_line_jump.json
masq fixtures/clean_calculator.json --trusted
masq pin fixtures/clean_calculator.json -k calc
masq check fixtures/clean_calculator.json -k calc
masq detectors

종료 코드: 0 깨끗함 · 2 발견 사항 ≥ --fail-on(기본값 high) · 1 오류.

TUI는 옵트인입니다(masq tui 또는 --tui). tty에서는 기본적으로 linpeas 라이브 스트림 후 보고서가 표시됩니다. Cron에서는 --plain / --no-color를 사용합니다.

명령어

별칭: doctor / audit → scan. chameleon → mimic. posture → seat.

모듈과 OWASP MCP Top 10

전송 방식과 인증

sit / chameleon이 구사하는 프로토콜:

  • Streamable HTTP (http://)
  • HTTP+SSE(GET 엔드포인트 이벤트 후 POST)
  • ws://
  • unix: 및 npipe:
  • stdio(--framing auto는 NDJSON을 시도한 후 Content-Length)

인증(보고서에 덤프되지 않음):

  • --token-file PATH(첫 번째 줄이 Authorization: Bearer …가 됨)
  • --token-env VAR
  • --header "Name: value"(반복 가능)

wss://는 내장되어 있지 않습니다. ws://로 Stunnel을 쓰거나 HTTP를 사용하세요. HTTP는 리다이렉트를 전혀 따르지 않습니다.

Stdio initialize는 sampling을 광고하지 않습니다. 서버의 sampling / elicitation을 플래그로 표시하세요. 문서 URL(model-catalog.json, /docs/)은 의도적으로 무시됩니다.

masq가 발견하는 호스트

$HOME / %USERPROFILE% 아래의 구성 + 스킬 루트:

VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Grok, Hermes, Codex, Continue, Gemini CLI, Amp, Kiro, OpenCode, Amazon Q, Antigravity, OpenClaw.

추가로 cwd의 .mcp.json 및 MASQ_EXTRA_CONFIG(OS 경로 목록).

Lab 허용 목록(--lab)

--lab은 /24 스캔이 아니라 허용 목록입니다. 운영자가 구성합니다. 루프백 외에는 아무것도 컴파일되어 있지 않습니다.

  • MASQ_LAB_HOSTS 환경 변수: 쉼표, 공백 또는 줄바꿈으로 구분된 host:port 또는 호스트 목록.
  • .masq/lab-hosts 파일: 줄마다 호스트 하나, #는 주석.

예:

root@kitploit:~
export MASQ_LAB_HOSTS="192.0.2.10,192.0.2.11"
masq --lab

MASQ_LAB_HOSTS는 API 프로브와 TUI fleet 롤업에 사용됩니다. MASQ_SIT_URLS(또는 --mcp-url)는 --lab과 함께 sit할 MCP URL을 제공합니다.

루프백이 아닌 sit --url에는 --lab과 허용 목록에 등록된 호스트가 필요합니다. 루프백에서 인증 없는 initialize는 High입니다. 박스 외부에서는 Critical입니다.

sit하지 않을 호스트를 proxy에 지정하지 마세요.

하드 한도

sniff 우선순위: chat_history.jsonl 먼저, 그다음 Hermes request_dump_*, 그다음 기타 jsonl. 전체 탐색은 끝까지 수행됩니다. 처음 300개의 WalkDir 적중 항목만 취하지 않습니다. 더 깊이 조사하려면 masq sniff <세션-디렉터리-하나>를 지정하세요.

Overnight

root@kitploit:~
masq overnight --lab --hours 6 --interval-mins 20
# writes <cwd>/reports/overnight-YYYYMMDD/{latest.json,latest.md,latest.txt,delta.txt}

구성을 변경하지 않습니다. 라이브 서버에 tools/call을 하지 않습니다. delta.txt는 baseline / no_change / CHANGE에 + 심각도 제목과 - 심각도 제목을 더한 형태입니다.

classify --llm과 TUI 트리아지 애드온만이 유일한 completions POST입니다(Grok /v1/chat/completions, 운영자 확인). 키가 없으면 로컬 수정 조치만 제공됩니다. 키는 XAI_API_KEY 또는 ~/.secrets/xai.txt에서 가져옵니다. 절대 덤프되지 않습니다.

아키텍처

root@kitploit:~
CLI (clap)  masq
  → seat | recon | sniff | api | sit | chameleon
  → discover | proxy | sast | classify | overnight | map
  → scan | multi | pin | check | detectors | tui
  → client (HTTP / SSE / ws / unix / npipe / stdio)
  → normalize (full-schema walk, caps)
  → detectors + sniff + recon + sit findings
  → report (text / JSON / Markdown) + optional TUI

라이브러리 크레이트: masq(scan_from_tools_list, scan_stdio, run_seat, PostureReport).

정직한 범위

~/.secrets를 덤프하지 마세요. Recon은 파일 수를 셉니다. 경로 + "loaded"만 표시합니다.

오프라인 테스트

root@kitploit:~
cargo test
cargo clippy --all-targets -- -D warnings

종료 코드 0을 기대합니다.

픽스처: T1 설명 포이즈닝, T3 라인 점프, T6 파라미터 이름, T8 ANSI, T13 중복 이름, 핀 러그풀, 다중 목록, tests/mock_mcp_server.py의 라이브 NDJSON 목.

시크릿은 git에 포함되지 않습니다(reports/, data/, .env, *.key, secrets/, .masq/).

라이선스

MIT. Copyright 2026 SamsonCyber.

도구 다운로드
Command설명
seat (default)전체 포스처: recon + sniff + api + skills + 선택적 sit.
recon구성 파일, 리스너, 섀도 URL, sudo argv, 고정되지 않은 npx/uvx.
sniff시크릿, 평문 추론, 암호화된 CoT 에코에 대한 세션 로그 검사.
sniff --timeline파일 순서대로 T0001 라인. 복호화 없음. 파일당 200개 이벤트로 제한.
api루프백에서 GET 전용 /v1/models(및 유사 엔드포인트); --lab은 허용 목록의 피어를 추가합니다.
sitMCP 구사: initialize, notifications/initialized, tools/list, prompts/list, resources/list. tools/call을 자체적으로 시작하지 않습니다.
chameleon / mimic라이브 또는 파일 카탈로그에 sit하여 catalog.json + aimock.json + calls.json을 작성합니다. 예제 tools/call 봉투는 aimock 전용입니다.
discover알려진 에이전트 MCP 구성 경로를 출력합니다. 프로세스를 생성하지 않습니다.
proxy에이전트의 JSON-RPC를 전달합니다. --block은 시크릿 형태의 tools/call 파라미터/결과를 거부합니다. 기본 리슨 주소는 127.0.0.1:9877입니다.
sast로컬 소스 싱크. 설치된 경우 semgrep을 사용합니다.
classify라이브 tools/list에 대한 로컬 IPI / 포이즈닝 검토. --llm은 Grok에 질문합니다(운영자 키).
overnight--hours 경과까지 seat 반복. 보고서를 작성합니다. 구성을 변경하지 않습니다.
map저장된 포스처 JSON에 대한 텍스트 공격 경로 쿼리. 다이어그램 없음.
scan / multi정적 카탈로그 린트(베어 .json 경로는 이 명령으로 리라이트됨).
pin / check러그풀 CI를 위한 콘텐츠 해시 핀 저장소(.masq/pins.json).
detectors카탈로그 규칙 팩을 출력합니다.
tui박스형 seat. Ctrl+C까지 유지됩니다.
Module담당
reconMCP01 시크릿 경로, MCP04 고정되지 않은 npx/uvx, MCP07/09 리스너 및 섀도 URL, MCP05 sudo argv
catalogMCP03 스키마 포이즈닝 / 섀도잉 / 러그풀
skillsSKILL.md(Hermes, Grok, Claude, Cursor, Codex, Gemini, Amp, Kiro, OpenCode, OpenClaw)에 동일한 카탈로그 탐지기 적용. Snyk 클라우드 없음.
sitMCP02 범위 확장, MCP03 라이브 tools/list, MCP07 인증 없는 initialize, 서버의 sampling/elicitation 광고, Streamable HTTP(2025-06-18) 이후 HTTP+SSE(2024-11-05), Origin DNS-리바인딩
sniffMCP01 + MCP10 + arXiv:2608.09867 암호화 CoT 에코(thinkingSignature 포함)
apiMCP07 인증 없는 /v1/models, MCP09 LAN 바인드
watch.masq/pins.json + 스킬에 대한 핀 diff. Overnight가 설정합니다. 프록시가 아닙니다.
fleet하나의 FLEET 섹션에 lab 허용 목록 롤업
map포스처 보고서에 대한 텍스트 경로 쿼리
한도값
tools/list 파일8 MiB
sniff 파일8 MiB(더 크면 처음 2 MiB만 샘플링)
루트당 sniff 파일 수300(우선순위 내 최신 mtime 기준)
파일당 타임라인 이벤트 수200, 초과 시 timeline truncated
타임라인 T-라인500(inspect와 collapse는 계속 실행)
스키마 탐색 깊이64
인벤토리당 도구 수5_000
HTTP 프로브GET 전용, API 2초 / sit 5초
sit 핸드셰이크타임아웃 + 종료
이 도구이 도구가 아닌 것
에이전트 클라이언트로 sit(initialize + list)라이브 서버에 tools/call 자체 발신
로그에서 암호화된 CoT 에코 탐지CoT 복호화 또는 약한 모델로의 재생
GET /v1/modelsPOST completions(옵트인 TUI 트리아지 / classify --llm 제외)
카탈로그에 대한 핀 해시 러그풀 감지서명된 PKI / 엔터프라이즈 핀 볼트
proxy --block에서 에이전트의 tools/call 전달전체 런타임 DLP 게이트웨이 / SaaS 컨트롤 플레인
로컬 스킬 트리 린트Snyk / 클라우드 SCA
검사기대 결과
masq fixtures/clean_calculator.json --trustedexit 0
masq fixtures/t3_line_jump.jsonexit 2
masq fixtures/t13_duplicate_names.jsonexit 2(도구 섀도잉)
masq sniff --timeline fixtures/(비-TTY / --json)플래그 사용 시 T0001만
masq chameleon fixtures/clean_calculator.json -o <tmpdir>catalog.json, aimock.json, calls.json
라이브 masq --no-color토큰 마스킹(…, 전체 sk- 아님)