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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
TATS — OAuth 2.0, OIDC 및 Microsoft Entra ID 토큰을 Burp, mitmproxy 또는 Chrome DevTools 캡처에서 분석하고 추적합니다. 대화형 대시보드를 통해 토큰 수명 주기를 시각화하고, 위험한 범위를 탐지하며, 재생을 위해 토큰을 내보냅니다. | Kitploit
도구/GitHubGitHub/icemoonhsv/tats
Web SecurityPenetration TestingIdentity & Access Management (IAM)AuthenticationLog Analysis
GitHubicemoonhsv/tats

TATS

OAuth 2.0, OIDC 및 Microsoft Entra ID 토큰을 Burp, mitmproxy 또는 Chrome DevTools 캡처에서 분석하고 추적합니다. 대화형 대시보드를 통해 토큰 수명 주기를 시각화하고, 위험한 범위를 탐지하며, 재생을 위해 토큰을 내보냅니다.

저장소 보기
393661개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

TATS — 토큰 분석 및 추적 시스템

캡처된 네트워크 트래픽에서 OAuth 2.0, OIDC 및 Microsoft Entra ID 토큰을 추적합니다. Burp Suite XML 내보내기, mitmproxy 플로우 파일 또는 실시간 Chrome DevTools Protocol 스트림을 단일 SQLite 데이터베이스로 수집한 다음, 토큰 필터링, 교환 흐름 추적, 위험한 범위 식별, 재생을 위한 토큰 내보내기, 그리고 토큰 수명 주기를 Mermaid 그래프로 시각화하는 대화형 웹 대시보드를 제공합니다.

상태: TATS는 개인/엔지니어링 사용에 안정적입니다. Microsoft 365 / Entra 에코시스템(FOCI, BroCI/NAA, ESTSAUTH 세션 쿠키, entrascopes.com 강화)에 최적화되어 있지만 표준적인 OAuth/OIDC 트래픽에서도 작동합니다.


존재 이유

Burp / mitmproxy를 통해 긴 Microsoft 365 또는 Azure 세션을 프록시하면 결과 캡처가 방대해지며 대부분의 도구는 다음 중 하나에 해당합니다:

  • 한 번에 하나의 토큰만 표시(Burp의 JWT 확장), 또는
  • Microsoft의 OAuth 방언(FOCI, BroCI, ESTSAUTH 쿠키)을 따르지 않음, 또는
  • Teams / Skype / SignalR이 토큰을 보내는 WebSocket 프레임을 추적하지 않음, 또는
  • 어떤 토큰이 지금도 유효한지 알려주지 않음.

이 도구는 관찰된 모든 액세스 / 리프레시 / ID 토큰을 추출하고, 소스 간에 동일한 토큰을 상호 연관시킬 수 있도록 지문을 생성하며, JWT 클레임을 디코딩하고, entrascopes.com에 대해 Microsoft 클라이언트 / 리소스 GUID를 확인하며, 전체 그림을 단일 대시보드로 렌더링합니다 — FOCI 교차 앱 교환과 BroCI 중첩 앱 토큰 발급을 추적하는 리프레시 토큰 체인 보기를 포함합니다.

이 프로젝트는 주로 연구 및 교육 목적으로 설계되었지만 일부 공격적 도구를 지원할 수 있는 명령 미리보기 및 토큰 내보내기 기능과 같은 옵션을 제공합니다.


기능

핵심

  • 세 가지 수집 소스를 하나의 도구에서:
    • ingest — Burp Suite "Save items" XML 내보내기
    • mitm — mitmproxy .mitm 플로우 파일(HTTP 및 WebSocket 프레임)
    • cdp — DevTools Protocol을 통한 Chrome / Edge 실시간 연결 (실시간, 프록시 CA 없이 TLS 복호화된 HTTP 및 WebSocket 프레임 캡처; 브라우저 수준 자동 연결을 통해 실행 중 열린 모든 기존 탭과 모든 새 탭을 추적)
  • 대시보드가 읽는 단일 표준 SQLite 저장소. 각 수집 패스는 --append로 실행하여 기존 데이터베이스에 병합할 수 있습니다; 토큰은 업서트되고(사용 횟수 + 관찰된 수명 누적), 이벤트와 교환은 추가되며, 행의 source_tag는 토큰을 본 모든 패스를 기록합니다.
  • 표준 라이브러리 HTTP 서버가 제공하는 실시간 웹 대시보드. 데이터베이스를 5초마다 폴링하고 기본 데이터가 변경되면 다시 렌더링합니다 — 실행 중인 CDP 캡처가 대시보드를 거의 실시간으로 업데이트합니다.
  • 핵심 경로에 독점 종속성 없음. Burp 수집, 데이터베이스 계층, 웹 UI 및 CDP 연결은 모두 표준 라이브러리만 사용합니다. mitmproxy 가져오기가 유일한 선택적 종속성입니다(pip install mitmproxy).

토큰 분류 및 강화

  • OAuth 본문 키(access_token, refresh_token, id_token) 및 쿠키 이름 휴리스틱이 토큰 유형을 결정합니다.
  • Microsoft 세션 쿠키(ESTSAUTH, ESTSAUTHPERSISTENT, ESTSAUTHLIGHT, SignInStateCookie)는 리프레시와 동등한 토큰으로 명시적으로 인식됩니다(그렇지 않으면 일반 "auth" 쿠키 힌트로 잘못 분류됨).
  • JWT 클레임(헤더 + 페이로드)이 디코딩되어 그대로 저장됩니다 — 절대 잘리지 않습니다.
  • Microsoft FOCI(클라이언트 ID 계열)는 토큰 엔드포인트 응답의 foci 필드를 통해 감지됩니다.
  • Microsoft BroCI / 중첩 앱 인증은 요청 본문의 brk_client_id, brk_redirect_uri 및 brk-<guid>:// 리디렉션 체계를 통해 감지됩니다.
  • 선택적 --enrich 플래그는 https://entrascopes.com/에서 firstpartyscopes.json 및 resources.json을 가져와 appid / azp / aud GUID를 클릭 가능한 링크가 있는 친숙한 이름으로 확인합니다.

대시보드 카드

  • 요약 타일 — 토큰 수, 호스트, 교환(FOCI / BroCI 콜아웃 포함) 및 강화 상태 표시기.
  • 사용자 — upn / preferred_username / unique_name / email / name별 토큰 버킷팅, sub@iss 또는 oid로 폴백하며 앱 전용 및 알 수 없는 ID 버킷을 별도로 표시합니다. 각 ID 행은 사용자가 ≥2개의 source_tag에 나타날 때 캡처 배지를 표시하고(교차 캡처 생존, 핵심 --append 연구 신호) first_seen → last_seen 범위와 해당 사용자의 모든 토큰을 시퀀스 다이어그램 탭에서 강조하는 타임라인 버튼을 표시합니다.
  • 토큰 유효성 — 현재 유효한 액세스 토큰과 만료된 액세스 토큰 수, 리프레시 토큰 만료 상태(불투명 토큰의 경우 "만료 알 수 없음") 및 30초 자동 새로고침이 있는 상위 3개 "다음 만료" 목록.
  • 클라이언트 — 교환에 나타난 모든 고유 앱(appid / azp / 폼 본문 client_id / brk_client_id / brk_nested_id)에 FOCI / 브로커 가능 / 브로커 / 중첩 배지 표시.
  • 대상(audience) — 관찰된 모든 aud 클레임을 가능한 경우 entrascopes 리소스 이름으로 확인.
  • 테넌트 — 토큰 / 사용자 / 앱 수가 있는 고유 tid 값.
  • 호스트 — 호스트별 이벤트, 고유 베어러 수신자, 고유 발급자 및 교환 수.
  • 권한 있는 범위 및 역할 — 각 토큰의 scp / scope / roles를 선별된 고영향 Microsoft Graph 권한 및 Azure 리소스 범위 목록과 대조.
  • 대상 / 호스트 불일치 — 토큰이 aud 클레임과 일치하지 않는 호스트에서 사용된 모든 (토큰, 호스트) 쌍을 플래그(자격 증명 유출 또는 오용 시사).
  • 인증 방법(amr) — pwd / mfa / pop / smartcard 분포.
  • 보안 기능 — 지속적 액세스 평가(xms_cc=CP1), 소유 증명 바인딩 (cnf 클레임, 대상 간 공유 kid 감지 포함), 단계 상승 인증 요구 사항 (acrs) 및 acr 인증 컨텍스트 수준을 플래그합니다. 각 행은 클릭 가능하며 해당 마커를 가진 토큰만 표시하도록 토큰 탭을 필터링합니다.
  • 리프레시 토큰 체인 — 교환 엣지를 탐색하여 회전 계보, 가장 긴 체인 길이 및 유휴 리프레시 토큰을 식별합니다. 각 체인은 Δ 범위 열(홉 간 추가 / 제거된 범위, 호버 시 전체 홉별 차이 표시)을 표시하고 추가된 범위가 권한 있는 범위 워치리스트와 일치하는 체인에 ⚠ priv 배지를 플래그합니다 — FOCI / BroCI 스타일 권한 확장 연구 신호.
  • 소스 — 각 수집 패스에서 온 행 수를 확인할 수 있는 source_tag별 토큰 수.

토큰 / 교환 탭

  • 열 헤더를 클릭하여 정렬.
  • 다중 선택 체크박스가 도구 모음을 구동:
    • 그래프에서 강조 — 선택한 노드에 노란색 강조.
    • 그래프에서 격리 — 선택한 토큰과 교환하는 토큰만 표시하도록 다이어그램 다시 그리기.
    • 시퀀스에서 표시 — 선택한 토큰에 대한 집중 시퀀스 다이어그램.
  • 행을 클릭하면 전체 JWT 헤더 + 페이로드(원시 JSON), 모든 이벤트, 관련 교환, 재생 준비 완료 내보내기 버튼(원시 / Bearer / curl / JSON / roadtx 토큰 캐시) 및 roadtx describe, roadtx auth, curl, Python requests, PowerShell Invoke-RestMethod용 복사-붙여넣기 스니펫이 있는 명령 미리보기 블록이 포함된 인라인 패널이 확장됩니다.
  • 필터: 유형 칩(액세스 / 리프레시 / ID / 알 수 없음), 형식 칩 (jwt / 불투명), 사용됨 / 사용 안 됨 드롭다운, 유효성 드롭다운 (모두 / 유효 / 만료 / 만료 알 수 없음), FOCI 전용, BroCI 전용, 앱 일치 있음, 리소스 일치 있음, 그리고 fp / 샘플 / 클레임 / 호스트 / 앱 / 리소스 / source_tag / 사용자에 대한 자유 텍스트 검색.
  • 현재 필터링 + 정렬된 행의 CSV / JSON 내보내기.
  • URL 해시 영속성 — 활성 탭과 모든 필터 상태가 URL 해시에 직렬화되어 특정 필터링된 보기에 대한 링크를 공유할 수 있습니다.

WebSocket 지원

  • mitmproxy 및 CDP 캡처는 모든 WebSocket 텍스트 / 바이너리 프레임 페이로드를 보존합니다. 프레임 내용은 HTTP 본문을 처리하는 것과 동일한 JSON / 폼 / 원시 JWT 워커로 토큰을 검색합니다.
  • 프레임에서 발견된 토큰은 역할 ws-frame-sent / ws-frame-received, 소스 ws[body_json[<key>]] 및 하나의 WebSocket 연결 내의 모든 프레임을 그룹화하는 ws_session_id로 이벤트를 생성합니다.
  • 핸드셰이크는 일반 HTTP 이벤트로 캡처되어 업그레이드에 전달된 쿠키 / 베어러 토큰도 추적됩니다.

개인정보 보호

  • 데이터베이스는 SHA-256 지문(처음 12자리 16진수)과 관찰된 모든 토큰의 12자리 접두사를 저장합니다. 전체 토큰 문자열은 입력 파일을 벗어나지 않습니다.

  • 디코딩된 JWT 클레임 내용(헤더 + 페이로드, oid, sub, upn, email, tid, 범위 목록 등 포함)은 분석의 핵심이므로 기본적으로 그대로 저장됩니다. JWT가 있을 때마다 데이터베이스와 공유된 대시보드 URL을 민감한 것으로 취급하세요.

  • --redact-claims(ingest, mitm, cdp에서 사용 가능)는 나열된 클레임 값을 데이터베이스에 저장되기 전에 안정적인 해시 자리 표시자로 대체합니다. 기본 필드 목록은 sub, oid, upn, email, name, unique_name, preferred_username, emails, mail, ipaddr, given_name, family_name을 포함합니다. 기본값을 재정의하려면 명시적인 쉼표로 구분된 목록(예: --redact-claims sub,upn,oid)을 전달하세요. 동일한 입력은 항상 동일한 자리 표시자로 매핑되므로 사용자를 공개하지 않고도 대시보드의 사용자 / 테넌트 그룹화가 계속 작동합니다.

  • --store-tokens(ingest, mitm, cdp에서 사용 가능, 기본적으로 꺼짐)은 전체 토큰 문자열을 데이터베이스에 기록하여 대시보드가 다음을 제공할 수 있게 합니다:

    • 원시 복사 / Bearer 복사 / curl 복사 작업.
    • 토큰 JSON 다운로드(원시 + 클레임 + 관찰된 이벤트).
    • roadtools 토큰 캐시로 복사 / 다운로드(파일을 .roadtools_auth에 넣으면 모든 roadtx 하위 명령이 이를 인식).
    • 토큰의 실제 tid, appid 및 aud 클레임을 사용하여 가장 일반적인 재생 호출 — roadtx describe, roadtx auth, curl, Python requests, PowerShell Invoke-RestMethod —을 미리 채우는 토큰별 명령 미리보기 블록.
    • 다운스트림 도구를 위해 하나의 JSON 번들로 최대 200개 토큰(원시, 클레임, 이벤트, 교환)을 반환하는 /api/export?fps=....

    이 기능을 활성화하면 데이터베이스가 일괄 자격 증명이 됩니다 — 캡처된 세션을 재생하는 데 필요한 모든 바이트가 포함됩니다. --redact-claims와 결합하여 디코딩된 JWT 보기를 정리할 수 있지만 원시 토큰에는 여전히 수정되지 않은 클레임이 인코딩되어 있다는 점을 인지하세요. 플래그가 꺼져 있을 때 대시보드의 명령 미리보기 블록은 여전히 렌더링되며 <TOKEN>을 자리 표시자로 사용하여 구문 참조로 작동합니다; 내보내기 버튼은 재수집을 위한 힌트를 렌더링합니다.


설치

요구 사항

  • Python 3.10+ (match 문 호환 유형 구문 및 최신 dataclasses 사용). 3.12에서 테스트됨.
  • 빌드 단계 없음. 저장소를 클론하고 python -m tats를 직접 실행하세요.

선택적 종속성

필요설치
mitm 하위 명령pip install mitmproxy
Chrome / Edge 실시간 캡처없음 — 표준 라이브러리 WebSocket 클라이언트 사용
--enrich (entrascopes.com)없음 — urllib.request 사용

빠른 설치

체크아웃에서 실행(설치 없음):```bash git clone tats cd tats python -m tats --help

대시보드의 HTML / CSS / JS는 `tats/static/`에 있으며
첫 번째 import 시 로드되므로 빌드 단계가 필요하지 않습니다. 체크아웃 디렉토리에서 모듈을 직접 실행하기만 하면 됩니다.

**패키지로 설치(`tats` 콘솔 스크립트 제공):**```bash
pip install .                # core only
pip install .[mitm]          # + mitmproxy flow file support
pip install .[test]          # + pytest for the test suite
pip install .[all]           # everything

설치 후에는 짧은 이름으로 도구를 호출할 수 있습니다:```bash tats ingest engagement.xml -o tokens.db --enrich tats serve tokens.db

Burp / CDP 경로만 필요하다면 이 파일은 Python 표준 라이브러리만으로 완전히 자급자족하므로
별도의 설치나 추가 기능이 필요하지 않습니다.

---

## 빠른 시작
도구 다운로드