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
2usage:
AppCompatCacheParser.exe --csv d:\temp -t
辅助工具ShimCacheParser
https://github.com/mandiant/ShimCacheParser1
2
3usage:
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
辅助工具UserAssist_V2_6_0
https://blog.didierstevens.com/programs/userassist/
3)MUICache
MUICache记录执行程序的名称和路径,但是没有记录相关执行时间。
注册表中位置:1
2HKCU/Software/Microsoft/Windows/ShellNoRoam/MUICache (XP, 2000, 2003)
HKCU/Software/Classes/Local Settings/Software/Microsoft/Windows/Shell/MuiCache (Vista, 7, 2008)
辅助工具muicache_view
http://www.nirsoft.net/utils/muicache_view.html
二、文件
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,仅用于引导预读取。
辅助工具PECmd
https://github.com/EricZimmerman/PECmd1
2usage:
PECmd.exe -d "C:\Windows\Prefetch" --csv "d:\temp" --json d:\temp\json
2)Amcache
Amcache.hve记录执应用程序的执行路径、上次执行时间、以及SHA1值。
文件路径:1
C:\Windows\AppCompat\Programs\Amcache.hve
辅助工具AmcacheParse
https://github.com/EricZimmerman/AmcacheParser1
2usage:
AmcacheParser.exe -f C:\Windows\AppCompat\Programs\Amcache.hve --csv d:\temp
3)Jump Lists
Windows 7-10用来任务栏显示经常使用或最近使用的项目。
文件路径:1
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
辅助工具JumpListExplorer
https://ericzimmerman.github.io/Software/JumpListExplorer.zip
三、日志
1) 安全事件日志Security Log (592/4688)
Windows 7、Windows Server 2008 R2 /2012 及之后,会在每次创建一个进程时创建一个事件日志,并传递到该进程的命令行信息。事件将记录到现有事件 ID 4688 并保存到 Windows 安全日志。但仅在启用了“审核进程创建”时记录4688。1
2592 创建一个新进程(Windows Server 2003)
4688 创建一个新进程(Windows 7、Windows Server 2008 R2/ 2012及之后)
2) 系统事件日志System Log (7035/7036)
Windows XP/7/ Windows Server 2003,当服务启动或停止时,服务控制管理器会记录到系统事件日志中的ID 7035。因此,如果关联的进程被注册为服务,则可发现执行痕迹。1
27035 Service Control Manager xxx服务成功发送一个开始控件。
7036 Service Control Manager xxx服务处于 正在运行/停止 状态
3) 计划任务日志TaskScheduler
计划任务日志中也可能发现可执行文件执行的痕迹。
四、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/