2017. 1. 11. 14:58 DB 관련
WMIC를 이용한 분석
1. WMI(Windows Management Instrumentation)란??WMI는 엔터프라이즈 네트워크에서 관리 정보를 액세스하고 공유하는표준을 만들기 위하여 Microsoft에서 구현한 것이다.
2. WMIC(Windows Management InstrumentationCommand-line)란?WMI에 대한 간단한 명령줄 인터페이스를 제공하므로 WMI를 사용하여 Window를 실행하는 컴퓨터를 관리할 수 있다. Shell 및 유틸리티 명령과 상호 작용하여 한 컴퓨터부터 다수의 컴퓨터까지 원격으로 관리할 수 있으며, 관리 스크립팅을 통하여 자동화까지 가능하다. WMIC는 기본적으로Window XP 이상에서만 로드된다.
기본 명령어wmic : wmic를 실행시키는 명령어로써 프롬프트가 C:\ 에서wmic:root\cli로 바뀐다.exit : wmic를 종료시키는 명령어로써 프롬프트가 wmic:root\cli 에서 C:\로 바뀐다./? : wmic의 도움말 기능이다.

wmic 명령으로 컴퓨터s/n 확인하기
Ex) C:\>wmic bios get serialnumber
wmic 명령으로 메모리
확인
Ex) C:\>wmic memorychip get banklabel, capacity
wmic 명령으로 프로세스Core
확인
Ex) C:\>wmic path win32_processor get numberofcores, numberoflogicalprocessors, processorid
wmic 명령으로 프로세스시작(생성)시간
확인
Ex) C:\>wmic path win32_process get caption, processid, parentprocessid,creationdate

wmic 명령으로 공급업체의 세부사항 확인하기
Ex) C:\>wmic bios
wmic 명령으로 bootpartition 및 관련 데이터 확인하기
Ex) C:\>wmic bootconfig
wmic 명령으로 cdrom 및 모든 광학 디스크 확인하기
Ex) C:\>wmic cdrom
wmic 명령으로 설치된 cpu 속성 확인하기
Ex) C:\>wmic cpu
wmic 명령으로 시리얼 번호, 공급업체 이름, UUID 및 버전정보 확인하기
Ex) C:\>wmic csproduct
wmic 명령으로 모든 데스크탑 화면 설정 확인하기
Ex) C:\>wmic desktop
wmic 명령으로 모든 환경변수 확인하기
Ex) C:\>wmic environment
wmic 명령으로 메모리칩에 관한 포괄정인 정보 확인하기
Ex) C:\>wmic memorychip
wmic 명령으로 모든 가상 및 하드웨어의 상세한 정보 확인하기
Ex) C:\>wmic nic
wmic 명령으로 런타임 데이터 및 프로토콜 매개변수 어댑터 확인하기( 맥주소가 자주 쓰인다. )
Ex) C:\>wmic nicconfig
Ex) C:\>wmic nicconfig get macaddress,caption
wmic 명령으로 모든 로그온 세션의 통합 목록 확인하기
Ex) C:\>wmic logon
wmic 명령으로 OS관련정보 확인하기
Ex) C:\>wmic os
Ex) C:\>wmic os get encryptionlevel, debug,install date
wmic 명령으로 "run"이란 문자열을 갖는 레지스트리의 위치와 실행경로 및 시작목록의 관련 데이터 확인하기
Ex) C:\>wmic startup
wmic 명령으로 활성화 계정 유형 및 SID등 다양한 사용자 계정 관련 정보 확인하기
Ex) C:\>wmic useraccount
wmic 명령으로 다른 곳에 로드된 드라이버의 경로 및 이름 확인하기
Ex) C:\>wmic sysdriver
wmic 명령으로 패치관련 명령으로서 설치 가능한 업데이트 목록 뿐아니라 설치 날짜 및 설치 URL 제공 명령어
Ex) C:\>wmic qfe
wmic 명령으로 제어판의 프로그램 추가/제거 이상의 세부적인 설치된 모든 소프트웨어 목록 확인하기
Ex) C:\>wmic product
wmic 명령으로 page파일의 위치와 크기정보 확인하기
Ex) C:\>wmic pagefile
wmic 명령으로 크래시 덤프의 모든 유형에 대한 경로와 같은 메모리 덤프 정보 확인하기
Ex) C:\>wmic recoveros
wmic 명령으로 group 목록 확인하기
Ex) C:\>wmic group
wmic 명령으로 share 확인하기(숨겨진 share 포함)
Ex) C:\>wmic share
wmic 명령으로 서비스 확인하기
Ex) C:\>wmic service
wmic 명령으로 프로세스 확인하기
Ex) C:\>wmic process
Ex) C:\>wmic process list full (파싱 쉽게 나열된 정보 )
wmic 명령으로 이벤트 확인하기
Ex) C:\>wmic nteventlog
Ex) C:\>wmic nteventlog list full
3. WMIC를 이용한 악성코드 분석
프로세스 중 processid 가 536인 것을 찾는다.
C:\wmic process where processid=”536″
WMIC로 쿼리문 비슷한 문법이 사용가능하다.
따라서 조금더 자세한 정보를 얻기 위해 아래와 같이 약간의 필터를 첨가할 수 있다.
C:\wmic process where (processid=”536″ and name=”malware.exe”)
WIMC는 cmd의 커맨드 명령과 복합적으로 사용하면 더욱 강력한 필터를 할 수 있다.
C:\wmic process where (processid=”536″ and name=”malware.exe”) | find “32″
선택된 프로세스를 종료시킬 수도 있다.
C:\wmic process where name=”malware.exe” delete
위에서 언급한 list full 옵션을 이용하여 해당 프로세스 정보를 보기쉽게 나열할 수 있다.
C:\wmic process where name = “mal.exe” list full
해당 프로세스의 절대경로를 알 수 있다.
C:\wmic process where name= “mal.exe” get commandline
자식 프로세스가 메모리에 머물러 있거나, 새로운 프로세스의 실행을 유도할 수도 있기 때문에
부모 프로세스도 차단해댜 된다.
C:\wmic process where (name=”mal.exe” or parentprocessid=”246″) delete
해당 프로세스의 상세한 분석 위해 디버깅을 한다.
C:\wmic process where name = “mal.exe” call attachdebugger
4. WMIC를 대한 고찰
WMIC는 전반적으로 시스템 개요 및 BIOS / 하드웨어 관련 데이터와 같은 깊이 있는 정보를 많이 얻을 수 있는 도구이다. CMD는 일반적으로 가장 많이 사용되지만 빠른 검색 및 정렬에서 그 기능이 그친다. 이 CMD의 검색 기능과 WMIC의 깊이 있는 정보를 병합한다면 더욱 좋은 결과를 가져올 수 있을 것이다. 그리고 WMIC는 WIndow XP이상 버전에서는 기본적으로 탑재되 있으므로 모든 사용자를 대상으로 WMIC를 이용하여 프로그래밍을 할 수 있다.
[출처] WMIC를 이용한 분석|작성자 KaiEn