응용 프로그램 실행 분석-부트프리패치분석
부트 프리패치 분석
부트 프리패치는 NTOSBOOT-BOODFAAD.PF라는 이름을 가지며, 단일 파일로 존재한다. 부트 프리패치는 시스템이 부팅되는 속도를 조금 더 빠르게 하기 위한 것으로 부팅 시 사용되는 시스템 자원을 파악하여 한곳에 모아놓는 역할을 한다.
부트 프리패치 파일은 윈도우가 부팅될 때, 최대 120초 동안을 모니터링하여 사용되는 코드와 관련 데이터를 파일로 저장해둔 것으로 부팅 속도를 향상시켜주는 역할을 한다.
분석 관점에서 부트프리패치는 시스템이 부팅될 때 로드되는 파일들의 목록을 확인할 수 있는 여지를 주기 때문에 유용하다. 다만 부트 프리패치 목록에 없다고하여 부팅시 로드되는 악성코드가 없다고 단정할 수는 없다.
부트 프리패치 파일은 부팅될 때 참조되는 목록을 저장하기 때문에 쉽게 보면 부트킷(Bootkit)이나 오토런(AutoRun) 류의 악성코드 흔적이 남을 것이라고 생각할 수 있다. 하지만 부트 프리패쳐의 모니터링에 쉽게 확인되는 것은 아니다.
하지만 지속 반복적으로 분석하여 부트 프리패치만 제대로 감시하면 악성코드나 이상한 프로세스의 실행 여부는 확인이 가능할 것 같다.
부트 프리패치 파일인 “NTOSBOOT-*.pf”의 참조 목록으로 순서를 나타내는 “Index”로 정렬하여 살펴보면 부팅 시 참조되는 파일 순서를 살펴볼 수 있다.
분석
부트 프리패치의 분석 방법은 일반 어플리테이션 프리패치 분석과 동일하다.
참고 : https://secuworld.tistory.com/21?category=849780
F:\tool\forensic\rifiuti>F:\tool\forensic\PECmd.exe -f "f:\Test\fetchfiles\NTOSBOOT-B00DFAAD.pf"
Command line: -f f:\Test\fetchfiles\NTOSBOOT-B00DFAAD.pf
Keywords: temp, tmp
Processing 'f:\Test\fetchfiles\NTOSBOOT-B00DFAAD.pf'
Created on: 2020-03-05 오전 4:07:50 +00:00
Modified on: 2020-03-05 오전 4:07:51 +00:00
Last accessed on: 2020-03-05 오전 4:07:51 +00:00
Executable name: NTOSBOOT
Hash: B00DFAAD
File size (bytes): 3,157,736
Version: Windows Vista or Windows 7
Run count: 6
Last run: 2016-10-28 오전 3:00:28 +00:00
Volume information:
#0: Name: \DEVICE\HARDDISKVOLUME1 Serial: 624F594 Created: 2011-11-01 오전 1:46:58 +00:00 Directories: 1 File references: 13
#1: Name: \DEVICE\HARDDISKVOLUME2 Serial: D6BABAFA Created: 2012-10-22 오전 4:35:47 +00:00 Directories: 431 File references: 6,286
#2: Name: \DEVICE\HARDDISKVOLUME3 Serial: CC3BAD7C Created: 2015-07-21 오전 6:19:31 +00:00 Directories: 2 File references: 15
#3: Name: \DEVICE\HARDDISKVOLUME4 Serial: 7A83C754 Created: 2015-12-02 오전 2:09:43 +00:00 Directories: 4 File references: 21
#4: Name: \DEVICE\HARDDISKVOLUME6 Serial: C653E2BE Created: 2016-01-22 오전 9:00:21 +00:00 Directories: 0 File references: 0
#5: Name: \DEVICE\HARDDISKVOLUME7 Serial: 90748064 Created: 2016-02-04 오전 2:12:09 +00:00 Directories: 0 File references: 0
Directories referenced: 438
000: \DEVICE\HARDDISKVOLUME1\SYSTEM VOLUME INFORMATION
001: \DEVICE\HARDDISKVOLUME2\PROGRAM FILES
002: \DEVICE\HARDDISKVOLUME2\PROGRAMDATA
003: \DEVICE\HARDDISKVOLUME2\PROGRAMDATA\KASPERSKY LAB
004: \DEVICE\HARDDISKVOLUME2\PROGRAMDATA\KASPERSKY LAB\KES10
005: \DEVICE\HARDDISKVOLUME2\PROGRAMDATA\KASPERSKY LAB\KES10\BASES
006: \DEVICE\HARDDISKVOLUME2\SYSTEM VOLUME INFORMATION
007: \DEVICE\HARDDISKVOLUME2\WINDOWS
008: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32
009: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\CODEINTEGRITY
010: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS
011: \DEVICE\HARDDISKVOLUME2\$EXTEND
012: \DEVICE\HARDDISKVOLUME2\$RECYCLE.BIN
013: \DEVICE\HARDDISKVOLUME2\$RECYCLE.BIN\S-1-5-21-2709948117-530518507-4126139040-1012
014: \DEVICE\HARDDISKVOLUME2\PROGRAM FILES\ADOBE
015: \DEVICE\HARDDISKVOLUME2\PROGRAM FILES\ADOBE\READER 11.0
......
Files referenced: 3,852
0000: \DEVICE\HARDDISKVOLUME2\$MFT
0001: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\CDROM.SYS
0002: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\CODEINTEGRITY\BOOTCAT.CACHE
0003: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\ASWSP.SYS
0004: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\NTDLL.DLL
0005: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\KLIF.SYS
0006: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\KLFLT.SYS
0007: \DEVICE\HARDDISKVOLUME2\SYSTEM VOLUME INFORMATION\MDLLOG.DAT
0008: \DEVICE\HARDDISKVOLUME2\SYSTEM VOLUME INFORMATION\002.DAT
0009: \DEVICE\HARDDISKVOLUME2\SYSTEM VOLUME INFORMATION\001.DAT
0010: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\NCFSECU.SYS
0011: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\NCPMDRV.SYS
0012: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\NULL.SYS
0013: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\BEEP.SYS
0014: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\VGA.SYS
0015: \DEVICE\HARDDISKVOLUME2\WINDOWS\SYSTEM32\DRIVERS\VIDEOPRT.SYS
......
분석 결과 예제
'DFIR > 사용자 행위 분석' 카테고리의 다른 글
응용 프로그램 실행 분석-최근 실행 프로그램 (RunMRU) 분석 (0) | 2020.03.05 |
---|---|
응용 프로그램 실행 분석-바로가기 링크파일 분석 (0) | 2020.03.05 |
응용 프로그램 실행 분석-슈퍼패치분석 (0) | 2020.03.04 |
응용 프로그램 실행 분석-프리패치분석 (0) | 2020.03.04 |
응용 프로그램 실행 분석-MUICache (0) | 2020.03.04 |
응용 프로그램 실행 분석-슈퍼패치분석
Superfetch 분석
프리패치의 사용은 메모리의 페이징 아웃 기법(오래 사용되지 않는 메모리 영역을 잠시 보조저장장치의 페이지 파일로 이동시켜 메모리 공간을 확보하는 기술)에 의해 제 기능을 못할 때가 있다. 정작 운영체제가 미리 로딩해 놓은 프리패치 파일이 페이징 아웃 되버리면 다시 응용프로그램을 실행할 때 보조 저장장치의 페이지 파일(pagefile.sys)로부터 로딩을 해야 하는 모순이 생기는 것이다.
성능을 높여보자고 메모리에 올려놓았는데 운영체제가 다시 페이지 파일로 이동시켜 다시 파일에서 읽는 꼴이 되어 버리기 때문에 기대했던 성능 향상은 미비할 수 밖에 없다.
이런 점을 보완하고자 윈도우 Vista 부터는 슈퍼패치 파일에 사용자의 사용 패턴을 기록해두고 자주 사용하는 프로그램의 프리패치 데이터가 페이지 아웃(page-out)될 경우 이를 다시 메모리로 페이지 인(page-in) 시키는 기능을 수행한다.
사용자가 오전에 컴퓨터를 부팅하고 실행하는 프로그램과 점심 먹고 실행하는 프로그램, 업무 시간 이후에 실행하는 프로그램은 다를 것이다. 슈퍼패치는 시간 대를 나누어 자주 사용되는 프로그램 목록을 관리하고 이렇게 관리되는 프로그램은 페이지 아웃이 일어나지 않도록 도와준다.
슈퍼패치의 설정은 프리패치와 마찬가지로 다음 레지스트리에서 가능하다.
Key: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
Value: EnableSuperfetch
0: 비활성화
1: 부트 파일만 슈퍼패치
2: 응용프로그램만 슈퍼패치
3: 부트 파일와 응용프로그램 둘 다 슈퍼패치
하지만 레지스트리 설정보다 우선 하는 것이 슈퍼패치 서비스이다. services.msc 명령을 이용하면 “Superfetch”라는 이름의 서비스, Window 10 RS5 업데이트 이후에는 sysmain을(를) 확인할 수 있다. 슈퍼패치를 종료하고 싶다면 해당 서비스를 중지시켜야 한다. 다만, 해당 서비스를 중지하면 프리패치 서비스도 중지되므로 유의하자.
최근 파일리스(fileless) 악성코드가 자주 나오고 실행흔적을 지우는 안티포렌식 기법이 일반화되고 있는 시점에 메모리에 매핑된 파일 목록은 조사에 큰 도움이 될 수 있다. 앞으로는 프로그램 실행 흔적을 판단할 때 슈퍼패치를 꼭 활용하도록 하자.
슈퍼패치 파일은 프리패치 폴더 존재하는데 “Ag”의 접두어어와 “.db”의 확장자를 가진 압축파일과 비압축 파일로 존재한다. 압축과 비압축 파일은 각각 아래와 같다.
파란색은 비압축 파일로 TRX 파일이라고 하며 빨간색은 압축 파일이.
SuperfetchList.exe 및 SuperFetch.exe Tools
C:\>dir /a-d %windir%\prefetch\*.db
C:\>SuperfetchList.exe /a > c:\temp\SuperFetch.lst
C:\Dropbox\DFIR\Window\Behaviour\Scripts>SuperFetchDumpall.bat
<SuperFetchDumpall.bat>
del /S *.unp
del /S *.txt
for /R %%c in (*.db) do C:\Tools\SuperFetch.exe %%c > %%c.txt
CrowdResponse Tool
운영체제 아키텍처를 선택할 수도 있고 폴더를 지정해서 분석할 수도 있다. 기본으로는 현재 시스템의 슈퍼패치 정보를 분석해준다. 분석 결과는 기본 XML로 출력이 된다. XML 출력을 CSV, HTML 등의 형태로 변경하고 싶으면 함께 제공되는 CRconvert 도구를 이용하면 된다.
CrowdResponse 도구에서는 다음과 같은 정보를 분석해준다.
* 기본 시스템 정보
* 메모리에 매핑된 파일 목록
* 실행 프로세스명
* 프로그램 경로
* 실행 횟수
* 포그라운드 횟수(?)
* 프로그램 동작 기간
* 프로그램 실행 시간(?)
명령어 예제
C:\Tools\CrowdResponse>CrowdResponse.exe @superfetch /?
C:\Tools\CrowdResponse>CrowdResponse.exe @superfetch -3 > f:\temp\superfetch.xml
C:\Tools\CrowdResponse>CrowdResponse64.exe @superfetch /?
C:\Tools\CrowdResponse>CrowdResponse64.exe @superfetch -6 > f:\temp\superfetch.xml
F:\temp>F:\tool\forensic\CrowdResponse64.exe @superfetch -6s f:\test\superfetchs > f:\temp\superfetch.xml
F:\temp>dir f:\temp\superfetch.xml
2020-03-05 오전 09:48 1,437,118 superfetch.xml
F:\temp>type f:\temp\superfetch.xml
xml 결과 파일을 csv로 변환
F:\tool\forensic\CrowdResponse>CRConvert.exe -f "f:\temp\superfetch.xml" -c [-o f:\temp\superfetchcsv]
실행을 하고나면 아래와 같이 csv 파일 4개가 출력 됩니다.
F:\tool\forensic\CrowdResponse>dir f:\temp\superfetchcsv
2020-03-05 오전 10:03 445 CrowdResponse_log.csv <- superfetch 서비스 동작 정보
2020-03-05 오전 10:03 3,276 CrowdResponse_superfetch_appentries.csv
2020-03-05 오전 10:03 644,170 CrowdResponse_superfetch_perioddata.csv
2020-03-05 오전 10:03 490 CrowdResponse_system.csv <- 시스템 기본 정보 수집
CrowdResponse_superetch_appentries.csv 파일을 열어보면 데이터를 확인 할 수 있습니다.
'DFIR > 사용자 행위 분석' 카테고리의 다른 글
응용 프로그램 실행 분석-바로가기 링크파일 분석 (0) | 2020.03.05 |
---|---|
응용 프로그램 실행 분석-부트프리패치분석 (0) | 2020.03.05 |
응용 프로그램 실행 분석-프리패치분석 (0) | 2020.03.04 |
응용 프로그램 실행 분석-MUICache (0) | 2020.03.04 |
응용 프로그램 실행 분석-UserAssist (0) | 2020.03.04 |
응용 프로그램 실행 분석-프리패치분석
prefetch 분석
윈도우의 프리패칭은 부팅할 때나 응용프로그램을 시작할 때 성능을 향샹시키기 위해 구현된 기능이다. 부팅 시에는 120초를 모니터링하고 응용프로그램 시작 시에는 10초를 모니터링 한 후, 모니터링한 정보로 프리패치 파일을 생성한다. 생성된 프리패치 파일은 재부팅할 때나 응용프로그램을 재실행할 때 속도 향상을 위해 사용된다.
프리패치 파일은 “%SystemRoot%\Prefetch” 폴더에 저장되는데 최대 128개의 파일을 유지한다. 새로운 응용프로그램이 실행되면 LRU 알고리즘에 의해 가장 오래 사용하지 않은 응용프로그램의 프리패치 파일이 삭제되고 새 응용프로그램 프리패치 파일이 추가된다. 오래된 프리패치 파일의 삭제는 일반 삭제이므로 비할당영역에서 프리패치 파일을 카빙해보면 상당히 많은 파일을 발견할 수 있다. 저장장치를 여유롭게 사용했다면 윈도우 설치 시점부터 현재까지의 응용프로그램 실행 이력을 확인할 수도 있다
프리패치 파일에는 실행한 프로그램의 경로가 나타내어진다. 이를 통하여 해당 프로그램의 위치를 알 수가 있는데, 만약 프로그램이 USB에 담겨있던 프로그램이라면 이 또한 확인이 가능하다. 일반 프로그램들은 C:\로 시작하지만 이 경우에 있어선 독특하게 \VOLUME으로 시작하는 것을 확인할 수가 있다. 이를 통해 우리는 외부저장장치에 있던 프로그램이 실행되었다는 흔적을 찾을 수가 있다.
프리패치 파일에서 획득 가능한 정보는 다음과 같다.
- 응용프로그램 이름
- 응용프로그램 실행 횟수
- 응용프로그램의 최초 실행 시간은 프리패치 파일 생성시간
- 응용프로그램 마지막 실행 시각
- 응용프로그램 파일의 파일시스템 시간 정보
- 응용프로그램이 위치한 볼륨 정보
- 응용프로그램이 참조하는 파일 목록(DLL 및 일반 파일)
특정 시스템에서 디지털 포렌식 분석을 수행할 때 사고가 일어난 후 많은 시간이 지나지 않았다면 프리패치 파일에 저장되는 위 정보에서 참조 목록의 순서를 나타내는 Index로 정렬하여 사용자 행위나 공격 흐름을 재구성할 수 있다. 물론, 프리패치 파일만으로는 한계가 있으므로 다양한 시스템 아티팩트를 종합하여 통합 타임라인 분석을 수행해야 한다.
한두개의 아티팩트나 이벤트만으로 분석하면 사건의 흐름이나 연관성을 분석하는데 제한적이고 한계가 있으므로 다양한 아티팩트나 이벤트를 대상으로 타임라인 분석을 수행한다
프리패치 분석 중 고려해야 할 몇 가지 사항들이 있다.
1) 오래된 프리패치 파일은 삭제되어 비할당 영역에 존재할 수 있으므로 카빙을 통해 분석이 가능하다.
2) 원본 실행파일이 제거되어도 프리패치 파일은 시스템에 남아있다. 프리패치 파일은 있는데 실행 파일이 없는 경우
: 실행 후 실행파일을 삭제한 경우나 psexec 또는 net use 명령으로 원격 실행한 경우
3) 프리패치파일이 존재하지 않는다고 특정 프로그램이 실행되지 않았다는 의미는 아니다.
실행된 exe 파일을 지웠거나 pxexec 같은 tool을 통해 원격으로 실행한 경우일 수 있다.
pxexec 같은 tool을 통해 원격으로 실행한 경우에는 프리패치 파일이 생성되지 않는다.
4) 윈도우 XP이후의 모든 운영체제에서 프리패치 파일을 생성하는 것은 아니다.
윈도우 7이상의 운영체제에서 SSD를 사용할 경우 메모리 최적화 기능으로 인해 프리패치 생성이
비활성화 되있을 수 있으며, 운영체제의 세부적인 버전별로 차이가 존재한다.
또한 프리패치 관련 레지스트리(HKLM\SYSTEM\ControlSet00#\Control\Session Manager\Memory
Management\Prefetch Parameter\EnablePrefetcher)에서 비활성화 되어 있을 경우도 존재한다.
4) 참조 목록에서 실행가능한 파일이 있는지 확인 : scr, exe, lnk, bat, vbs, js, com, ps1 등
5) 실행 파일이 아닌 워드, 엑셀, pdf 등의 일반 파일에서 cmd.exe, screen.scr, cscript 등을 참조하는 경우 사에
분석 필요
6) 참조 목록에서 경로가 일반 드라이브 문자가 아닌 \\Device 또는 \\Device\HARDDISKVOLUME??으로
시작하거나 고정형 디스크 드라이브 문자 외의 문자로 시작하는 경우 유심히 살펴봐야 한다.
즉 Full Path의 경로가 로컬의 또 다른 볼륨인지 외장 볼륨인지는 레지스트리에 마운트된 볼륨 정보와 함께
판단할 필요가 있다.
7) 참조 목록에 별도의 시간 정보가 기록되지 않아 정상 파일을 패치하여 동작하는 부류의 악성코드는 찾기 힘들다는
한계가 있다.
<참고>
어플리케이션 프리패치는 "[실행파일명] – [파일 위치에 대한 해쉬].pf"와 같은 이름으로 생성된다.
프리패치와 슈퍼패치는 기본적으로 보조기억장치와 주 기억장치의 속도 차이를 극복하기 위해 사용되는 기술이므로
보조 기억 장치의 속도가 빠르다면 불필요한 기술이라고도 볼 수 있다.
윈도우 7이상의 운영체제나 윈도우 서버군 OS에서는 SSD를 사용할 경우, 메모리 관리 기술을 자동으로 최적화하는 기능이 추가되었다. 그러므로 실제로 SSD가 사용된 시스템을 조사하다보면 프리패치 파일이 생성되지 않는 환경이 많다.
서버 제품군에서 응용프로그램 프리패칭을 사용하지 않는 이유는 응용프로그램이 반복적으로 실행되기 보다는 한번 실행되면 오랫동안 유지되는 환경이기 때문이다.
하지만 Windows 7이상의 모든 운영체제에서 프리패치나 슈퍼패치를 비활성화 하는 것은 아닌 것으로 보인다. 운영체제의 세부적인 버전 별로 자동 설정 여부가 다른 것으로 확인되므로, 우선적으로 프리패치와 슈퍼패치의 존재 여부를 확인한 후, 존재하지 않는다면, 아래 레지스트리와 서비스의 설정 상태를 확인하여 의도적으로 삭제한 것인지 원래 존재하지 않는 것인지를 판단하여 복구 여부를 결정하는 절차로 분석을 진행할 수 있도록 하자.
레지스트리 경로
프리패치 생성 여부 레지스트리 경로
* HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\EnablePrefetcher
* HKLM\SYSTEM\ControlSet00#\Control\Session Manager\Memory Management\Prefetch Parameter\EnablePrefetcher * HKLM\SYSTEM\ControlSet00X\Control\Session Manager\Memory Management\Prefetch Parameter\EnableSuperfetch
각각의 키의 값은 아래의 의미를 가진다.
0 : 사용 하지 않음.
1 : 응용프로그램 캐싱만 사용
2 : 부트 캐싱만 사용
3 : 응용프로그램/부트 캐싱 모두 사용(기본 설정)
C:\>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters"
관련 서비스
아래 서비스의 동작 여부를 확인
* Event Log | Windows Event Log (Prefetch 생성에 영향) <- 서비스명 eventlog
* Task Scheduler (Prefetch 생성에 영향) <- 서비스명 schedule
* Superfetch (Superfetch 생성에 영향) <- 최근 서비스명이 sysmain으로 변경
프리패치 파일 목록
F:\tool\forensic\RegRipper2.8>dir %windir%\prefetch\*.pf /a-d /o-d
2020-03-04 오후 04:40 9,716 SPPSVC.EXE-7B160CA5.pf
2020-03-04 오후 04:40 12,561 GNDUMP.EXE-7354CC54.pf
2020-03-04 오후 04:39 4,209 SEARCHFILTERHOST.EXE-10E4267C.pf
......
PECmd Tool
F:\tool\forensic\RegRipper2.8>F:\script\batch\PECmd.exe -f "c:\windows\prefetch\WINWORD.EXE-A4E0DB06.pf"
일괄 분석
C:\>PECmd.exe -d c:\Windows\prefetch > c:\temp\prefetchAnalyze.lst
WinprefetchView Tool
GUI
CLI
C:\>WinPrefetchView.exe /folder %windir%\prefetch /sort "~Modified Time" /sxml f:\temp\winpretchview.xml
C:\>LogParser.exe -h -i:xml "f:\temp\winpretchview.xml" -headerrow:on
......
Fields:
filename (S) created_time (S) modified_time (S) file_size (S)
process_exe (S) process_path (S) run_counter (I) last_run_time (S)
missing_process (S)
......
C:\>LogParser.exe -stats:off -i:xml "select * from 'f:\temp\winpretchview.xml'"
'DFIR > 사용자 행위 분석' 카테고리의 다른 글
응용 프로그램 실행 분석-부트프리패치분석 (0) | 2020.03.05 |
---|---|
응용 프로그램 실행 분석-슈퍼패치분석 (0) | 2020.03.04 |
응용 프로그램 실행 분석-MUICache (0) | 2020.03.04 |
응용 프로그램 실행 분석-UserAssist (0) | 2020.03.04 |
USB 사용 이력 분석 (4) | 2020.03.03 |
응용 프로그램 실행 분석-MUICache
MUICache 분석
다중 언어를 지원하기 위해 응용 프로그램의 이름을 캐시하는 레지스트리.
평소 사용하지 않는 프로그램의 이름도 표시된다.
- 윈도우에서 사용되는 기본 프로그램과 평소에 실행하지 않았던 프로그램 목록도 포함
각각의 국가별로 프로그램 명칭 및 경로를 관리
분석자 입장에서는 이 MUICache 목록에 일반적이지 않은 프로그램들이 추가되어 있지 않은지 확인해봐야 한다. 일반적인 프로그램 중 윈도우에서 사용되는 기본 프로그램들은 이미 목록에 있을테고 사용자가 설치하여 사용하는 프로그램도 한번이라도 실행했다면 MUICache 목록에 기록이 된다. 즉, 일부러 지우지 않는한 한번이라도 실행된 프로그램은 MUICache에 남는다.
어플리케이션(프로그램)이 실행할 때마다, 윈도우는 실행 파일 리소스에서 프로그램의 이름을 추출한다. 추후 재사용을 위해, "MUICache"로 알려진 레지스트리 키에 저장을 한다.
MUICache는 프로그램 실행을 보여주는 UserAssist 키와 비슷한 역할을 한다고 볼 수 있으며, 공격자가 실행한 악성코드, 삭제 프로그램등의 흔적을 찾을 수 있다. 포렌식에서는 MUICache목록에 일반적이지 않은 프로그램이 추가되어 있지 않은지 확인이 필요하다. MUICache 는 시간 정보가 없으므로 실행 후 삭제된 프로그램이나 히든 프로그램들의 실행 흔적 분석에 좋다.
레지스트리 경로
흔히들 부팅 후 사용되는 메모리의 양을 줄이기 위해 레지스트리에서 MUICache를 지우는 경우가 있습니다.
지우셔도 상관은 없습니다. 아래 레지스트리를 자세히 보시면 평소 실행하지 않았던 프로그램들도 목록에 포함되어 있는걸 확인하실 수 있습니다.
하이브파일 : NTUser.DATHKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
HKEY_CURRENT_USER\Software\Software\Classes\LocalSettings\MuiCache
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\ShellNoRoam\MUICacheHKEY_USERS\{SID}\Software\Microsoft\Windows\ShellNoRoam\MUICache
F:\>reg query "HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache"
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
LangID REG_BINARY 1204
C:\WINDOWS\system32\explorerframe.dll.FriendlyAppName REG_SZ ExplorerFrame
C:\WINDOWS\system32\explorerframe.dll.ApplicationCompany REG_SZ Microsoft Corporation
C:\WINDOWS\system32\shell32.dll.FriendlyAppName REG_SZ Windows 셸 공용 Dll
C:\WINDOWS\system32\shell32.dll.ApplicationCompany REG_SZ Microsoft Corporation
C:\Windows\System32\fsquirt.exe.FriendlyAppName REG_SZ fsquirt.exe
C:\Windows\System32\fsquirt.exe.ApplicationCompany REG_SZ Microsoft Corporation
D:\Program Files (x86)\Evernote\Evernote\Evernote.exe.FriendlyAppName REG_SZ Evernote
.......
MUICacheView.exe
F:\>MUICacheView.exe /sxml muicache.xml /sort "Application Name"
F:\tool\forensic\RegRipper2.8>type muicache.xml
F:\tool\forensic\RegRipper2.8>F:\script\batch\LogParser.exe -stats:off -i:xml "select * from 'muicache.xml'"
application_path application_name
-------------------------------------------------------------------------- -------------------------------------------------------
F:\tool\network\chromedriver\chromedriver.exe.FriendlyAppName chromedriver.exe
F:\tool\network\chromedriver.exe.FriendlyAppName chromedriver.exe
F:\temp\hConvert2pfx.exe.FriendlyAppName Covert2Pfx
F:\Dropbox\DFIR\Window\SystemBasic\Tools\REGA.exe.ApplicationCompany DFRC
D:\Program Files (x86)\Notepad++\notepad++.exe.ApplicationCompany Don HO don.h@free.fr
C:\Program Files (x86)\markany\maepsrt\ePageSaferRT.exe.FriendlyAppName ePageSafer NoAX (REPORT)
D:\Program Files (x86)\Evernote\Evernote\Evernote.exe.FriendlyAppName Evernote
......
regripper
C:\Tools\Forensic\RegRipper2.8>regex.exe -h f:\test\reg-hive-backup
F:\tool\forensic\RegRipper2.8>rip.exe -r "f:\test\reg-hive-backup\chohb.NTUSER.DAT" -p muicache
F:\tool\forensic\RegRipper2.8>rip.exe -r "f:\test\reg-hive-backup\chohb.NTUSER.DAT" -p muicache_tln
F:\tool\forensic\RegRipper2.8>rip.exe -r "f:\test\reg-hive-backup\chohb.USRCLASS.DAT" -p muicache
F:\tool\forensic\RegRipper2.8>rip.exe -r "f:\test\reg-hive-backup\chohb.USRCLASS.DAT" -p muicache_tln
'DFIR > 사용자 행위 분석' 카테고리의 다른 글
응용 프로그램 실행 분석-슈퍼패치분석 (0) | 2020.03.04 |
---|---|
응용 프로그램 실행 분석-프리패치분석 (0) | 2020.03.04 |
응용 프로그램 실행 분석-UserAssist (0) | 2020.03.04 |
USB 사용 이력 분석 (4) | 2020.03.03 |
Log On-Off 내역 분석 (0) | 2020.03.03 |