wmi-objects-data
WMI(Windows Management Instrumentation) OBJECTS.DATA 파일을 파싱하여 CIM(Common Information Model) 개체를 조회합니다. 클래스 정의, 인스턴스 객체, 등록 정보 등의 WMI 저장소 레코드를 구조화된 필드로 변환하여 출력합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 드라이버 쿼리 |
| 필요 권한 | 클러스터 관리자 |
| 라이선스 사용량 | 집계함 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
옵션
zippath=STR- OBJECTS.DATA 파일이 포함된 ZIP 파일의 경로. ZIP 파일 내부의 OBJECTS.DATA 파일을 직접 조회할 때 사용합니다.
zipcharset=STR- ZIP 파일 엔트리의 문자 집합 (기본값:
utf-8)
대상
FILE_PATH- 조회할 OBJECTS.DATA 파일의 경로. 와일드카드(
*)를 사용하여 여러 파일을 지정할 수 있습니다. 이 파일은C:\WINDOWS\system32\wbem\Repository\OBJECTS.DATA경로에 위치합니다.
출력 필드
레코드 유형에 따라 출력 필드가 달라집니다.
공통 필드
| 필드 | 타입 | 설명 |
|---|---|---|
_file | 문자열 | OBJECTS.DATA 파일 이름 |
record_type | 문자열 | 레코드 유형. CLASS_DEFINITION, INSTANCE_OBJECT, REGISTRATION 중 하나 |
CLASS_DEFINITION 유형
| 필드 | 타입 | 설명 |
|---|---|---|
_time | 날짜 | 클래스 정의 시각 |
name | 문자열 | 이름 |
class_name | 문자열 | 클래스 이름 (예: Win32_PageFileSetting) |
super_class_name | 문자열 | 상위 클래스 이름 (예: __SystemClass, __Provider) |
properties | 맵 | 속성 목록 |
qualifiers | 맵 | 한정자 목록 |
INSTANCE_OBJECT 유형
| 필드 | 타입 | 설명 |
|---|---|---|
hash | 문자열 | 인스턴스 해시 값 |
date1 | 날짜 | 첫 번째 타임스탬프 |
date2 | 날짜 | 두 번째 타임스탬프 |
strings | 배열 | 인스턴스 블록에서 추출한 문자열 목록 |
REGISTRATION 유형
| 필드 | 타입 | 설명 |
|---|---|---|
name | 문자열 | 이름 |
class | 문자열 | 클래스 이름 |
instance_name | 문자열 | 인스턴스 이름 (예: Connection, provider) |
index_key | 문자열 | 인덱스 키 |
오류 코드
파싱 오류
해당 사항 없음
런타임 오류
| 오류 코드 | 메시지 | 설명 | 후처리 동작 |
|---|---|---|---|
| - | cannot read wmi objects file {파일 경로} | OBJECTS.DATA 파일을 읽을 수 없는 경우 | 쿼리 실행을 중단함 |
설명
wmi-objects-data 명령어는 지정한 OBJECTS.DATA 파일을 바이너리 형식으로 파싱하여 WMI 저장소의 CIM 개체를 추출합니다. OBJECTS.DATA 파일은 윈도우 WMI 서비스가 관리하는 CIM 저장소 파일로, 클래스 정의, 인스턴스 객체, 등록 정보를 포함합니다.
파일은 8,192바이트 크기의 데이터 페이지 단위로 구성되어 있으며, 각 페이지는 여러 개의 객체 레코드를 포함합니다. 레코드 유형은 데이터 구조에 따라 자동으로 판별됩니다.
WMI 서브스크립션을 통한 지속성 메커니즘(MITRE ATT&CK T1546.003)을 탐지하려면 __EventFilter, __EventConsumer, __FilterToConsumerBinding 관련 문자열을 검색할 수 있습니다.
ZIP 파일 내부의 OBJECTS.DATA 파일을 조회하려면 zippath 옵션에 ZIP 파일 경로를 지정하고 대상에 ZIP 내부의 OBJECTS.DATA 파일 경로를 지정합니다.
이 명령어는 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요하며, 접근 가능한 파일 경로가 제한됩니다. 자세한 내용은 파일 접근 제한을 참고하세요.
사용 예
각 사용 예의 파일 경로는 ALLOWED_FILE_SCAN_PATHS 설정에 포함되어 있다고 가정합니다.
-
OBJECTS.DATA 파일 조회
wmi-objects-data /opt/logpresso/evidence/OBJECTS.DATA지정한 경로의 OBJECTS.DATA 파일에서 모든 CIM 개체를 조회합니다.
-
ZIP 파일 내부의 OBJECTS.DATA 파일 조회
wmi-objects-data zippath=/opt/logpresso/evidence/artifacts.zip OBJECTS.DATAZIP 파일 내부의
OBJECTS.DATA파일에서 CIM 개체를 조회합니다. -
WMI 서브스크립션을 통한 실행 탐지
wmi-objects-data /opt/logpresso/evidence/OBJECTS.DATA | eval strings = strjoin("\n", strings) | search in(strings, "*__EventFilter*", "*__EventConsumer*", "*__FilterToConsumerBinding*")WMI 이벤트 서브스크립션 관련 객체를 검색하여 지속성 메커니즘을 탐지합니다.
-
클래스 정의만 필터링
wmi-objects-data /opt/logpresso/evidence/OBJECTS.DATA | search record_type == "CLASS_DEFINITION"클래스 정의(CLASS_DEFINITION) 유형의 레코드만 필터링합니다.
호환성
wmi-objects-data 명령어는 소나 4.0 이전 버전부터 제공되었습니다. 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요합니다.