본문 바로가기

Program/토스뱅크 사이버보안 엔지니어 부트캠프(공격&방어 기술)

KAPE(Kroll Artifact Parser and Extractor)

1. KAPE(Kroll Artifact Parser and Extractor)

1.1 개요

KAPE를 이용하면 포렌식 아티팩트를 수집하고 분석하는 일련의 과정을 자동화할 수 있으며, 원하는 분석 행위만을 빠르게 수행할 수 있어 효율적이다. 특히 목적에 맞게 사용자가 커스텀하여 이용할 수 있다.

 

 

1.2 프로세스

https://www.kroll.com/en/services/cyber/incident-response-recovery/kroll-artifact-parser-and-extractor-kape

 

1.3 내용

 

 

 

 

2. 설치

2.1 사이트 접속 및 정보 입력

https://www.kroll.com/en/services/cyber/incident-response-recovery/kroll-artifact-parser-and-extractor-kape

 

 

2.2 메일 확인 및 다운로드 버튼 클릭

 

 

2.3 다운로드 파일 확인

파일/폴더명 설명
Documentation 사용 계약 조항, 매뉴얼이 저장된 텍스트 파일이 포함된 폴더
Modules 분석 방법을 지정하는 폴더, 모듈을 사전 정의한 .mkape 파일들 포함
Targets 수집 대상을 지정하는 폴더, 타겟을 사전 정의한 .tkape 파일들 포함
ChangeLog.txt 버전 업데이트 정보 파일
Get-KAPEUpdate.ps1 최신 버전으로 업데이트 할 수 있는 파워쉘 스크립트
gkape.exe GUI 버전 KAPE 프로그램
kape.exe CLI 버전 KAPE 프로그램, 관리자 권한으로 실행

 

 

Targets: 수집 대상을 지정하는 폴더, tkape라는 확장자 파일로 수집 대상을 지정할 수 있음

Modules: 분석 방법을 지정하는 폴더, mkape라는 확장자 파일을 통해 분석 도구와 커맨드를 지정할 수 있음

 

 

3. gkape.exe의 Target Opation 사용 방법

3.1 파일 실행 시 화면

 

 

3.2 Use Tartget Options 선택

 

1) Target 수집 설정

항목 설명 kape.exe 명령어 옵션
Use Target options Target 수집 기능 활성화  
Target source 수집 대상 소스 경로 (예: C: 드라이브, 이미지 마운트 경로) --tsource <PATH>
Target destination 수집 결과 저장 경로

1) Add %d: 날짜를 폴더명에 자동 추가
2) Add %m: 머신명(호스트명) 자동 추가
--tdest <PATH>

1) --tdest <PATH>%d
2) --tdest <PATH>%m
Flush 기존 tdest 디렉터리 삭제 후 재생성 --tflush 

 

2) Targets 목록

항목 설명 kape.exe 명령어 옵션
Selected 해당 Target 사용 여부 체크 --target <NAME>
Name Target 이름
Folder Target 파일이 위치한 분류 폴더  
Description 수집 대상 요약 설명  
검색 아이콘 Target 빠른 검색  

 

3) Targets 처리 옵션

항목 설명 kape.exe 명령어 옵션
Process VSCs VSS(Volume Shadow Copy) 포함 수집 --vss
Deduplicate SHA-1 기반 중복 제거

+ SHA-1 exclusions
SHA-1 해시 값을 포함하는 텍스트 파일이 주어지면, 해당 해시값과 일치하는 파일은 복사하지 않음
제외된 파일은 skiplog.csv, copylog.txt 파일에 기록
--tdd false (체크 해제 시)

--hex <PATH>
Container 수집 결과 저장 형식

1) None: 일반 디렉터리
2) VHDX / VHD: 가상 디스크 컨테이너
3) Zip: ZIP 파일

--<Container> <Base name>
Base name 컨테이너 또는 결과 파일 기본 이름
Zip container 컨테이너 자체를 ZIP으로 압축 --zv false (체크 해제 시)
Transfer 원격 전송 옵션 (환경별 사용)  

 

4) Target variables

항목 설명 kape.exe 명령어 옵션
Target variables .tkape 파일에서 변수 교체에 사용할 키:값 쌍의 목록을 지정
Target 내부에서 사용하는 변수 정의
--tvars <Key>:<Value>
Key / Value 키:값 쌍
Add 변수 추가

 

 

 

3.3 Excute! 버튼을 눌러 실행

1) 기다리기

 

2) cmd에서 kape.exe로 수행

 

3.4 출력 결과 확인

C:\lab\kape_log20251223T011144
│  2025-12-23T02_11_36_7660327_ConsoleLog.txt
│  2025-12-23T02_11_36_7660327_CopyLog.csv
│  
└─C
  └─ $MFT

 

 

 

 

4. gkape.exe의 Module Opation 사용 방법

4.1 Use Module Options 선택

 

1) Module 분석 설정

항목 설명 kape.exe 명령어 옵션
Use Module options Module 기반 파싱 기능 활성화  
Module source 분석 대상 입력 경로 --msource <PATH>
Module destination 분석 결과 저장 경로

1) Add %d: 날짜를 폴더명에 자동 추가
2) Add %m: 머신명(호스트명) 자동 추가
--mdest <PATH>


1) --mdest <PATH>%d
2) --mdest <PATH>%m
Flush 기존 mdest 삭제 후 재생성 --mflush
Zip 분석 결과 ZIP 압축 --mzip

 

2) Module 목록

항목 설명 kape.exe 명령어 옵션
Name Module 이름 (예: !EZParser) --module <NAME>
Category 분석 유형 분류  
Description 모듈 기능 설명  

 

3) Modules 처리 옵션

항목 설명 kape.exe 명령어 옵션
Export format 분석 결과 출력 형식 지정

1) csv 
2) json 
3) html
--mef <Export format>

1) --mef csv
2) --mef json
3) --mef html
Module variables 모듈 실행 시 전달할 변수 --mvar <KEY>:<VALUE>

 

 

4.2 실행

4.3 결과 확인

 

 

5. target

5.1 CompoundTargetTemplate.template 파일 분석

Description: Name of application/artifact here # Required
Author: Your name here # Required
Version: 1.0 # Required
Id: Unique GUID here # Required
RecreateDirectories: true # Required
Targets:
    -
        Name: CompoundTarget1 # Required
        Category: Category # Required
        Path: CompoundTarget1.tkape # Required
        Comments: "Comments go here" # Optional
    -
        Name: CompoundTarget2
        Category: Category
        Path: CompoundTarget2.tkape
    -
        Name: CompoundTarget3
        Category: Category
        Path: CompoundTarget3.tkape
    -
        Name: CompoundTarget4
        Category: Category
        Path: CompoundTarget4.tkape
    -
        Name: CompoundTarget5
        Category: Category
        Path: CompoundTarget5.tkape
    -
        Name: CompoundTarget6
        Category: Category
        Path: CompoundTarget6.tkape

# Documentation
# Please delete all Required/Optional comments above. N/A if no Documentation present. End with new line.

 

1) 상위 메타데이터

항목 필수 여부 설명 작성 가이드
Description Required Compound Target의 목적 설명 수집 목적을 한 문장으로 명확히 기술
Author Required Target 작성자 개인 이름 또는 팀/조직명
Version Required Target 버전 일반적으로 1.0 고정
Targets Required 포함할 하위 Target 목록 여러 개의 .tkape를 묶는 핵심 영역
Id Required Compound Target 식별자 실행 시 --target에 사용되는 이름 (고유해야 함)
RecreateDirectories Required 원본 디렉터리 구조 유지 여부 true 권장 (포렌식 무결성 유지 목적)

 

2) Targets 블록

항목 필수 여부 설명 해석
Name Required 하위 Target의 표시 이름 사람이 보기 위한 논리적 이름
Category Required 분류용 카테고리 IR / Execution / Registry 등 목적 기준 분류
Path Required 참조할 Target 파일 경로 동일 폴더 내 *.tkape 파일명
Comments Optional 설명 또는 메모 수집 범위, 주의사항, 설계 의도 기재

 

 

5.2 Target 파일 분석 - EventLogs

Description: Event logs
Author: Eric Zimmerman
Version: 1.0
Id: d95784d9-bd1c-472b-aeef-de5d9ecc7aaa
RecreateDirectories: true
Targets:
    -
        Name: Event logs XP
        Category: EventLogs
        Path: C:\Windows\System32\config\
        FileMask: '*.evt'
    -
        Name: Event logs Win7+
        Category: EventLogs
        Path: C:\Windows\System32\winevt\logs\
        FileMask: '*.evtx'
    -
        Name: Event logs Win7+
        Category: EventLogs
        Path: C:\Windows.old\Windows\System32\winevt\logs\
        FileMask: '*.evtx'

# Documentation
# https://www.youtube.com/watch?v=qjeA1a5n0LQ

 

1) 상위 메타데이터

항목 설명
Description Event logs Windows 이벤트 로그 수집용 Target
Author Eric Zimmerman KAPE 기본 Target 작성자
Version 1.0 변경 관리용 식별자
Id d95784d9-bd1c-472b-aeef-de5d9ecc7aaa GUI/CLI에서 사용하는 실제 Target 이름
RecreateDirectories true 원본 경로 보존 → 포렌식 무결성 유지

 

2) Targets 블록 - Event logs Win7+

항목 설명
Name Event logs Win7+ 이전 OS 이벤트 로그
Category EventLogs 이벤트 로그 분류
Path C:\Windows\System32\winevt\logs\ OS 업그레이드 이전 로그
FileMask *.evtx evtx 형식 로그

 

 

 

 

5.3 커스터마이징 테스트 (까마귀님)

1) 목적: $MFT와  $LogFile 동시에 수집

 

2) 작성

Description: MyFileSystem
Author: Present4n6
Version: 1.0
Id: 2b3d01e2-0000-0000-0000-6cb6e2069001
RecreateDirectories: True
Targets:
    -
        Name: $MFT
        Category: FileSystem
        Path: C:\
        Recursive: true
        FileMask: $MFT
        AlwaysAddToQueue: true

    -
        Name: $LogFile
        Category: FileSystem
        Path: C:\
        Recursive: true
        FileMask: $LogFile
        AlwaysAddToQueue: true

# Documentation
# present4n6.tistory.com

 

 

3) \KAPE\Targets\!Local에 .tkape 확장자로 저장

 

4) 실행

 

5) 결과 확인 (성공)

1231_myfilesystem_test
  │  2025-12-30T18_40_01_2579682_ConsoleLog.txt
  │  2025-12-30T18_40_01_2579682_CopyLog.csv
  │
  └─C
          $LogFile
          $MFT

 

 

 

5.4 주의사항

1) 들여쓰기를 할 때 Tab이 아니라 스페이스바로 간격을 맞춰주어야 KAPE가 인식함

2) Id 값은 임의로 지정한 고유한 값이면 됨

3) Github에 명시된 기존의 .tkape 파일이 아닌 사용자가 임의로 생성한 .tkape의 경우 !Local 폴더에 저장을 하도록 되어 있음

 

 

 

 

 


https://github.com/EricZimmerman/KapeFiles

https://www.kroll.com/en/services/cyber/incident-response-recovery/kroll-artifact-parser-and-extractor-kape

https://present4n6.tistory.com/124