샌드 박스는 역동적 인 동작을 계기하고 법의학 인공물을 수집하는 동안 고립 된 환경에서 악성 파일을 실행하는 데 사용됩니다.
Cape는 Windows 플랫폼의 다음 핵심 기능을 특징으로하는 Cuckoo V1에서 파생되었습니다.
Cape는 Cuckoo의 전통적인 샌드 박스 출력을 몇 가지 주요 추가로 보완합니다.
누구나 사용할 수있는 무료 데모 인스턴스가 있습니다.
https://capesandbox.com- 계정 활성화는 https://twitter.com/capesandbox에 도달합니다
Cuckoo Sandbox는 2010 년 Honeynet Project에서 Google Summer of Code Project로 시작했습니다. Claudio Guarnieri가 원래 설계하고 개발 한 첫 번째 베타 릴리스는 2011 년에 출판되었습니다. 2014 년 1 월 Cuckoo V1.0이 출시되었습니다.
2015 년은 뻐꾸기의 역사에서 중요한 포크와 함께 중추적 인 해였습니다. 메인 뻐꾸기 프로젝트에서 원래 모니터 및 API 훅킹 방법의 개발이 중단되었습니다. Jurriaan Bremer가 만든 Linux 툴체인을 통해 컴파일 된 restructuredText 기반 서명 형식을 사용하여 대체 모니터로 대체되었습니다.
같은시기에 Cuckoo-Modified라는 포크는 Brad 'Spender'Spengler 'Spengler가 원래 모니터의 지속적인 개발에 의해 만들어졌으며 64 비트 지원 및 Microsoft의 Visual Studio Compiler를 중요하게 도입하는 등 크게 개선되었습니다.
같은 해에 Cape라는 동적 명령 줄 구성 및 페이로드 추출 도구의 개발은 Kevin O'Reilly의 Context Information Security에서 시작되었습니다. 이 이름은 '구성 및 페이로드 추출'의 약어로 만들어졌으며 Microsoft의 Detours Library가 제공 한 API 후크를 사용하여 포장되지 않은 맬웨어 페이로드 및 구성을 캡처하는 데 중점을 두었습니다. 그러나 API 후크만으로는 임의의 맬웨어에서 페이로드 또는 구성을 풀 수 있도록 불충분 한 전력과 정밀도를 제공한다는 것이 분명해졌습니다.
이러한 이유로 연구는 새로운 디버거 개념으로 시작하여 맬웨어가 정확하게 제어되고 계측 될 수 있도록 마이크로 소프트 디버깅 인터페이스의 사용을 피할 수 있도록 가능한 한 은밀한 상태가되기 위해 시작되었습니다. 이 디버거는 개념 증명 우두머리 기반 명령 줄 도구에 통합되어 API 후크와 결합하여 매우 강력한 기능을 제공했습니다.
초기 작업에서 Microsoft 우회를 Cuckoo Modified의 API 후크 엔진으로 대체 할 수 있음을 보여 주면 Cape Sandbox에 대한 아이디어가 탄생했습니다. 2016 년 9 월 44Con에서 Debugger, 자동 포장 풀기, Yara 기반 분류 및 통합 구성 추출을 추가하여 Cape Sandbox는 처음으로 공개적으로 출시되었습니다 : Cape 버전 1.
2018 년 여름 에이 프로젝트는 오랜 뻐꾸기 기고자 인 Andriy 'Doomedraven'Brukhovetskyy의 큰 기여의 시작을 보게되어 운이 좋았습니다. 2019 년에 그는 케이프를 Python 3으로 포팅하는 맘모스 과제를 시작했으며 그해 10 월 Capev2가 출시되었습니다.
케이프는 맬웨어 및 운영 체제 기능의 발전에 보조를 맞추기 위해 지속적으로 개발되고 개선되었습니다. 2021 년에는 동적 야라 스캔을 통한 폭발시 케이프 디버거를 프로그래밍하는 능력이 추가되어 반-샌드 샌드 박스 기술을 위해 동적 우회가 생성 될 수있었습니다. Windows 10은 기본 운영 체제가되었으며 다른 중요한 추가로는 대화식 데스크탑, AMSI (Malware Scan Interface) 페이로드 캡처, Microsoft Nirvana 및 Debugger 기반 직접/간접 Syscall 대책을 기반으로 한 'Syscall Hooking'이 포함됩니다.

맬웨어는 세 가지 메커니즘을 통해 케이프로 분류 할 수 있습니다.

구문 분석은 Cape의 자체 프레임 워크를 사용하여 수행 할 수 있습니다. 또는 다음 프레임 워크가 지원됩니다 : Ratdecoders, DC3-MWCP, Malduck 또는 MACO
def extract_config(data): cape_utils.py 및 0 합병증에 의해 호출됩니다.
Cape는 포장되지 않은 페이로드 캡처를 허용하기 위해 많은 맬웨어 기술 또는 동작을 활용합니다.
이러한 동작은 추가 분석을 위해 페이로드를 주입, 추출 또는 압축 압축시킵니다. 또한 Cape는 각 프로세스에 대한 프로세스 덤프 또는 DLL의 경우 메모리의 DLL의 모듈 이미지를 자동으로 생성합니다. 이것은 종종 모듈 이미지 덤프가 완전히 포장되지 않은 간단한 패커로 포장 된 샘플에 유용합니다.
케이프의 기본 '패시브'풀기 메커니즘 외에도, 실행 전에 가능한 한 빨리 포장되지 않은 페이로드를 캡처하기 위해 브레이크 포인트를 사용하여 새로 할당되거나 보호 된 메모리 영역에 쓰기를 감지하는 '활성'풀링을 활성화 할 수 있습니다. 이것은 웹 제출 Tickbox를 통해 또는 옵션 unpacker=2 지정하여 활성화되며 폭발 품질에 영향을 줄 수 있으므로 기본적으로 끊어집니다.
케이프는 Yara Signature를 통해 프로그래밍하여 특정 패커를 포장 풀 수 있습니다. 예를 들어, UPX 유형 패커는 매우 일반적이며 케이프에서는 포장되지 않은 페이로드가 수동적으로 캡처되지만 기본 캡처는 포장되지 않은 페이로드가 실행되기 시작한 후에 이루어집니다. 따라서 사용자 정의 Yara 서명을 통해 UPX 유래 패커를 동적으로 감지하고 최종 패커 명령어에서 중단 점을 설정하면 실행을 시작하기 전에 OEP (Original Entry Point)에서 페이로드를 캡처 할 수 있습니다.


dump-on-api 옵션을 사용하면 웹 인터페이스에 지정할 수있는 특정 API 함수 (예 : dump-on-api=DnsQuery_A )를 호출 할 때 모듈을 덤프 할 수 있습니다.
디버거는 케이프가 원래의 기능을 넘어 계속 발전 할 수있게 해주 었으며, 여기에는 동적 방사 우회가 포함됩니다. 예를 들어 가상화 또는 API 후크 감지에 타이밍 트랩을 사용하여 현대의 맬웨어는 일반적으로 샌드 박스 내에서 분석을 피하려고 시도하기 때문에 Cape는 YARA 시그니처 내에서 디버거 동작을 결합하여 동적 대응 조치를 결합하여 샘플을 완전히 폭발시키기 위해 컨트롤 흐름 조작을 수행하여 샘플을 완전히 해치거나 건너 뛰기 위해 컨트롤 플로우 조작을 수행 할 수 있도록합니다.


제출 옵션 bp0 ~ bp3 에서 RVA 또는 VA 값을 수락하여 중단 점을 설정하기 위해 디버거에 대한 빠른 액세스가 가능합니다. 여기서 간단한 명령 추적은 count 및 depth 옵션으로 관리됩니다 (예 : bp0=0x1234,depth=1,count=100 ). 
모듈 입력 지점에서 중단 점을 설정하려면 ep 주소 대신 사용됩니다 (예 : bp0=ep ). 또는 break-on-return 사용하면 후크 API의 리턴 주소 (예 : break-on-return=NtGetContextThread )에서 중단 점을 허용합니다. 옵션 base-on-api 매개 변수를 사용하면 RVA 브레이크 포인트에 대한 이미지 기반을 API Call (예 : base-on-api=NtReadFile,bp0=0x2345 )으로 설정할 수 있습니다.

옵션 action0 action3 덤프 메모리 영역 (예 : action0=dumpebx )과 같은 중단 점이 맞을 때 액션을 수행 할 수 있도록하거나 실행 제어 흐름 변경 (예 : action1=skip ). 케이프의 문서에는 그러한 행동의 추가 예가 포함되어 있습니다.
케이프 모니터 코드를 포함하는 저장소는 뚜렷합니다.
케이프 커뮤니티가 개발 한 수백 개의 서명을 포함하는 서명의 커뮤니티 저장소가 있습니다. 모든 새로운 커뮤니티 기능을 해당 리포지어로 밀어야합니다. 나중에 개발자가이를 유지할 수 있고 기꺼이 유지하면 핵심으로 옮길 수 있습니다.
추가 맬웨어 패밀리를위한 새로운 서명, 파서 또는 우회를 만들어이 프로젝트에 기여하십시오. 현재 작품에는 많은 것이 있으므로이 공간을보십시오.
한 손으로 케이프를 Python 3으로 포팅 해 주신 @d00m3dr4v3n에게 큰 감사를드립니다.
python3
루터만이 루트로, 나머지는 케이프 사용자로 실행해야합니다 . 루트로 실행하면 권한이 엉망이됩니다.
conf 폴더 내부의 모든 구성 파일을 읽으십시오 !kvm-qemu.sh 및 cape2.sh ssh 연결이 끊어지면 OS 문제를 방지하기 위해 tmux 세션에서 실행 해야합니다 .<username> 실제 패턴으로 바꾸십시오.<WOOT> 내부를 교체해야합니다!sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.logsudo ./cape2.sh base 2>&1 | tee cape.logconf 폴더 내부에서 파일을 구성하기 위해 모드를 수행하여 Cape를 구성하십시오.systemctl restart <service_name>journalctl -u <service_name> 사용하십시오-h 하십시오. 디버그 모드 ( -d )에서 서비스를 실행하는 것도 도움이 될 수 있습니다.-h 포함되어 있지만 스크립트를 확인하여 자신이 수행하는 작업을 이해하십시오 .git pullpython3 utils/community.py -waf -h 전에 참조하십시오. git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# fix conflict (rebase) if needed
git reset HEAD~1
# 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 의존성을 제거하십시오. Volia 더 이상 고통이 없습니다.