Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
JS-Tap — JavaScript beacons 및 C2로, 웹앱 서버나 데스크탑 소프트웨어에서 XSS payload 또는 post exploitation implants로 사용되어 사용자를 모니터링하고 지속성을 유지하기 위한 도구입니다. Browser extension, electron app, node/bun app implants가 포함됩니다. | Kitploit
도구/GitHubGitHub/hoodoer/js-tap
Phishing ToolsReconnaissancePersistence MechanismsWeb Application ExploitationData ExfiltrationInformation GatheringPost-ExploitationCommand and ControlSocial EngineeringRed TeamingPayload Development
47457202개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubhoodoer/js-tap

JS-Tap

JavaScript beacons 및 C2로, 웹앱 서버나 데스크탑 소프트웨어에서 XSS payload 또는 post exploitation implants로 사용되어 사용자를 모니터링하고 지속성을 유지하기 위한 도구입니다. Browser extension, electron app, node/bun app implants가 포함됩니다.

저장소 보기

JS-Tap

v3.0.4

이 도구는 귀하가 공격할 권한이 있는 시스템에서만 사용하도록 의도되었으며 법적 및 교육적 목적으로만 사용해야 합니다. 이 도구를 불법적인 목적으로 사용하지 마십시오. 그렇지 않으면 제가 당신을 향해 매우 화를 낼 것입니다.

변경 로그

주요 변경 사항은 프로젝트 공지사항에 문서화되어 있습니다:
https://github.com/hoodoer/JS-Tap/discussions/categories/announcements

데모

JS-Tap에 대한 원본 블로그 게시물은 여기에서 읽을 수 있습니다:
https://trustedsec.com/blog/js-tap-weaponizing-javascript-for-red-teams

ShmooCon에서 JS-Tap 버전 1의 짧은 데모:
https://youtu.be/IDLMMiqV6ss?si=XunvnVarqSIjx_x0&t=19814

HackSpaceCon에서 JS-Tap 버전 2 데모 (C2 및 사후 침투 임플란트로 사용하는 방법 포함):
https://youtu.be/aWvNLJnqObQ?t=11719

자동 페이로드 생성기 데모 (가로챈 양식 제출과 JavaScript 네트워크 트래픽을 청사진으로 사용하여 맞춤 C2 페이로드 생성):
https://www.youtube.com/watch?v=cU915mxLfTo

CactusCon에서 v2 데모 (mimic 기능 포함):
https://youtu.be/O7-zxAmP13o?si=gchYwOJksutCCUPH

v3 비콘 베타 코드 데모:
https://youtu.be/-esrfSHqZeo

업그레이드 주의

데이터베이스 마이그레이션 스크립트를 계획하지 않으며, 버전 번호 변경 시 종종 데이터베이스 스키마 변경이 수반됩니다 (변경 로그 확인). 버전 업데이트 시 jsTap.db 데이터베이스를 삭제하는 것이 좋습니다. JS-Tap 서버에 사용자 정의 페이로드가 있는 경우 데이터베이스 파일을 삭제하기 전에 반드시 내보내십시오.

소개

JS-Tap은 레드 팀을 위한 JavaScript 기반 공격 툴킷입니다. 이는 XSS 또는 사후 침투 임플란트를 통해 웹 애플리케이션을 공격하는 일반적인 JavaScript 페이로드로 시작되었으며, 단일 C2 서버에 보고하는 브라우저 확장 프로그램 및 Electron 데스크톱 앱 임플란트를 포함하도록 성장했습니다.

이 페이로드는 대상 사용자가 공격 대상 애플리케이션에 인증되어 있을 필요가 없으며, 애플리케이션에 JavaScript를 주입할 방법을 찾는 것 외에 사전 지식이 필요하지 않습니다.

JS-Tap 페이로드는 애플리케이션 서버 자체를 공격하는 대신 애플리케이션의 클라이언트 측에 초점을 맞추고 클라이언트 측 코드를 집중적으로 계측합니다. C2 시스템은 맞춤 JavaScript 페이로드를 추가하여 JS-Tap 클라이언트에서 작업으로 실행할 수 있게 하여, 애플리케이션 서버를 직접 공격하는 수단을 제공합니다. 서버 공격으로의 전환을 더 빠르게 하기 위해, JS-Tap은 이제 맞춤 페이로드를 자동으로 생성하여 C2 시스템에 전달하는 "mimic" 기능을 포함합니다.

예제 DOM 비콘 페이로드는 payloads 디렉토리의 telemlib.js 파일에 포함되어 있습니다. 그러나 이 디렉토리의 모든 파일은 인증 없이 제공되므로, 동시에 다른 애플리케이션을 대상으로 여러 페이로드를 다른 구성으로 제공할 수 있습니다.

telemlib.js 파일을 원하는 파일 이름으로 복사하고 필요에 따라 구성을 수정하십시오. 이 파일은 난독화되지 않았습니다. 실제 작전에 사용하기 전에 엔드포인트 이름을 변경하고, 주석을 제거하며, 페이로드를 강력하게 난독화하는 것을 적극 고려하십시오. 기본적으로 애플리케이션은 다소 명백한 API 엔드포인트(예: /loot/screenshot)를 사용합니다. App Settings에서 트래픽 난독화를 켤 수 있습니다.

공개적으로 노출된 서버에서 사용하기 전에 아래 구성 섹션을 주의 깊게 검토하십시오.

아키텍처 개요

JS-Tap은 동일한 서버에 연결하는 5가지 비콘/에이전트 유형이 있습니다:

비콘 유형설명전달 방식
DOM 비콘 (telemlib.js)웹 페이지에 주입되는 JavaScript 페이로드입니다. DOM을 계측하고 사용자 활동, 스크린샷, 네트워크 호출을 캡처합니다.XSS 취약점을 이용하거나 대상 애플리케이션의 JavaScript 파일에 직접 추가 (사후 침투).
BEX 비콘브라우저 확장 프로그램 (Chrome MV3 / Firefox MV2)입니다. 모든 탐색 활동을 모니터링하고 쿠키 (httpOnly 포함), localStorage, sessionStorage, 요청 헤더를 캡처합니다. 명령에 따라 특정 도메인에 DOM 비콘을 주입할 수 있습니다.대상 브라우저에 설치 (사회 공학, 물리적 접근, 정책 푸시 등).
사이드카대상 OS에서 실행되는 네이티브 Go 바이너리입니다. 파일 시스템 탐색, 파일 읽기, 명령 실행을 제공합니다.네이티브 메시징을 통해 BEX 비콘과 함께 설치됩니다. 명령을 중계하려면 BEX 비콘이 필요합니다.
아톰 비콘Electron 데스크톱 애플리케이션을 위한 이중 계층 임플란트입니다. 메인 프로세스 에이전트 (Node.js 런타임) + 모든 앱 창에 렌더러 페이로드를 주입합니다. 브라우저 수준 데이터 수집과 호스트 수준 OS 접근을 결합합니다 — 별도의 바이너리가 필요 없습니다. 브라우저 프록시 모드를 지원합니다.atomize.py를 사용하여 대상 Electron 앱의 ASAR 아카이브 (또는 압축 해제된 앱 디렉토리)에 패치됩니다.
V8 비콘Node.js 및 Bun CLI 애플리케이션 (Gemini CLI, Claude Code 등)을 위한 JavaScript 에이전트입니다. 모든 HTTP/Fetch 네트워크 호출을 가로채고 키 입력을 캡처하며 파일 시스템 및 셸 접근을 제공합니다. 브라우저 프록시 모드를 지원합니다. 의존성이 없습니다.환경 변수 NODE_OPTIONS="--require" (Node.js) 또는 BUN_OPTIONS="--preload" (Bun)을 통해 주입됩니다. 앱 패치가 필요 없습니다.

다섯 가지 유형 모두 동일한 JS-Tap 서버 포털에 보고하며, 여기서 전리품을 보고 C2 명령을 발행합니다.

포털에는 두 가지 세션 복제 도구도 포함되어 있습니다:

도구기능
브라우저 프록시JS-Tap 서버에서 실행되는 MITM 프록시로, 운영자의 HTTP/HTTPS 트래픽을 WebSocket을 통해 피해자의 브라우저(Node.js 프로세스)로 라우팅합니다. 요청은 피해자의 네트워크 컨텍스트에서 가져오므로, 대상 사이트는 피해자의 IP와 TLS 지문을 보게 됩니다. 세션 티켓과 결합하여 피해자의 네트워크를 통한 인증 브라우징이 가능합니다. BEX, 아톰 및 V8 비콘에서 지원됩니다. 아래 브라우저 프록시를 참조하십시오.
JS-Tap ConductorBEX 비콘이 캡처한 세션 데이터를 ("JS-Tap 티켓"으로) 가져와 로컬에서 재생하는 독립형 Firefox 확장 프로그램입니다 — 쿠키 설정, 헤더 주입, 스토리지 채우기, 사용자 에이전트 스푸핑을 수행하여 운영자가 피해자처럼 탐색할 수 있게 합니다. 아래 JS-Tap 티켓 및 JS-Tap Conductor를 참조하십시오.

이들이 함께 작동하는 방식

  1. 독립형 DOM 비콘: DOM 비콘 페이로드(telemlib.js)는 독립적으로 작동합니다. XSS를 통해 주입하거나 대상 앱의 JS 파일에 임플란트합니다. 스스로 JS-Tap 서버에 연결합니다.

  2. 드로퍼로서의 BEX 비콘: BEX 비콘은 탐색을 모니터링하고 수동 정보 수집 (쿠키, localStorage, sessionStorage, 요청 헤더, 탐색)을 수행합니다. JS-Tap 포털에서 비콘에 명령하여 특정 도메인에 DOM 비콘을 주입할 수 있습니다. BEX 비콘에 의해 생성된 DOM 비콘은 확장 프로그램의 captureVisibleTab API를 통해 고품질 스크린샷을 얻습니다 ("BEX-Assist" 모드).

  3. OS 접근을 위한 사이드카: 설치된 경우, 사이드카 바이너리는 BEX 비콘에 기본 운영 체제에 대한 접근 권한을 부여합니다. 명령은 JS-Tap 포털에서 전송되고, 비콘의 암호화된 채널을 통해 네이티브 바이너리로 중계되며, 결과는 다시 전송됩니다. 이는 브라우저 확장 프로그램을 파일 시스템 접근 및 명령 실행을 위한 거점으로 변화시킵니다.

  4. 실시간 브라우징을 위한 브라우저 프록시: 운영자는 브라우저를 JS-Tap 프록시로 구성하고 모든 HTTP/HTTPS 트래픽이 실시간으로 피해자의 브라우저를 통해 라우팅됩니다. 프록시는 MITM TLS 종료를 수행하고 (자동 생성된 CA 사용) 운영자가 HTTPS 사이트를 탐색할 수 있게 합니다. 프록시는 "멍청한 파이프" 역할을 합니다 — 운영자의 브라우저가 보내는 것을 그대로 전달합니다. 인증 브라우징을 위해 세션 티켓과 결합하십시오: JS-Tap Conductor가 피해자의 쿠키, 헤더 및 사용자 에이전트를 운영자의 브라우저에 주입하고, MITM 프록시가 이를 비콘에 전달하며, 비콘은 피해자의 네트워크에서 가져옵니다. 이는 운영자에게 피해자의 IP 주소에서 인증된 세션을 제공합니다. BEX, 아톰 및 V8 비콘 모두 프록시 모드를 지원합니다.

  5. Electron 앱을 위한 아톰 비콘: atomize.py 패처는 Electron 앱의 ASAR 아카이브를 수정하여 아톰 비콘 에이전트를 주입합니다. 실행 시 에이전트는 JS-Tap 서버에 등록하고 암호화된 C2 통신을 시작하며, 앱이 생성하는 모든 BrowserWindow에 자동으로 렌더러 페이로드를 주입합니다. 메인 프로세스 에이전트는 네이티브 OS 접근 (파일 시스템, 명령 실행)을 제공하는 반면, 렌더러 페이로드는 DOM 수준 데이터 (키 입력, 입력, 양식, 쿠키, 스토리지, 네트워크 호출)를 수집합니다. Electron 메인 프로세스 내에서 전체 Node.js 접근 권한으로 실행되므로 별도의 사이드카 바이너리가 필요하지 않습니다 — 파일 탐색, 파일 읽기 및 셸 명령이 내장되어 있습니다.

  6. CLI 도구를 위한 V8 비콘: V8 비콘은 Node.js 및 Bun 기반 CLI 애플리케이션을 대상으로 합니다. 환경 변수(NODE_OPTIONS 또는 BUN_OPTIONS)를 설정하면 비콘이 앱 자체 코드보다 먼저 로드됩니다 — 대상 앱의 패치나 수정이 필요하지 않습니다. http.request, https.request, fetch 및 http2.connect를 몽키 패치하여 모든 네트워크 트래픽을 가로채고, 키 입력 캡처를 위해 process.stdin을 후킹하며, C2 채널을 통해 파일 탐색 및 셸 실행을 제공합니다. 자식 프로세스를 생성하는 CLI 도구 (예: Gemini CLI는 대화형 세션을 위해 자식을 생성)는 자동으로 처리됩니다 — 자식은 부모의 세션 키를 상속하고 포털에서 동일한 논리적 클라이언트를 공유합니다. 런타임 간 서브프로세스 필터링은 Bun 앱의 Node.js 유틸리티 서브프로세스가 별도의 클라이언트로 등록되는 것을 방지합니다.

  7. 앱별 공격을 위한 플러그인: Atom 비콘 및 V8 비콘 클라이언트는 런타임에 로드 가능한 플러그인을 지원합니다. 플러그인은 JS-Tap 포털에서 로드되는 JavaScript 모듈로, 특정 대상 애플리케이션(예: Mattermost 플러그인)에 대한 비콘의 기능을 확장합니다. 플러그인은 비콘의 Node.js API (fs, http, crypto, child_process), Electron API (Atom 비콘의 경우) 및 서버로 다시 데이터 유출 채널에 접근할 수 있습니다. 각 플러그인에는 대상 앱, 기능 및 운영자가 구성할 수 있는 설정을 선언하는 매니페스트(manifest.json)와 포털에 표시되는 선택적 UI 패널(ui.html)이 포함됩니다.

수집되는 데이터

DOM 비콘

  • 클라이언트 IP 주소, OS, 브라우저
  • 브라우저 핑거프린트 (선택적 구성)
  • 사용자 입력 (자격 증명 등)
  • 방문한 URL
  • 쿠키 (httponly 플래그가 설정되지 않은 것)
  • Local Storage
  • Session Storage
  • 방문한 페이지의 HTML 코드 (기능이 활성화된 경우)
  • 방문한 페이지의 스크린샷
  • 양식 제출 내용
  • XHR API 호출 내용 (monkeypatch 기능이 활성화된 경우)
    • 엔드포인트
    • 메서드 (GET, POST 등)
    • 설정된 헤더
    • Basic Auth
    • 응답 상태 코드
    • 요청 본문 및 응답 본문
  • Fetch API 호출 내용 (monkeypatch 기능이 활성화된 경우)
    • 엔드포인트
    • 메서드 (GET, POST 등)
    • 응답 상태 코드
    • 설정된 헤더
    • 요청 본문 및 응답 본문
  • 사용자 정의 유출 데이터
    • C2 시스템의 사용자 정의 페이로드에서 반환된 데이터

참고: XHR 및 Fetch API 호출 내용을 수신하는 기능은 트랩 모드에서 작동합니다. 임플란트 모드에서는 현재 Fetch API만 복사할 수 있습니다. 임플란트 모드에서는 양식 제출 가로채기가 때때로 누락될 수 있습니다.

BEX 비콘

  • 방문한 도메인 (타임스탬프 포함)
  • 방문한 도메인의 쿠키 (browser.cookies.getAll()을 통해 httpOnly 포함, 메타데이터: httpOnly, secure, sameSite, path, domain, expiration)
  • localStorage 및 sessionStorage
  • 모니터링된 도메인의 요청 헤더 (authorization, x-api-key, cookie, set-cookie)
  • 명령에 따라 DOM 비콘을 주입할 수 있음 (그러면 위의 모든 것을 수집)

사이드카 (BEX 비콘을 통해)

  • 디렉토리 목록 (파일 이름, 크기, 권한, 타임스탬프)
  • 파일 내용 (읽기당 최대 1MB, 오프셋/제한 지원)
  • 명령 실행 출력 (stdout, stderr, 종료 코드)

아톰 비콘 (Electron 앱)

메인 프로세스 에이전트 (Node.js 런타임):

  • session.cookies API를 통한 모든 도메인의 모든 쿠키 (httpOnly 포함, 메타데이터 포함)
  • webRequest.onBeforeSendHeaders를 통한 요청 헤더 (Authorization, x-api-key, Cookie, Set-Cookie)
  • webRequest.onHeadersReceived를 통한 응답 헤더 (Set-Cookie, WWW-Authenticate, x-csrf-token, Location)
  • Electron의 desktopCapturer API를 통한 애플리케이션 창 스크린샷 (GPU 합성 출력 캡처)
  • 호스트 정보 (호스트 이름, 플랫폼, 아키텍처, 사용자 이름, 홈 디렉토리)
  • 추적된 창 목록 (URL, 제목, 주입 상태)
  • 파일 시스템 접근 (디렉토리 목록, 파일 읽기) — 네이티브, 사이드카 불필요
  • 명령 실행 (stdout/stderr/종료 코드를 포함한 셸 명령) — 네이티브, 사이드카 불필요
도구 다운로드