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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CAPEv2 — 악성코드 설정 및 페이로드 추출 | Kitploit
도구/GitHubGitHub/kevoreilly/capev2
Dynamic Analysis (Sandboxing)Memory ForensicsVulnerability AnalysisNetwork ForensicsReverse EngineeringDebuggersForensicsMalware AnalysisLearning & EducationMalware Analysis #20위
3.4k5972219시간 38분 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubkevoreilly/capev2

CAPEv2

악성코드 설정 및 페이로드 추출

저장소 보기웹사이트

CAPE: 악성코드 설정 및 페이로드 추출 - 문서

CAPE는 악성코드 샌드박스입니다.

샌드박스는 악성 파일을 격리된 환경에서 실행하여 동적 행동을 계측하고 포렌식 아티팩트를 수집하는 데 사용됩니다.

CAPE는 Cuckoo v1에서 파생되었으며 Windows 플랫폼에서 다음과 같은 핵심 기능을 제공합니다:

  • API 후킹 기반 행동 계측
  • 실행 중 생성, 수정, 삭제된 파일 캡처
  • PCAP 형식의 네트워크 트래픽 캡처
  • 행동 및 네트워크 시그니처 기반 악성코드 분류
  • 악성코드 실행 중 데스크톱 스크린샷 캡처
  • 대상 시스템의 전체 메모리 덤프

CAPE는 Cuckoo의 전통적인 샌드박스 출력을 여러 주요 추가 기능으로 보완합니다:

  • 자동 동적 악성코드 언패킹
  • 언패킹된 페이로드의 YARA 시그니처 기반 악성코드 분류
  • 정적 및 동적 악성코드 설정 추출
  • YARA 시그니처를 통해 프로그래밍 가능한 자동 디버거, 다음을 허용:
    • 사용자 정의 언패킹/설정 추출기
    • 동적 안티-샌드박스 대응
    • 명령어 추적
  • 대화형 데스크톱

무료 데모 인스턴스가 온라인에 있어 누구나 사용할 수 있습니다:

https://capesandbox.com - 계정 활성화는 https://twitter.com/capesandbox를 방문하세요.

역사

Cuckoo 샌드박스는 2010년 Google Summer of Code 프로젝트로 Honeynet Project 내에서 시작되었습니다. 원래 Claudio Guarnieri가 설계 및 개발했으며 첫 번째 베타 릴리스는 2011년에 발표되었습니다. 2014년 1월, Cuckoo v1.0이 출시되었습니다.

2015년은 중요한 해로, Cuckoo 역사에서 중요한 포크가 일어났습니다. 원래 모니터 및 API 후킹 방법의 개발이 주요 Cuckoo 프로젝트에서 중단되었습니다. Jurriaan Bremer가 만든 Linux 도구 체인을 통해 컴파일된 restructuredText 기반 시그니처 형식을 사용하는 대체 모니터로 교체되었습니다.

같은 시기에 Brad 'Spender' Spengler가 만든 Cuckoo-modified라는 포크는 64비트 지원 및 특히 Microsoft Visual Studio 컴파일러 도입을 포함한 중요한 개선 사항으로 원래 모니터 개발을 계속했습니다.

같은 해에 Context Information Security의 Kevin O'Reilly가 CAPE라는 동적 명령줄 설정 및 페이로드 추출 도구 개발을 시작했습니다. 이름은 'Config And Payload Extraction'의 약어로 만들어졌으며, 원래 연구는 Microsoft의 Detours 라이브러리가 제공하는 API 후크를 사용하여 언패킹된 악성코드 페이로드 및 설정을 캡처하는 데 중점을 두었습니다. 그러나 API 후크만으로는 임의의 악성코드에서 페이로드나 설정을 언패킹할 수 있을 만큼 충분한 성능과 정밀성을 제공하지 못한다는 것이 분명해졌습니다.

이러한 이유로 Microsoft 디버깅 인터페이스 사용을 피하면서 최대한 은밀하게 악성코드를 정밀하게 제어하고 계측할 수 있는 새로운 디버거 개념에 대한 연구가 시작되었습니다. 이 디버거는 API 후크와 결합하여 매우 강력한 기능을 제공하는 개념 증명 Detours 기반 명령줄 도구에 통합되었습니다.

초기 작업에서 Cuckoo-modified의 API 후킹 엔진으로 Microsoft Detours를 대체할 수 있다는 것이 입증되면서 CAPE 샌드박스에 대한 아이디어가 탄생했습니다. 디버거, 자동 언패킹, YARA 기반 분류 및 통합 설정 추출이 추가되어 2016년 9월 44con에서 CAPE 샌드박스가 처음으로 공개되었습니다: CAPE 버전 1.

2018년 여름, 프로젝트는 오랜 Cuckoo 기여자인 Andriy 'doomedraven' Brukhovetskyy의 막대한 기여가 시작되는 행운을 맞았습니다. 2019년에 그는 CAPE를 Python 3로 포팅하는 거대한 작업을 시작했으며, 그해 10월 CAPEv2가 출시되었습니다.

CAPE는 악성코드 및 운영 체제 기능의 발전에 맞춰 지속적으로 개발 및 개선되었습니다. 2021년에는 동적 YARA 스캔을 통해 폭파 중 CAPE의 디버거를 프로그래밍할 수 있는 기능이 추가되어 안티-샌드박스 기술에 대한 동적 우회를 생성할 수 있게 되었습니다. Windows 10이 기본 운영 체제가 되었으며, 기타 주요 추가 사항으로는 대화형 데스크톱, AMSI(악성코드 방지 검사 인터페이스) 페이로드 캡처, Microsoft Nirvana 기반 'syscall hooking', 디버거 기반 직접/간접 시스템 호출 대응 등이 있습니다.

분류

image

CAPE에서는 세 가지 메커니즘을 통해 악성코드를 분류할 수 있습니다:

  • 언패킹된 페이로드의 YARA 스캔
  • 네트워크 캡처의 Suricata 스캔
  • API 후크 출력을 스캔하는 행동 시그니처

설정 추출

image

파싱은 CAPE 자체 프레임워크를 사용하여 수행할 수 있으며, 다음 프레임워크도 지원됩니다: RATDecoders, DC3-MWCP, MalDuck, 또는 MaCo

설정 파싱 프레임워크에 대한 특별 참고 사항:

  • 악성코드의 특성상 새 버전이 출시될 때마다 지속적으로 변경되므로 무언가가 손상될 수 있습니다!
  • CAPE의 프레임워크를 사용하는 것이 좋습니다. 이는 순수 Python이며 cape_utils.py에 의해 호출되는 진입점 def extract_config(data):을 가지며 복잡함이 없습니다.
    • 추가로, 추출기를 다른 프로젝트에서 재사용할 수 있습니다.

자동 언패킹

image

CAPE는 언패킹된 페이로드 캡처를 위해 여러 악성코드 기술 또는 행동을 활용합니다:

  • 프로세스 인젝션
    • 셸코드 인젝션
    • DLL 인젝션
    • 프로세스 할로잉
    • 프로세스 도플갱어링
  • 메모리에서 실행 가능한 모듈 또는 셸코드의 추출 또는 압축 해제

이러한 행동은 추가 분석을 위해 인젝션, 추출 또는 압축 해제된 페이로드의 캡처로 이어집니다. 또한 CAPE는 각 프로세스에 대한 프로세스 덤프를 자동으로 생성하거나, DLL의 경우 메모리에 있는 DLL의 모듈 이미지를 생성합니다. 이는 간단한 패커로 패킹된 샘플의 경우 모듈 이미지 덤프가 완전히 언패킹되는 경우가 많기 때문에 유용합니다.

CAPE의 기본 '수동적' 언패킹 메커니즘 외에도 '능동적' 언패킹을 활성화할 수 있습니다. 이는 중단점을 사용하여 새로 할당되거나 보호된 메모리 영역에 쓰기를 감지하여 실행 전에 가능한 한 빨리 언패킹된 페이로드를 캡처합니다. 이는 웹 제출 체크박스를 통해 또는 unpacker=2 옵션을 지정하여 활성화되며, 폭파 품질에 영향을 줄 수 있으므로 기본적으로 비활성화되어 있습니다.

CAPE는 YARA 시그니처를 통해 특정 패커를 언패킹하도록 프로그래밍할 수 있습니다. 예를 들어, UPX 유형의 패커는 매우 일반적이며, CAPE에서는 이러한 패커가 언패킹된 페이로드를 수동적으로 캡처하더라도 기본 캡처는 언패킹된 페이로드가 실행을 시작한 후에 이루어집니다. 따라서 사용자 정의 YARA 시그니처를 통해 UPX 파생 패커를 동적으로 감지하고 최종 패커 명령어에 중단점을 설정하면 실행이 시작되기 전에 원래 진입점(OEP)에서 페이로드를 캡처할 수 있습니다.

image

image

dump-on-api 옵션을 사용하면 웹 인터페이스에서 지정할 수 있는 특정 API 함수(예: dump-on-api=DnsQuery_A)를 호출할 때 모듈을 덤프할 수 있습니다.

디버거

디버거를 통해 CAPE는 원래 기능을 넘어 계속 발전할 수 있었으며, 이제 동적 안티-회피 우회 기능을 포함합니다. 최신 악성코드는 가상화를 위한 타이밍 트랩이나 API 후크 탐지 등을 사용하여 샌드박스 내에서 분석을 회피하려고 시도하는 것이 일반적이므로, CAPE는 Yara 시그니처 내에서 디버거 동작을 결합하여 회피성 악성코드가 폭파될 때 감지하고 제어 흐름을 조작하여 샘플이 완전히 폭파되도록 하거나 회피 동작을 건너뛰도록 하는 동적 대응을 개발할 수 있습니다.

image image

디버거에 대한 빠른 액세스는 제출 옵션 bp0에서 bp3까지 RVA 또는 VA 값을 받아 중단점을 설정하고, 그 후 count 및 depth 옵션(예: bp0=0x1234,depth=1,count=100)에 따라 짧은 명령어 추적이 출력됩니다. image

모듈 진입점에 중단점을 설정하려면 주소 대신 ep를 사용합니다(예: bp0=ep). 또는 break-on-return을 사용하면 후크된 API의 반환 주소에 중단점을 설정할 수 있습니다(예: break-on-return=NtGetContextThread). 선택적 base-on-api 매개변수를 사용하면 API 호출로 RVA 중단점의 이미지 기준을 설정할 수 있습니다(예: base-on-api=NtReadFile,bp0=0x2345).

image

action0 - action3 옵션을 사용하면 중단점이 적중될 때 메모리 영역 덤프(예: action0=dumpebx) 또는 실행 제어 흐름 변경(예: action1=skip)과 같은 작업을 수행할 수 있습니다. CAPE`s 문서에는 이러한 작업에 대한 추가 예제가 포함되어 있습니다.

capemon

CAPE 모니터의 코드가 포함된 저장소는 별도로 존재합니다.

업데이트 요약 변경 로그

커뮤니티 기여

CAPE 커뮤니티에서 개발한 수백 개의 시그니처가 포함된 커뮤니티 저장소가 있습니다. 모든 새로운 커뮤니티 기능은 해당 저장소로 푸시되어야 합니다. 이후 개발자가 유지 관리할 수 있고 의지가 있다면 핵심으로 이동할 수 있습니다.

더 많은 악성코드 계열에 대한 새로운 시그니처, 파서 또는 우회를 만드는 데 도움을 주어 이 프로젝트에 기여해 주세요. 현재 많은 작업이 진행 중이니 계속 지켜봐 주세요.

@D00m3dR4v3n이 단독으로 CAPE를 Python 3로 포팅한 것에 대해 큰 감사를 드립니다.

최적의 성능을 위한 설치 권장 사항 및 스크립트

  • Python3

    • agent.py는 python (3.7.2|3.8) x86에서 테스트되었습니다. VM 내부에서는 x86 python 버전을 사용해야 합니다!
    • 호스트는 python3 버전 3.10, 3.12에서 테스트되었지만, 새로운 버전도 작동해야 합니다.
  • 루터만 루트로 실행해야 하며, 나머지는 cape 사용자로 실행해야 합니다. 루트로 실행하면 권한이 엉망이 됩니다.

  1. 문서를 숙지하고 conf 폴더 내의 모든 설정 파일을 읽으세요!
  2. 최상의 호환성을 위해 Ubuntu 24.04 LTS에 설치하고 Windows 10 또는 Windows 11 23H2를 대상으로 사용할 것을 강력히 권장합니다.
  3. kvm-qemu.sh 및 cape2.sh는 ssh 연결이 끊어질 경우 OS 문제를 방지하기 위해 tmux 세션에서 실행해야 합니다.
  4. KVM이 하이퍼바이저로 권장됩니다.
    • <username>을 실제 패턴으로 바꾸세요.
    • 내부의 모든 <WOOT>를 바꿔야 합니다!
    • 읽으세요! 무엇을 하는지 이해해야 합니다! 스크립트 헤더에 구성이 있습니다.
    • sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.log
  5. CAPE 자체를 설치하려면 모든 최적화가 포함된 cape2.sh를 사용하십시오.
    • 무엇을 하는지 읽고 이해하세요! 이것은 모든 문제에 대한 만병통치약이 아닙니다! 스크립트 헤더에 구성이 있습니다.
    • sudo ./cape2.sh base 2>&1 | tee cape.log
  6. 모든 것을 설치한 후 두 설치 로그를 금과 같이 저장하세요!
  7. conf 폴더 내의 설정 파일을 수정하여 CAPE를 구성하세요.
  • 모든 스크립트에는 도움말 -h가 포함되어 있지만, 스크립트를 확인하여 __이해__하시기 바랍니다.

virt-manager로 VM을 만드는 방법: 구성은 문서 참조

  • step by step

가상 머신 핵심 종속성

  • choco.bat

업데이트 방법

  • CAPE: git pull
  • 커뮤니티: python3 utils/community.py -waf 이해했는지 확인하려면 먼저 -h를 확인하세요.

공개할 수 없는 많은 사용자 정의 작은 수정 사항이 있는 경우 업그레이드하는 방법?

With rebase

root@kitploit:~
git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# fix conflict (rebase) if needed
git reset HEAD~1

With merge

root@kitploit:~
# make sure kevoreilly repo has been added as a remote (only needs to be done once)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# make sure all your changes are commited on the branch which you will be merging
git commit -a -m '<your commit message goes here>'
# fetch changes from kevoreilly repo
git fetch kevoreilly
# merge kevoreilly master branch into your current branch
git merge kevoreilly/master
# fix merge conflicts if needed
# push to your repo if desired
git push

이 작업을 인용하는 방법

작업에서 CAPEv2를 사용하는 경우 GitHub 메뉴의 '이 저장소 인용'에 지정된 대로 인용해 주세요.

타사 종속성에 대한 특별 참고 사항:

  • 골칫거리가 되고 있습니다. 특히 각각 원하는 버전을 고정하는 pefile을 사용하는 경우가 그렇습니다.
  • 제안은 이를 클론/포크하고, 이미 설치되어 있으므로 pefile 종속성을 제거하는 것입니다. Voila, 더 이상 고통이 없습니다.

문서

  • ReadTheDocs
  • DeepWiki - AI 생성, 일부는 틀릴 수 있지만 일반적으로 상당히 정확합니다.
도구 다운로드
  • 구성 변경 사항을 적용하고 CAPE를 올바르게 실행하려면 모든 CAPE 서비스를 다시 시작하세요!
    • CAPE 서비스
      • cape.service
      • cape-processor.service
      • cape-web.service
      • cape-rooter.service
    • 서비스를 다시 시작하려면 systemctl restart <service_name> 사용
    • 서비스 로그를 보려면 journalctl -u <service_name> 사용
    • 문제를 디버깅하려면 관련 서비스를 중지하고 해당 서비스를 실행하는 명령을 수동으로 실행하여 더 많은 로그를 확인하세요. 도움말 메뉴는 -h를 확인하세요. 디버그 모드(-d)로 서비스를 실행하는 것도 도움이 될 수 있습니다.
  • 재부팅하고 즐기세요!