如何确定恶意软件是否在自己的电脑中执行过?

很不幸,你在自己的电脑里发现了一个恶意的可执行程序!那么问题来了:这个文件到底有没有执行过?

在这篇文章中,我们会将注意力放在Windows操作系统的静态取证分析之上,并跟大家讨论一些能够帮助你回答上面那个问题的方法以及证据源,其中涉及到的四大主要的证据源包括Windows Prefetch、注册表、日志文件以及文件信息。

Windows Prefetch

Windows Prefetch(Windows 预读取)是一个查找文件执行证据的好地方。根据微软的设计方案,Windows
Prefetch的功能就是允许那些经常需要使用到的程序打开得更加快。默认设置下,它会在预读取文件(存储路径为”C:\WindowsPrefetch”)中存储最近执行的128个文件的信息。一个预读取文件的命名规则为”可执行文件名+文件路径的哈希+后缀名.pf”,预读取文件中会保存文件的第一次和最后一次运行日期、文件路径和执行次数等信息。所以说,如果你的恶意软件文件名或路径哈希出现在了一个预读取文件(例如”
DABEARS.EXE-12F3B52A.pf”)之中,那就说明这个恶意文件曾在你的电脑中执行过了。

注:Windows Server默认禁用了预读取功能。

注册表

没错,Windows注册表可是一个巨大的“宝藏”,注册表可以算是Windows系统能够正常运行的基石了。虽然注册表非常“庞大”,但是我们接下来给出的表单却并没有那么复杂。因为如果要确定一个文件是否执行过,我们只需要检查几个重要的注册表键即可:

1. ShimCache

微软使用了ShimCache或“AppCompatCache”来识别应用程序的兼容性问题。缓存数据能够追踪文件路径、大小、最后修改时间和最后一次运行的时间。如果一个文件以Windows进程的形式执行过,那么它的信息将会被记录到ShimCache中,但是ShimCache中记录的文件信息并不能100%证明一个文件执行过,因为它只能证明Windows曾与该文件交互过。下面这个注册表键中包含了ShimCache数据:


  1. HKLMSYSTEMCurrentControlSetControlSessionManagerAppCompatibilityAppCompatCache(for XP)  
  2. HKLMSYSTEMCurrentControlSetControlSessionManagerAppCompatCacheAppCompatCache(for Non-XP) 

2. MUICache

当一个文件通过Windows Explorer(资源管理器)运行,程序Shell会在MUICache中创建一个入口。Windows使用MUICache来存储应用程序名以及其他相关信息,获取来的信息主要存储在下面的注册表键中:


  1. HKCUSoftwareMicrosoftWindowsShellNoRoamMUICache(for XP, 2000, 2003)  
  2. HKCUSoftwareClassesLocal SettingsSoftwareMicrosoftWindowsShellMuiCache(for Vista, 7, 2008) 

3. UserAssist

UserAssist可以追踪可执行程序以及资源管理器中打开的链接,UserAssist键能够追踪文件的最后一次执行时间以及执行次数,并将信息存储在下面这个注册表键中:


  1. HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerUserAssist 

UserAssist键的值对应了可执行程序的名称以及文件路径,并使用了ROT13加密。因此,如果你想直接通过搜索关键字来查找文件执行的证据的话,在不解码的情况下是无法做到的。目前也有很多工具可以解密这个注册表键,例如RegRipper
userassist.pl插件。

日志文件

为了确定一个文件是否执行过,我们还可以根据日志文件的分析结果来判断。首先我们来看一看Windows System Event
Log(系统事件日志),因为这个日志文件记录了服务的启动信息。下图显示的事件(Event
ID=”7035″)信息表明,一个管理员(SID=”-500″)运行了PSEXECSVC远程执行服务:

当一个服务启动时,它通常会执行ImagePath中定义的文件或一个已加载的服务DLL。比如说,”Netman”服务在执行时使用了一个合法文件”netman.dll”。但是,如果注册表中的ServiceDll(例如”tabcteng.dll”)包含一条指向后门的路径,那么”Netman”服务将会执行”tabcteng.dll”。所以,你可以通过分析ImagePath和ServiceDll的有效性来判断是否有恶意服务启动过。

如果Windows Event Log(事件日志)的审计设置开启了Audit Process
Tracking(审计进程追踪)功能,那么Windows Security Event
Log(安全事件日志)中将会记录大量关于进程的信息,而这些信息绝对能够证明一个文件是否执行过。下面这两张图片显示了恶意文件、相关进程ID、父进程ID和用户名,这些信息可以帮助我们进行进一步分析:

XP EventID 592 – 进程创建:

Windows Vista+记录下了类似的进程创建事件,EventID为4688:

在更新版本的Windows中,审计功能所能记录的信息将更加精确化,并且微软从Windows Server 2008 R2以及Windows 7中将这个功能整合到了Group Policy(组策略)中。

除此之外,基于主机的IPS或反病毒产品日志同样可以表明一个文件是否执行过,或者曾经尝试执行过。下图给出的是McAfee Access Protection日志中记录下的一次访问事件样本:

Windows Scheduled Task Log(计划任务日志)可以帮助我们判断攻击者是否使用了Windows的计划任务功能来运行恶意软件。计划任务的信息会被记录在一个名叫”SchedLgU.txt”的日志文件中:

在Windows Vista+平台中,计划任务的执行信息还会记录在”Microsoft-Windows-TaskScheduler/Operational”日志中:

最后,如果一个程序崩溃了,那么Dr.Watson日志可以记录下恶意任务的运行信息:

文件功能

另一种判断文件是否运行过的方法就是寻找可疑的输出文件。当你在分析一个恶意文件时,它是否会创建任何的数据呢?比如说,如果你发现的这个恶意文件是一个键盘记录器,然后你又在系统中发现了键盘记录文件,则说明攻击者已经执行过这个keylogger了。如果恶意软件能够与特定的域名进行链接,那么浏览器的历史记录中肯定也会记录下相关域名。下表中显示的是我们在浏览器历史纪录中捕捉到的样本,这个后门样本使用了两种通讯机制:

想要判断恶意文件是否执行过,我们可以分析文件的功能并在磁盘中寻找相应功能的运行结果/证据。分析恶意软件的功能不仅可以帮助我们了解攻击者的动机和最终目标,而且还有可能帮我们找出其他相关的恶意文件。

注:如果你在自己的系统中发现了恶意的可执行文件,别忘了先将当前系统内存中的数据导出,你可以使用 MandiantRedline服务 捕捉并分析内存数据。

作者:佚名
来源:51CTO

时间: 2024-10-23 15:28:02

如何确定恶意软件是否在自己的电脑中执行过?的相关文章

Windows 8如何快速查找和删除电脑中的病毒

  第一.使用 Windows Defender 扫描你的电脑 通过以下方式打开"Windows Defender":从屏幕的右边缘向中间轻扫,点击"搜索"(如果使用鼠标,则指向屏幕的右上角,然后将指针向下移动,再单击"搜索"),在搜索框中输入 Defender,然后依次点击或单击"应用"和"Windows Defender". 在"扫描选项"下,选取要运行的扫描类型: "快速

电脑中通过修改注册表解决网页无法添加到收藏夹的方法

  电脑中通过修改注册表解决网页无法添加到收藏夹的方法.最近有不少用户反映在电脑中出现了无法添加网页到收藏夹的问题,尝试了各种方法都无法解决这个问题.对此,在接下来的内容中,小编为大家提供了一种通过修改注册表解决网页无法添加到收藏夹的方法,大家可以参考一下. 1.按Win+R打开运行,输入regedit并按回车键; 2.在注册表编辑器依次展开HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/UserShell

电脑中怎么将360浏览器中收藏的网页导入到Edge浏览器中

  电脑中怎么将360浏览器中收藏的网页导入到Edge浏览器中          1.打开360浏览器,点击左上角的"收藏"; 2.打开下拉菜单后点击"导入/导出"; 3.在"导出收藏夹"中点击"导出到IE浏览器"; 4.稍等片刻后会提示导出成功,点击确定,这样,360浏览器中收藏的网页就导入到IE浏览器中了; 5.打开Edge浏览器,点击打开右上角的菜单; 6.点击"导入收藏夹"按钮; 7.勾选"

win7旗舰版电脑中的IE浏览器无法打开站点怎么办?

  可以说,在win10系统之前,咱们所有的Windows系统版本中所内置的浏览器都是IE浏览器,十多年的时间,想必大家对于这款浏览器也十分的熟悉了吧?虽然很多用户不大喜欢这款浏览器,但是毋庸置疑,咱们Windows系统用户中还是有不少IE浏览器的拥护者的,在win8系统中是这样的,在win7 64位旗舰版系统中也是这样的.但是最近,却有不少用户反应说,在自己的win7旗舰版电脑中使用IE浏览器无法打开站点了,那么这是什么问题造成的呢?这个问题又要如何解决呢?下面,小编就详细的介绍一下吧! 第一

电脑中如何移除火狐Firefox浏览器中不需要的组件

  电脑中如何移除火狐Firefox浏览器中不需要的组件?我们知道在火狐Firefox浏览器中可以安装一些插件,来为浏览器增加更多功能.如果想要删除火狐浏览器中已经安装的不需要的组件,那么在电脑中具体应该如何操作呢?这时可以按照下面提供的方法步骤进行设置. 1.打开火狐Firefox浏览器,右击标题栏,勾选显示菜单栏; 2.点击菜单栏中的工具--附加组件; 3.打开附加组件管理器后,点击最左侧的组件小图标; 4.找到不需要使用的组件,点击右侧的"移除"按钮; 5.移除组件完成后,会显示

win7电脑中如何删除收藏夹里的链接文件

  关于win7电脑中的收藏夹,想必不用小编多说大家也知道是干什么用的吧?每次大家若是有什么心仪的网站,都可以直接点击收藏,将它们保存到收藏夹中,不过对于一些不爱整理的朋友来说,这也不是一件很好的事,因为久而久之你会发现,里面的链接文件会变得非常的多,甚至会让你的电脑内存被消耗殆尽,那么有什么办法可以快速的彻底的删除掉一些不需要的链接文件呢?其实,咱们通过注册表就可以办到了!下面,小编就以win7 32位系统为例,为大家介绍一下吧! 1.首先,咱们需要打开电脑的注册表编辑器,只需要同时按下win

如何在win7旗舰版电脑中删除U盘使用历史记录

  1.咱们win7旗舰版电脑中并没有自带的工具可以做到这一点,咱们需要借助一款叫做usbviewer工具的软件,关于这个软件,大家可以自行到网上去下载,非常的方便. 2.之后,咱们将工具解压安装,然后双击其中的一个名为UsbViewer.exe应用程序,如下图中所示. 3.之后,咱们就可以打开该软件了,出现如下图中所示的窗口,咱们点击上方的"查看痕迹",接下来,窗口中就会出现win7旗舰版电脑中所有的USB使用过的痕迹. 4.之后,咱们点击上方窗口中的清楚痕迹,就可以看到一个下滑菜单

电脑中HP Designjet Z5200进行固件升级的操作方法

  HP Designjet Z5200是一款大幅面打印机,有用户需要在特殊情况下在电脑中使用这样的大幅面打印机进行打印.而有时需要对HP Designjet Z5200打印机进行固件升级,那么具体应该如何进行操作呢?有疑问的朋友这时就可以参考一下接下来提供的操作步骤. 1.在IE地址栏内输入Z5200的IP地址,进入EWS界面,点击设置--固件更新--选择文件; 2.浏览到固件文件夹中,选择.fmw文件并打开; 3.然后点击点击右下角的"更新"; 4.添加固件文件后就可以进行固件更新

Asp.net制作的网页在平板电脑中运行,如何使调出软键盘后使其覆盖到页面上

问题描述 Asp.net制作的网页在平板电脑中运行,如何使调出软键盘后使其覆盖到页面上 把网页在平板中运行后,当我点击文本框的时候,平板中自动调出了软键盘,但把我的页面的挤在了上面,我想让软键盘只是覆盖在页面上,网页形状不变,麻烦各位大神啦,最好有代码,谢谢 解决方案 这个是浏览器和平板操作系统的行为,改不了.变通的办法是抑制默认的键盘弹出,用你的网页自己模拟一个软键盘 解决方案二: onfocus事件中直接写blur就可以隐藏了..http://stackoverflow.com/questi