当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Windows 中使用进程跟踪审核策略

作者:精品下载站 日期:2024-12-14 23:35:22 浏览:14 分类:玩电脑

在 Windows 中使用进程跟踪审核策略


在本文中,我们将展示如何在 Windows 中启用进程跟踪审核策略,以便找出计算机上正在运行哪些程序。通常,管理员会被要求提供有关用户运行哪些应用程序、上次运行特定程序的时间等信息。此外,此功能在您跟踪恶意软件和威胁活动时也很有用。您可以从 Windows 事件日志中获取此信息,并使用 PowerShell 制作方便的报告。

您可以使用进程跟踪审核策略来跟踪 Windows 应用程序进程的启动/停止事件。

  1. 打开本地组策略编辑器:

    gpedit.msc

    如果要在 Active Directory 域中的计算机上启用进程审核策略,请使用域组策略管理控制台,

    gpmc.msc
  2. 转到以下 GPO 部分:计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 审核策略;

  3. 启用审核流程跟踪策略并选中成功复选框;

    之前,我们展示了如何使用审核事件来找出计算机上帐户锁定事件的来源进程。

    [玩转系统] 在 Windows 中使用进程跟踪审核策略

  4. 使用以下命令保存更改并更新计算机上的本地 GPO 设置:

    gpupdate /force

打开事件查看器(

eventvwr.msc

)并展开 Windows 日志 -> 安全。现在,当任何应用程序(进程)启动时,事件ID为4688的进程创建事件将出现在日志中。

A new process has been created.

事件信息包含运行程序的用户名(

Creator Subject

),进程可执行文件的名称(

New Process Name

),以及运行该应用程序的父进程(

Creator Process Name

)。

[玩转系统] 在 Windows 中使用进程跟踪审核策略

进程终止事件(

A process has exited

)的 EventID 4689。之前,我们展示了如何使用这些事件和任务计划程序触发器在 Windows 中运行/停止应用程序时运行脚本(执行操作)。

请注意,当您启用上述审核进程跟踪策略时,与进程相关的所有事件都会保存到安全日志中。如果您想减少事件查看器中的事件数量并仅保存有关进程创建事件的信息,您可以禁用此策略并仅启用高级审核策略项:审核进程创建(Windows 设置 -> 安全设置 -> 高级审核策略配置 -> 系统审核策略 -> 详细跟踪)。

[玩转系统] 在 Windows 中使用进程跟踪审核策略

要包含有关进程创建选项(应用程序运行时使用的参数)的信息,请在“计算机配置”->“管理模板”->“系统”->“审核进程创建”下启用在进程创建事件中包含命令行选项。

[玩转系统] 在 Windows 中使用进程跟踪审核策略

启用该策略后,您将在进程命令行中看到用于启动程序的参数。

[玩转系统] 在 Windows 中使用进程跟踪审核策略

请务必增加安全日志文件的最大大小(默认大小为 20MB)。这允许在 Windows 中存储进程历史记录更长的时间。为此,请打开安全日志属性并增加最大日志大小 (KB) 值。

[玩转系统] 在 Windows 中使用进程跟踪审核策略

您可以使用事件查看器过滤器来分析用户运行的应用程序。然而,这不是很方便。下面,我将展示一些 PowerShell 脚本,这些脚本可让您轻松获得包含用户运行应用程序历史记录的报告。在本例中,我使用 Get-WinEvent 命令从事件查看器日志中获取事件:

$processhistory = @()
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
$events=Get-WinEvent -FilterHashtable @{
LogName = 'Security'
starttime="$today"
ID = 4688
}
foreach ($event in $events){
$proc = New-Object PSObject -Property @{
ProcessName=$event.Properties[5].Value
Time=$event.TimeCreated
CommandLine=$event.Properties[8].Value
User=$event.Properties[1].Value
ParentProcess=$event.Properties[13].Value
}
$processhistory += $proc
}
$processhistory| Out-GridView

此 PowerShell 脚本选择今天的所有进程启动事件,并在 Out-GridView 表中显示进程列表、其启动时间和用户名。

[玩转系统] 在 Windows 中使用进程跟踪审核策略

您可以使用 PowerShell 管理 Windows 中的进程。

您可以使用必须的对象数组来执行不同的审计查询。

例如:

  • 要查找运行特定应用程序的所有用户:

    $proc_name="notepad++.exe"
    $processhistory | where-object {$_.ProcessName -like “*$proc_name*”}|out-gridview

    [玩转系统] 在 Windows 中使用进程跟踪审核策略

  • 要显示特定用户今天运行的应用程序列表:

    $username="aberg"
    $processhistory | where-object {$_.User -like “*$username*”}|out-gridview

我们经常使用此类脚本来分析用户在 RDS 场主机上运行的应用程序。

在 Windows 中,您还可以在 %SystemRoot%\AppCompat\Programs\Amcache.hve 文件中找到运行程序的历史记录。该文件在 Windows 中被锁定,只有从 LiveCD 或启动/安装介质启动计算机时才能查看该文件。该文件包含启动和安装/卸载标签,以及可执行校验和 (SHA1)。您可以使用第三方工具(例如regripper)将此文件从二进制格式转换为文本格式。

请注意,PowerShell 还会在文本日志文件中保存您运行的命令的历史记录。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯