KAPE (Kroll Artifact Parser And Extractor) - (5) mkape 구조의 이해와 활용
DFIR Programs/KAPE

KAPE (Kroll Artifact Parser And Extractor) - (5) mkape 구조의 이해와 활용

※ 본 포스팅은 PLAINBIT의 KAPE 문서, KAPE 공식 문서를 참고하여 작성하였습니다.

 

tkape 구조의 이해와 활용에 이어서 이번에는 mkape의 구조에 대해 알아보고 커스터마이징을 하는 방법에 대해 포스팅해보겠습니다.

 


 

10. .mkape

 

KAPE\Modules\

 

KAPE 설치 경로 폴더에서 Modules 폴더의 내부를 보면 위와 같은 폴더와 파일들이 있는 것을 확인할 수 있습니다.

Module의 항목 별로 폴더가 구성되어 있으며 폴더에 진입하면 .mkape 파일들을 확인할 수 있습니다.

bin 폴더에는 모듈에 사용될 실행 프로그램들이 저장되어 있습니다.

모듈은 특정 유형의 파일을 찾는다는 점에서 Target과 유사한 방식으로 작동하지만, 다른 곳에 복사하는 것은 아닙니다. 모듈의 작업은 Target에 의해 복사된 폴더 혹은 로컬 폴더를 대상으로 외부의 프로그램을 실행하여 CSV 또는 텍스트 형식 등으로 결과물을 생성하는 것입니다.

 

 

KAPE\Modules\Windows\Windows_IPConfig.mkape

 

위 파일은 네트워크 정보를 추출하기 위해 사용되는 Windows_IPConfig.mkape 파일의 내용입니다.

해석해보자면 System32 폴더 내의 ipconfig.exe를 실행시키고 인자 값으로 /all 을 줘서 ipconfig.txt 파일로 결과를 저장한다는 의미입니다.

다른 .mkape 파일들도 위와 비슷한 구조를 가지고 있으며 특정한 형태를 띄고 있는 것을 알 수 있습니다.

.mkape에 포함될 수 있는 필드에는 여러가지가 있는데 각 필드들은 다음과 같은 의미를 가지고 있습니다.

 

항목 설명 필수 여부
Description 모듈의 목적 및 어떤 종류의 파일을 처리할 것인지 기술 Y
Category 이 모듈이 속한 카테고리, ex) Registry, FileDownload 등 Y
Author 파일 작성자 (Name or E-mail) Y
Version 파일 버전, 대상이 추가될 경우 버전 또한 증가 Y
Id 이미 처리된 대상을 추적하는데 사용되는 GUID Y
ExportFormat 주어진 프로그램이 다른 형식으로 결과를 내보낼 수 있는 경우 사용 Y
WaitTimeout KAPE가 모듈이 완료될 때까지 기다려야하는 시간(분), 초과 시 대기를 중지하고 계속 진행 N
FileMask FileMask가 설정된 경우 해당 파일에 대한 정보를 KAPE에게 알립니다 N
Processors 사용 가능한 프로세서 목록 Y
Executable 실행할 프로그램의 이름
(KAPE\Modules\bin\ 을 기준 경로 혹은 프로그램 절대경로를 입력,
32bit 프로그램 사용 시 파일명을 _x86 으로 끝내야 함)
Y
CommandLine 실행 파일에 전달할 매개변수 Y
ExportFormat 프로세서의 출력 형식 Y
ExportFile 결과 파일의 이름을 지정 N
Append False인 경우, 새로운 파일을 생성합니다.
True인 경우, 결과물에 추가하여 저장합니다.
N

 

CommandLine에는 KAPE에서 제공해주는 변수를 사용할 수 있으며 그 값은 다음 표와 같습니다.

 

변수명 목적 비고
%sourceDriveLetter% Module Source의 드라이브 문자 -
%sourceDirectory% 모든 파일을 찾을 수 있는 디렉토리의 전체 경로 여러 종류의 파일을 처리하는 모듈 또는 자체적으로 디렉토리를 처리하고 파일 마스크를 찾는 모듈에 유용
%destinationDirectory% 파일이 저장될 루트 디렉토리의 전체 경로 -
%sourceFile% FileMask를 사용하는 모듈의 경우 파일의 전체 경로 단일 파일 대 디렉토리를 예상하는 프로그램에 유용
%kapeDirectory% kape.exe 실행된 위치의 전체 경로 모듈 등에 전달할 구성 파일에 대한 참조 지점이 있으면 유용
%fileName% 모듈에서 처리 중인 파일 이름 ExportFile 속성에만 해당

 


 

11. .mkape 커스터마이징

 

Description: SCAP
Category: SCAP Local Scan
Author: Present4n6
Version: 1.0
Id: 5afdfd6b-5ebb-4545-9980-000000000001
ExportFormat: ""
Processors:
    -
        Executable: scc_5.4.2\cscc.exe
        CommandLine: -u %destinationDirectory%
        ExportFormat: ""
        

# Documentation
# present4n6.tistory.com

 

위 코드는 제가 임의로 작성한 .mkape 파일 내용입니다.

SCAP라는 새로운 mkape 파일을 작성하여 cscc.exe 프로그램을 실행하여 결과물을 Module Destination에 저장하도록 작성을 한 것입니다.

주의할 점으로는 역시나 들여쓰기를 할 때 Tab이 아니라 스페이스바로 간격을 맞춰주어야 하며, 필수 항목을 비워두면 KAPE가 작동하지 않기 때문에 공백이라도 값을 선언해줘야 합니다. (프로그램 실행에 영향을 미치지 않으면 상관 없습니다)

Id 값은 임의로 지정하여 고유한 값을 설정해주시면 되겠습니다.

 

KAPE - Module

 

KAPE를 실행하고 Module을 활성화한 뒤 생성한 mkape 파일명을 검색하면 위와 같이 목록에 있는 것을 확인할 수 있습니다.

유의할 점으로는 Github에 명시된 기존의 .mkape 파일이 아닌 사용자가 임의로 생성한 .mkape의 경우 !Local 폴더에 저장을 하도록 되어 있습니다.

또한 KAPE에서 기본적으로 제공해주지 않는 프로그램을 별도로 사용할 경우 kape\Modules\bin 폴더에 추가해주어야 하며 단일 프로그램이 아닌 폴더 형태로 저장을 하여도 괜찮습니다.

 

 

SCAP.mkape 동작 결과

 

SCAP.mkape가 동작하면 지정한 프로그램에 대해 명령어가 작동하면서 결과물이 생성된 것을 확인할 수 있습니다.

 


 

11-1. Compound Modules

 

Description: Network Scan
Category: Network
Author: Present4n6
Version: 1.0
Id: 5afdfd6b-5ebb-4545-9980-000000000002
ExportFormat: ""
Processors:
    -
        Executable: Windows_IPConfig.mkape
        CommandLine: ""
        ExportFormat: ""

    -
        Executable: Windows_ARPCache.mkape
        CommandLine: ""
        ExportFormat: ""

# Documentation
# present4n6.tistory.com

 

.mkape에서는 Target과 마찬가지로 다른 mkape들을 실행할 수 있도록 구성할 수 있습니다.

위 코드는 Windows_IPConfig.mkape, Windows_ARPCache.mkape 를 한 번에 실행하도록 작성한 Network Scan.mkape 파일입니다.

 

 

Network Scan.mkape 동작 결과

 

Network Scan.mkape 동작 시 Windows_IPConfig.mkape, Windows_ARPCache.mkape가 동작한 결과와 같은 결과물을 생성한 것을 확인할 수 있습니다.

 

.mkape 커스터마이징을 잘 활용한다면 별도의 프로그램을 KAPE에 추가하고 여러가지 모듈들을 종합하여 사용할 수 있기 때문에 대상 시스템에 대한 종합적인 진단을 수행하는 것도 기대해 볼 수 있겠습니다.