跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

渗透技巧—— Windows系统文件执行记录的获取与清除

精选回复

发布于

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 防御建议

不同的系统支持不同的方法,如下图所示:

4-1.png

图片摘自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系统可记录的内容,并分析了清除部分记录的方法。

留下回复

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。