发布于2022年11月8日2年前 0x00 前言 从渗透的角度来说,当你获得一个Windows主机的权限时,你需要充分了解这个Windows主机的信息,文件执行记录是很重要的一部分。 从防御的角度来说,文件执行记录包含了系统的重要信息,需要清除。 因此,本文将尝试整理Windows主机(Win7及以上)常见文件执行记录的位置,尝试获取并清除单个记录,分析利用思路,总结防御方法。 参考链接: https://blog . 1234 n6 . com/2018/10/available-artifacts-evidence-of . html?m=1 https://xz.aliyun.com/t/3067#toc-5 0x01 简介 本文将介绍以下内容: 从日志中获取文件执行记录 从注册表获取文件执行记录 从文件中获取文件执行记录。 示例测试 和防御思想。 0x02 从日志获得文件执行记录 1、进程创建(ID:4688) 使用条件: 系统默认关闭该功能,需要手动开启。 策略位置:计算机配置-策略- Windows设置-安全设置-高级审计配置-详细跟踪 策略名称:审计流程创建 获取日志信息的命令行: wevtutil QE security/rd:true/f:text/q:' Event[System[(Event id=4688)]]' 清除记录的方法: 要清除单个日志,请参考上一篇文章: 《渗透技巧——Windows单条日志的删除》 2、Microsoft-Windows-Application-Experience Program-Inventory 参考资料: http://journeyintoir . blogspot . com/2014/03/exploring-program-inventory-event-log . html 800(软件活动总结) 903 904(新应用程序安装) 905 906(更新的应用程序) 907 908(已删除应用程序)。 获取日志信息的命令行: 微软视窗-应用程序-体验/程序-清单 3、Microsoft-Windows-Application-Experience Program-Telemetry 获取日志信息的命令行: 微软视窗-应用-体验/程序-遥测 0x03 从注册表获得文件执行记录 1、ShimCache 参考资料: https://www . fire eye . com/blog/threat-research/2015/06/caching _ out _ the _ val . html 用于记录Windows系统程序执行时的兼容性问题。 位置: HKEY _ LOCAL _ MACHINE \ SYSTEM \ current Control set \ Control \ Session Manager \ AppCompatCache XP最多保存96条记录,Win7及以上版本最多保存1024条记录。 记录以下内容: 文件路径 上次修改时间 执行了吗? 注: ShimCache不仅记录exe文件的执行情况,还记录exe文件同一目录下的文件(如果文件没有执行,Executed的属性为no) 数据以固定格式保存,存储结构可以称为: https://www . fire eye . com/content/dam/fire eye-www/services/freeware/shim cache-白皮书. pdf 解析工具 (1) 开放源代码(c#) https://github.com/EricZimmerman/AppCompatCacheParser/ 使用示例: 读取当前系统的注册表并将结果输出到指定的路径: AppCompatCacheParser.exe-CSV c:\测试 输出根据上次修改时间排序: AppCompatCacheParser.exe-CSV c:\ test-t 指定读取系统文件并输出结果的路径: AppCompatCacheParser.exe-CSV C:\ test-h C:\ Windows \ System32 \ config \ SYSTEM (2) 开放源代码(python) 如果想先导出注册表文件,然后在另一个系统中获得解析结果,可以使用python中实现的脚本: https://github.com/mandiant/ShimCacheParser 使用示例: reg export ' HKLM \系统\当前控制集\控制\会话管理器\AppCompatCache' ShimCache.reg shimcacheparser . py-o out . CSV-r c:\ test \ shim cache . reg-t 通过系统文件导出结果: shimcacheparser . py-o out . CSV-I C:\ Windows \ System32 \ config \ SYSTEM-t 清除记录的方法 ShimCache将仅在系统重新启动后更新(注销当前用户将不会更新) 也就是说,有两种方法可以清除该系统从启动到关机的ShimCache记录: (1)修改注册表 备份当前注册表: reg export ' HKLM \系统\当前控制集\控制\会话管理器\AppCompatCache' ShimCache.reg 系统重新启动后,恢复注册表: reg导入ShimCache.reg (2)非正常关机 跳过写入注册表的操作,无法记录这个系统从启动到关机的记录。 (3)修改内存。 (理论上可行) 2、UserAssist 参考资料: https://www。4n6k。com/2013/05/用户协助-法医-时间表。超文本标记语言 可以用来记录Windows操作系统操作系统系统程序执行的次数和最后一次执行时间 位置: 当前用户: HKEY _当前用户\软件\微软\ Windows \当前版本\资源管理器\用户助手 所有用户: HKEY _用户\ \软件\微软\ Windows \当前版本\资源管理器\用户助手 子健的名称使用ROT-13加密(解密比较简单) 记录实时更新 解析工具 (1) 命令行解析 https://www.nirsoft.net/utils/userassist_view.html 用法示例: UserAssistView.exe/stext出局。文本文件(textfile) (2) 源代码开源(c#) https://blog.didierstevens.com/programs/userassist/ 清除记录的方法 清除对应的注册表键值 3、MUICache 参考资料: http://什么-什么时候-怎样。com/windows-法证-分析/注册表-分析-窗口-取证-分析-第8部分/ 用来记录可执行程序的扩展名文件的文件名称,在注册表中保存可执行程序的扩展名文件的绝对路径和对应可执行程序的扩展名文件的文件名称 位置: 当前用户: HKEY _当前_用户\软件\类\本地设置\软件\微软\Windows\Shell\MuiCache 所有用户: HKEY _用户\ \软件\类\本地设置\软件\微软\Windows\Shell\MuiCache 数据未加密 记录实时更新 解析工具 (1) 命令行解析 http://www.nirsoft.net/utils/muicache_view.html 用法示例: MUICacheView.exe/stext出局。文本文件(textfile) (2)直接查询注册表 注册表查询“HKEY当前用户\软件\类\本地设置\软件\ Microsoft \ Windows \ Shell \ mui缓存" 清除记录的方法 清除对应的注册表键值 4、RunMRU 参考资料: http://www。法医焦点。com/a-forensic-analysis-of-the-windows-注册表 保存输入赢你启动程序的历史记录 位置: 当前用户: HKEY _当前用户\软件\微软\ Windows \当前版本\资源管理器\RunMRU 所有用户: HKEY _用户\ \软件\微软\ Windows \当前版本\资源管理器\RunMRU 数据未加密 记录实时更新 解析工具 (1)直接查询注册表 注册表查询“HKEY当前用户\软件\ Microsoft \ Windows \当前版本\资源管理器\RunMRU " 清除记录的方法 清除对应的注册表键值 5、AppCompatFlags Registry Keys 参考资料: https://号航班。博格斯波特。com/2013/12/revealing-program-compatibility。超文本标记语言 保存程序执行记录 位置: HKLM软件\ Microsoft \ Windows NT \当前版本\ AppCompatFlags \ Layers HKCU软件\ Microsoft \ Windows NT \当前版本\ AppCompatFlags \ Layers HKCU软件\ Microsoft \ Windows NT \当前版本\ AppCompatFlags \兼容性助手\持续 HKCU软件\ Microsoft \ Windows NT \当前版本\ AppCompatFlags \兼容性助手\商店 解析工具 (1)直接查询注册表 注册表查询“HKLM”软件\微软\ Windows NT \当前版本\应用兼容标志\层" 注册表查询“HKCU”软件\微软\ Windows NT \当前版本\应用兼容标志\层" 注册表查询“HKCU”软件\ Microsoft \ Windows NT \当前版本\ AppCompatFlags \兼容性助手\持续" 注册表查询“HKCU”软件\ Microsoft \ Windows NT \当前版本\ AppCompatFlags \兼容性助手\商店" 清除记录的方法 清除对应的注册表键值 0x04 从文件获得文件执行记录 1、Prefetch 参考资料: https://www。forensicmag。com/article/2010/12/decoding-预取文件-取证目的-第1部分 预读取文件夹,用来存放系统已访问过文件的预读信息,能够加快系统的启动速度 记录文件运行次数、上次执行时间、哈希等 查看该功能是否开启: reg query ' HKEY _ LOCAL _ MACHINE \ SYSTEM \ current Control set \ Control \ Session Manager \ Memory Management \ prefetch parameters '/v EnablePrefetcher 0=禁用 1=仅启用应用程序启动预取 2=仅启动预取已启用 3=应用程序启动和引导预取均已启用 位置: c:\ Windows \预取 数据以固定格式保存,扩展名为脉波频率(脉冲频率的缩写) 解析工具 (1) 命令行解析 源代码开源(c#) https://github.com/EricZimmerman/PECmd 用法示例: PECmd.exe-d C:\ Windows \预取- csv c:\temp 生成两个文件"时间" _PECmd_Output.csv和"时间" _PECmd_Output_Timeline.csv "时间" _PECmd_Output.csv保存详细信息 "时间" _PECmd_Output_Timeline.csv只保存文件的名称列表 PECmd.exe-d C:\ Windows \预取- json c:\temp 生成多个json文件,每个pf文件对应一个json文件。 清除记录的方法 删除文件名对应的pf文件 2、Amcache 参考资料: https://journeyintoir . blogspot . com/2013/12/revealing-recentfilecachebcf-file . html http://www . swift forensics . com/2013/12/amcachehve-in-windows-8-gold mine-for . html 用于跟踪应用程序与不同可执行文件的兼容性。 数据以固定格式保存。 位置: Win7: c:\ Windows \ app compat \ Programs \ recentfile cache . BCF 只记录文件名 Win8及以上版本: c:\ Windows \ app compat \ Programs \ am cache . hve 记录创建时间、最后修改时间、SHA1和一些PE头信息。 注: Win7系统安装KB2952664后也会支持Amcache.hve,也就是说RecentFileCache.bcf和Amcache.hve都包含文件执行记录。 解析工具(RecentFileCache.bcf) (1) 开放源代码(c#) https://github.com/jwhwan9/dumpBCF (2) 开放源代码(python) https://github.com/prolsen/recentfilecache-parser 使用示例: RFC parse . py-f C:\ Windows \ app compat \ Programs \ recentfile cache . BCF 解析工具(Amcache.hve) (1) 命令行解析 开放源代码(c#) https://github.com/EricZimmerman/AmcacheParser 使用示例: AmcacheParser.exe C:\ Windows \ app compat \ Programs \ am cache . hve-CSV C:\ test 注: 在某些情况下,它无法导出,表明系统正在占用文件Amcache.hve (2) 开放源代码(python) https://github . com/williballenthin/python-registry/blob/master/samples/am cache . py (3) 开放源代码(powershell) https://github . com/Yoda 66/getam cache/blob/master/Get-am cache . PS1 清除记录的方法(RecentFileCache.bcf) 改变文件 详细方法会在下篇文章《渗透技巧——RecentFileCache.bcf和Amcache.hve单条记录的清除》中介绍。 清除记录的方法(Amcache.hve) 改变文件 详细方法会在下篇文章《渗透技巧——RecentFileCache.bcf和Amcache.hve单条记录的清除》中介绍。 3、JumpLists 参考资料: https://articles . forensicfocus . com/2012/10/30/forensic-analysis-of-windows-7-jump-lists/ 用于记录用户最近使用的文档和应用程序,通常显示在任务栏中。 位置: % APPDATA % \ Microsoft \ Windows \ Recent 数据是未加密的。 记录实时更新 解析工具 (1) 直接查询文件夹 目录% APPDATA % \ Microsoft \ Windows \ Recent 清除记录的方法 清除路径下的文件。 4、SRUM Win8及以上系统支持 参考资料: https://www . sans . org/cyber-security-summit/archives/file/summit-archive-1492184583 . pdf 包括各种信息,包括程序执行时间。 数据加密 记录实时更新 解析工具 (1) 命令行解析 开放源代码(python) https://github.com/MarkBaggett/srum-dump 使用示例: 需要模板文件SRUM_TEMPLATE.xlsx。 SRUM _ dump . exe-SRUM _ INFILE c:\ Windows \ system32 \ sru \ srudb . dat 注: 在测试的过程中,我发现上面的命令有问题,执行失败,提示ese文件没有找到:c:\ windows \ system32 \ sru \ Sr udb . dat。 有必要在解析之前将SRUDB.dat复制到另一个目录。 SRUM _ dump . exe-SRUM _ INFILE Sr udb . dat 清除记录的方法 (留到后面介绍) 0x05 防御建议 不同的系统支持不同的方法,如下图所示: 图片摘自33591234 n6-my . SharePoint . com/:x:/p/Adam/eu 3 f 3c 6 ndpssqx 1 ea 1 sfwb _ R _ fra 4 TJ 4 C1 fr 6 wjlwiea?e=GRyu7r 从防御的角度来说,可以选择定期清理系统中的文件执行记录。 从取证的角度来说,攻击者可以修改和删除文件执行的记录,所以不能盲目相信这些记录。 0x06 小结 本文整理了Windows主机(Win7及以上)常见文件执行记录的位置,通过实际测试验证了Windows系统可记录的内容,并分析了清除部分记录的方法。 留下回复
创建帐户或登录后发表意见