如何构建一个可自动记录入侵者并使用PowerShell进行查看的Windows安全监视器

PowerShellカテゴリを表すパンダのイラスト PowerShell

本文是利用AI创作的技术说明与实现示例。所发布的代码和步骤基于一手信息构建,但作者未在真实设备上进行运行验证。根据环境和版本的不同,运行结果可能会有所差异。在Windows环境中,本文基于一手信息整理了如何安全且实用地上架和管理从检测非法访问与登录失败、通过Webcam自动录像到邮件通知的机制。我们将依次确认手动执行、文件夹结构以及限制事项。

本机制的目的与整体架构

根据一手信息,本工具(SecurityMonitor-PowerShell)是一个监控Windows安全事件日志的系统,当检测到登录失败(事件ID 4625)时,它会自动通过FFmpeg开始录制Webcam,并向多个收件人发送邮件警报。

下图显示了一一手信息中所述的从监控到录像的处理流程。

flowchart TD
    A[Windows Security Event Log] -->|Event ID 4625 detected| B(Threshold reached: 2 failed attempts in 30s)
    B -->|Email alert sent| C[Gmail SMTP to multiple addresses]
    B -->|Webcam recording starts| D[FFmpeg DirectShow]
    D -->|Footage saved| E[C:\SecurityCam\footage\]
    E --> F[Stop via Ctrl+Alt+S or stop.ps1]

前提条件、注意事项与系统要求

在利用和配置本系统时,官方信息列出了以下环境和前期准备工作。

  • 操作系统: Windows 10 或 Windows 11

  • 权限: 需要以管理员身份运行PowerShell

  • 工具: FFmpeg(从官方网站获取)

  • 通知设置: 启用了两步验证的Gmail账户以及应用专用密码

  • 设备: 内置或外接摄像头(Webcam)

此外,一手信息中还记载了以下限制事项:

  • 仅在用户处于登录状态时运行(必须正在运行PowerShell)。

  • 在Windows登录界面无法访问摄像头(操作系统级别的限制)。

  • 通过 DirectShow 访问网络摄像头需要用户会话上下文。

  • 由于 Gmail 的应用专用密码保存在脚本中,因此需要妥善保管。

文件夹结构与文件布局

官方信息要求按照以下结构放置文件。

  • C:\SecurityCam\

    • monitor.ps1: 主监控脚本

    • hotkey.ps1: 热键监听器(用于 Ctrl+Alt+S)

    • stop.ps1: 手动停止脚本

    • footage\: 录制视频文件的保存位置

    • logs\

      • monitor.log: 所有事件日志

      • ffmpeg_error.log: FFmpeg 错误输出

设置步骤

根据原始信息,设置的主要流程如下。

  1. 安装 FFmpeg从官方构建网站获取并解压到指定路径。作为安装确认,请考虑使用以下命令。

    ffmpeg -version
    
  2. 确认网络摄像头名称为确定要使用的准确设备名称,请运行以下命令并检查视频设备部分。

    ffmpeg -list_devices true -f dshow -i dummy 2>&1
    
  3. monitor.ps1的设置根据您的环境更新脚本顶部的以下变量。

    • $gmailFrom: 发件人邮箱地址

    • $gmailPass: Gmail 应用专用密码

    • $alertTo1, $alertTo2: 警报发送目标地址

    • $webcam: 检测到的网络摄像机名称

    • $ffmpegPath: FFmpeg 可执行文件路径

  4. 创建文件夹并放置脚本使用 PowerShell 创建所需的目录。

    New-Item -ItemType Directory -Force -Path C:\SecurityCam\footage
    New-Item -ItemType Directory -Force -Path C:\SecurityCam\logs
    

运维与使用方法

由于【计划在 Windows 环境中进行确认】,以下步骤和输出结果均基于一手信息的说明进行解说。

要开始监控,请以管理员身份打开 PowerShell,切换到工作目录,临时更改执行策略,然后启动脚本。

cd C:\SecurityCam
Set-ExecutionPolicy Bypass -Scope Process -Force
.\monitor.ps1

如有必要,可在另一个窗口中启动热键监听器。

.\hotkey.ps1

若要手动停止录制,stop.ps1请运行,或在hotkey.ps1运行期间按Ctrl+Alt+S。

预期控制台输出示例

一手信息中给出了以下正常运行时的控制台输出示例。

  • 监控开始时的日志(显示阈值、回溯时间和轮询间隔)

  • 轮询一段时间内的登录失败尝试次数

  • 达到阈值(30秒内失败2次)时检测到“THRESHOLD HIT”,并发送邮件以及启动录制进程(显示 PID)

邮件警报格式

超过阈值时发送的邮件包含检测时间、计算机名、账户名、日期以及录制文件的保存路径,用以通知可能存在的未授权访问。

局限性与未来改进计划

第一手资料还提到了当前系统的局限性以及未来的改进方案。

  • 局限性:要求用户处于登录状态且PowerShell正在运行,由于操作系统级别的限制,无法在登录屏幕上访问网络摄像头。

  • 计划中的改进:

    • 转换为Windows服务以实现登录前监控

    • 使用Twilio发送短信警报

    • 录制完成时发送附带视频的电子邮件

    • 通过任务计划程序在登录时自动启动

    • Telegram机器人通知

总结

本文基于第一手资料,梳理了结合PowerShell、Windows事件日志和FFmpeg进行安全监控的机制的组成部分、设置和操作步骤。

执行前需要确认的要点和限制如下:

  • 需要以管理员权限运行PowerShell

  • 必须提前确认Gmail应用专用密码和网络摄像头名称

  • 由于Windows的规范,不支持在登录屏幕上录制网络摄像头视频

  • 由于未在实际设备上进行操作验证,因此需要针对各个环境进行测试

参考资料

文档信息

文章??
如何构建一个可自动记录入侵者并使用PowerShell进行查看的Windows安全监视器
?布日期
更新日期
来源
https://papanda925.com/?p=17956&lang=zh

?可: ?于本站?有相??利的正文及原??表,除非?有?明,可依据 CC BY 4.0 使用。本文可能包含使用生成式AI?建或??的内容。若代??有?可声明,或?接的GitHub???定了?可,?代?以??可?准。引用内容、第三方?料、?片及商?不在本?可范?内。 使用政策

标题和URL已复制