取证分析之发现Windows恶意程序执行痕迹

2018-10-29 首发于阿里先知: https://xz.aliyun.com/t/3067

本文主要简述当Windows系统中存在恶意可执行程序时,如何发现恶意程序的执行痕迹(文件路径、时间等),以及相关的辅助分析工具。
从注册表、文件、日志三个方面介绍,以及简单介绍下Win10中的几个特有功能。

一、注册表

1)ShimCache

ShimCache 又称为AppCompatCache,从 Windows XP开始存在,用来识别应用程序兼容性问题。跟踪文件路径,大小和上次修改时间(LastModifiedTime)和上次更新时间(LastUpdateTime)。
其中在Windows7/8/10系统中最多包含1024条记录,Windows7/8/10系统中不存在“上次更新时间”。
注册表中位置:

1
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache

辅助工具AppCompatCacheParser

https://github.com/EricZimmerman/AppCompatCacheParser/

1
2
usage:
AppCompatCacheParser.exe --csv d:\temp -t


辅助工具ShimCacheParser

https://github.com/mandiant/ShimCacheParser

1
2
3
usage:
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache" shimcache.reg
ShimCacheParser.py -o out.csv -r D:\Tool\TEST\shimcache.reg -t


2)UserAssist

userassist键值包含GUI应用执行的信息,如名称、路径、关联快捷方式、执行次数、上一次执行时间等。
注册表中位置:

1
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count

image.png

辅助工具UserAssist_V2_6_0

https://blog.didierstevens.com/programs/userassist/
image.png

3)MUICache

MUICache记录执行程序的名称和路径,但是没有记录相关执行时间。
注册表中位置:

1
2
HKCU/Software/Microsoft/Windows/ShellNoRoam/MUICache (XP, 2000, 2003) 
HKCU/Software/Classes/Local Settings/Software/Microsoft/Windows/Shell/MuiCache (Vista, 7, 2008)

image.png

image.png

辅助工具muicache_view

http://www.nirsoft.net/utils/muicache_view.html

image.png

二、文件

1)Prefetch

Prefetch(预读取),从Windows XP开始引入,用来加速应用程序启动过程。Prefetch包含可执行文件的名称、文件时间戳、运行次数、上次执行时间、Hash等。
Win7上记录最近128个可执行文件的信息,Win8-10上的最近1024个可执行文件。

文件路径:

1
C:\Windows\Prefetch

注册表HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters 中EnablePrefetcher的键值控制是否开启Prefetch。
EnablePrefetcher的数值设置:
0 =已禁用
1 =启用应用程序预读取
2 =启用引导预读取
3 =启用应用程序和引导预读取(最佳和默认)
虽然Windows 2003中也存在Prefetch,但默认为2,仅用于引导预读取。

image.png

辅助工具PECmd

https://github.com/EricZimmerman/PECmd

1
2
usage:
PECmd.exe -d "C:\Windows\Prefetch" --csv "d:\temp" --json d:\temp\json

image.png

image.png

2)Amcache

Amcache.hve记录执应用程序的执行路径、上次执行时间、以及SHA1值。
文件路径:

1
C:\Windows\AppCompat\Programs\Amcache.hve

image.png

辅助工具AmcacheParse

https://github.com/EricZimmerman/AmcacheParser

1
2
usage:
AmcacheParser.exe -f C:\Windows\AppCompat\Programs\Amcache.hve --csv d:\temp

image.png

image.png

3)Jump Lists

Windows 7-10用来任务栏显示经常使用或最近使用的项目。
文件路径:

1
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations

image.png

辅助工具JumpListExplorer

https://ericzimmerman.github.io/Software/JumpListExplorer.zip

image.png

三、日志

1) 安全事件日志Security Log (592/4688)

Windows 7、Windows Server 2008 R2 /2012 及之后,会在每次创建一个进程时创建一个事件日志,并传递到该进程的命令行信息。事件将记录到现有事件 ID 4688 并保存到 Windows 安全日志。但仅在启用了“审核进程创建”时记录4688。

1
2
592   创建一个新进程(Windows Server 2003)
4688 创建一个新进程(Windows 7、Windows Server 2008 R2/ 2012及之后)

image.png

2) 系统事件日志System Log (7035/7036)

Windows XP/7/ Windows Server 2003,当服务启动或停止时,服务控制管理器会记录到系统事件日志中的ID 7035。因此,如果关联的进程被注册为服务,则可发现执行痕迹。

1
2
7035   Service Control Manager    xxx服务成功发送一个开始控件。
7036 Service Control Manager xxx服务处于 正在运行/停止 状态

image.png

3) 计划任务日志TaskScheduler

计划任务日志中也可能发现可执行文件执行的痕迹。

image.png

四、Win10特有功能

1) RecentApps(win10)

Windows 10
注册表中位置:

1
HKCU\Software\Microsoft\Windows\Current Version\Search\RecentApps

2) BAM/Background Activity Monitor (win10)

从Windows 10 1709 (Fall Creators update)版本开始引用。
注册表中位置:

1
HKLM\SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}

3) ActivitiesCache.db(win10)

从Windows 10 1803 (April 2018)版本开始引用。
文件路径:

1
C:\Users\<profile>\AppData\Local\ConnectedDevicesPlatform\L.<profile>\ActivitiesCache.db

参考

https://blog.1234n6.com/2018/10/available-artifacts-evidence-of.html?m=1
https://www.andreafortuna.org/dfir/forensic-artifacts-evidences-of-program-execution-on-windows-systems/
https://www.fireeye.com/blog/threat-research/2013/08/execute.html
https://www.andreafortuna.org/cybersecurity/amcache-and-shimcache-in-forensic-analysis/