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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Cheshire — Adaptix C2 서비스 플러그인으로, 운영자 UI에서 LitterBox 페이로드 분석을 구동합니다. | Kitploit
도구/GitHubGitHub/blacksnufkin/cheshire
Penetration Testing FrameworksStatic AnalysisDynamic Analysis (Sandboxing)Exploit FrameworksMalware AnalysisCommand and ControlRed Teaming
GitHubblacksnufkin/cheshire

Cheshire

Adaptix C2 서비스 플러그인으로, 운영자 UI에서 LitterBox 페이로드 분석을 구동합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Cheshire Logo

Cheshire

Adaptix용 사전 점검 페이로드 QA, LitterBox 기반.

Cheshire는 Adaptix 클라이언트를 LitterBox 샌드박스에 연결하는 Adaptix C2 서비스 플러그인입니다. 운영자는 Adaptix UI 안에서 임의의 바이너리를 선택하여 LitterBox의 전체 분석기 체인(정적 + 동적 + 도달 가능한 모든 EDR 프로필)을 통해 전달하고, Adaptix를 떠나지 않고도 판정 결과가 도출되는 것을 지켜볼 수 있습니다.

이름은 프로젝트 마스코트 계보를 따릅니다:

  • Adaptix → 카멜레온
  • LitterBox → 심술쟁이 고양이
  • 둘 사이를 잇는 다리 → Cheshire (히죽거리며 웃고, 나타났다가 사라지며, 앞길이 안전한지 알려주는 고양이).

기능

동작LitterBox 엔드포인트결과
페이로드 업로드POST /uploadmd5 + 파일 메타데이터
Run AllPOST /analyze/static/<md5> + /analyze/dynamic/<md5> + /analyze/edr/<profile>/<md5> (×N 프로필)을 병렬 고루틴으로 실행각각 완료되는 대로 Static, Dynamic, 모든 EDR 프로필 반영
정적 분석만/analyze/static/<md5>YARA / CheckPlz / Stringnalyzer 결과
동적 분석만/analyze/dynamic/<md5>YARA-mem / PE-Sieve / Moneta / Patriot / HSB / RedEdr 결과
EDR (다중)프로필별 /analyze/edr/<profile>/<md5> + /api/results/edr/<profile>/<md5>에 대한 Phase 2 폴링프로필별 알림 테이블 + 종합 알림 상세(이유, MITRE, API, 메모리 영역, 호출 스택, 최종 사용자 모듈, 프로세스, 부모 프로세스, EDR 응답)
정리DELETE /file/<md5>LitterBox에서 업로드 + 결과 폴더 + 샘플별 분석 디렉터리 제거
Fleet 프로브GET /health샌드박스 상태, 스캐너 인벤토리, EDR 에이전트 연결 가능 여부 — EDR 프로필 체크박스 구동

EDR Phase 2 폴링은 LitterBox의 적응형 주기를 사용합니다(기본 2초, 알림 수가 안정적이면 ×1.5 백오프로 최대 15초까지, 변화가 생기면 2초로 복귀). 각 폴링 틱마다 progress 이벤트가 클라이언트로 스트리밍되어 실시간 진행 표시줄에 알림 수가 실시간으로 증가하는 모습을 보여줍니다.


구조

root@kitploit:~
Cheshire/
├── README.md
├── setup_cheshire.sh                       deploy script
└── cheshire_service/
    ├── config.yaml                         service plugin manifest + litterbox_url
    ├── go.mod / go.sum
    ├── Makefile                            builds dist/service_cheshire.so
    ├── pl_main.go                          Go service plugin (HTTP client to LitterBox)
    └── ax_config.axs                       AXScript UI (the dashboard dialog)

Go 플러그인은 Adaptix의 TsServiceSendDataClient와 LitterBox의 REST API 간 무상태 HTTP 릴레이입니다. AXScript 파일은 모든 렌더링(판정 배너, 탐지 요약, 스캐너별 하위 탭, 클릭하여 상세 정보를 볼 수 있는 EDR 알림 테이블)을 담당합니다.


설정

1. LitterBox 실행

Cheshire를 사용하려면 실행 중인 LitterBox 인스턴스가 필요합니다(설치 방법은 LitterBox 저장소 참조). 연결 가능 여부를 확인합니다:

root@kitploit:~
curl http://<litterbox-host>:1337/health

2. Cheshire 구성

cheshire_service/config.yaml을 편집하고 litterbox_url을 설정합니다:

root@kitploit:~
extender_type: "service"
extender_file: "service_cheshire.so"
ax_file: "ax_config.axs"

service_name: "cheshire"
service_config: |
  litterbox_url: "http://192.168.88.128:1337"

litterbox_url이 없으면 플러그인은 로드되지만 모든 운영자 명령은 "Cheshire is not configured: set litterbox_url in service_config"를 반환합니다. 대체 기본값은 없습니다.

3. 배포

root@kitploit:~
bash setup_cheshire.sh --ax /path/to/AdaptixC2

이 스크립트는 다음을 수행합니다:

  1. 소스를 AdaptixC2/AdaptixServer/extenders/cheshire_service/에 복사합니다.
  2. Go 워크스페이스에 ./extenders/cheshire_service를 추가합니다.
  3. Makefile을 통해 service_cheshire.so를 빌드합니다.
  4. 빌드된 .so + config.yaml + ax_config.axs를 AdaptixC2/dist/extenders/cheshire_service/에 복사합니다.

4. Adaptix 서버에 등록

AdaptixC2/dist/profile.yaml의 Teamserver.extenders 아래에 한 줄을 추가합니다:

root@kitploit:~
extenders:
  - "extenders/cheshire_service/config.yaml"
  ...

5. 서버 재시작

root@kitploit:~
pkill -f adaptixserver
cd AdaptixC2/dist
./adaptixserver -profile profile.yaml

서버 로그에 [cheshire] Initialized — LitterBox at http://...가 표시되고, 이어서 [+] Service 'cheshire' loaded가 표시되어야 합니다.

Adaptix 클라이언트 메뉴 바에서 Cheshire → Test with Cheshire를 선택하면 대시보드가 열립니다.


대시보드

root@kitploit:~
┌─ Payload ───────────────────────────────────────────────────────────────┐
│  [Browse...]  /home/op/payloads/beacon.exe                              │
├─ EDR Profiles ──────────────────────────────────────────────────────────┤
│  ☑ Elastic Defend   ● reachable     elastic · WIN-VM01 · nightcity      │
│  ☐ Fibratus         ● not reachable fibratus                            │
├─ Dynamic Analysis Args ─────────────────────────────────────────────────┤
│  --quiet -p 4444                                                        │
├─────────────────────────────────────────────────────────────────────────┤
│  [Run All] | [Static] [Dynamic] [EDR] | [Cleanup]    Uploaded: ...      │
├─────────────────────────────────────────────────────────────────────────┤
│  🚫 DETECTED — 5 hit(s) across 2 Static, 1 Dynamic [CRITICAL]           │
│                                              ✓ Static  ✓ Dynamic  🔄 elastic (2) │
├─ Detection Summary ─────────────────────────────────────────────────────┤
│  Severity  | Scanner             | Detection         | Detail           │
│  CRITICAL  | Static · CheckPlz   | Trojan:Win64/...  | offset 0x20EF    │
│  CRITICAL  | Static · YARA       | mimikatz_strings  | matched $sek...  │
│  HIGH      | Dynamic · PE-Sieve  | 3 modifications   | 3 IAT hooks      │
│  ...                                                                    │
├─ Static | Dynamic | EDR ────────────────────────────────────────────────┤
│  per-scanner sub-tabs with stat strip + bordered finding cards          │
└─────────────────────────────────────────────────────────────────────────┘

판정 및 범위

  • 예약된 스캐너가 실행 중인 동안 ⏳ RUNNING — N hit(s) so far가 표시됩니다.
  • 예약된 모든 스캐너가 종료 상태에 도달하면 🚫 DETECTED — N hit(s) across X Static, Y Dynamic, Z EDR [maxSev]가 표시됩니다.
  • 어떤 스캐너에서도 실제 탐지가 없을 때만 ✓ CLEAN — 0 critical/high/medium detections가 표시됩니다. 정보성 신호(LOW/INFO)는 헤드라인이 아닌 별도로 표기됩니다.
  • 운영자가 Run All 대신 개별 스캐너를 실행하면 (Static only) / (Dynamic + EDR) 등이 추가됩니다 — 판정은 실제로 실행된 내용을 정확히 반영합니다.

탐지 요약

모든 스캐너의 모든 탐지를 하나의 정렬 가능한 테이블로 집계합니다. 행은 LitterBox가 반환하는 실제 JSON에서 추출됩니다(일반적인 요소 문자열이 아님):

  • 심각도 + 위협 이름 + 첫 번째 매치된 문자열 식별자가 포함된 YARA / YARA-mem 규칙
  • CheckPlz initial_threat + scan_results.detection_offset
  • Stringnalyzer 위험 카테고리 개수
  • PE-Sieve total_suspicious + 지표별 개수
  • Moneta 0이 아닌 total_* 변칙 개수(Private RWX → CRITICAL 등)
  • Patriot 발견 항목별 level + type + details의 첫 120자
  • HSB 발견 항목별 심각도 + 유형 + 스레드 ID
  • category === 'threat'로 필터링된 RedEdr Defender 이벤트
  • EDR 알림: 규칙 + 심각도 + 프로세스 + API 요약

심각도 내림차순, 그다음 스캐너 이름순으로 정렬됩니다.

자동 정리

대화상자가 닫히면 현재 샘플의 md5가 DELETE /file/<md5>를 통해 LitterBox에서 삭제됩니다. 작업 사이에 오래된 샘플이 축적되지 않습니다.


아키텍처

root@kitploit:~
Adaptix Client (Qt) ──┐
                      │ AXScript service_command("cheshire", "run_all", {...})
                      ▼
Adaptix Server  ──→  service_cheshire.so  ──HTTP──→  LitterBox  ──→  EDR VM
  │                                                       │              │
  │                    streams progress events        Static / Dynamic   │
  │                    + results back via             scanners run on    │
  │                    TsServiceSendDataClient        the LitterBox host │
  ▼                                                       │              │
Adaptix Client renders verdict, detection summary,        │     EDR profile
progress strip, per-scanner detail panels.                ▼     dispatches
                                                  /analyze/edr/<P>/<md5>
                                                  Phase 1: exec on EDR VM
                                                  Phase 2: poll Elastic
                                                          for alerts

Go 서비스 플러그인은 각 스캐너 디스패치를 자체 고루틴으로 실행하므로 Run All은 Static + Dynamic + (EDR 프로필당 하나의 POST)를 모두 병렬로 실행합니다. 각 고루틴이 progress 및 결과 이벤트를 다시 보내면 AXScript 대시보드가 실시간으로 업데이트됩니다.


라이선스

Cheshire는 LitterBox / Adaptix 규칙을 따릅니다. 자세한 내용은 상위 프로젝트 라이선스를 참조하십시오.

도구 다운로드