前言
在不断变化的网络安全环境中,提前防范威胁是非常重要的。本文将以 Microsoft Office 宏病毒钓鱼为例,介绍如何使用 Sysmon 来获取和分析 Windows 系统日志,揭示隐藏的恶意或异常活动,了解入侵者和恶意软件如何在网络上运行。
Sysmon
Sysmon(系统监视器)是一项 Windows 系统服务,用以监视系统活动并将其记录到 Windows 事件日志中。它提供有关进程创建、进程篡改、管道连接、注册表更改等29种类型事件的详细信息,可以作为 SIEM 代理的一个重要探针。
Sysmon 的安装和卸载相当简洁,以管理员身份在命令提示符中执行下列命令即可,无需重启电脑。
sysmon64 -accepteula -i c:\windows\config.xml # 指定配置文件安装
sysmon64 -u # 卸载
安装后事件日志以 xml 格式(可使用 EvtxeCmd.exe 工具转换为 JSON 格式更利于批量分析处理)存储在 中,可通过事件查看器查看详细数据。刚安装好 Sysmon 后,就能观察到许多事件,从详细信息里可以简单看出事件是以进程为单位,以配置文件作为规则进行记录的。日志中包含进程中创建的进程及完整命令、进程映像文件的哈希、记录驱动程序或 DLL 的加载、记录磁盘和卷的读取访问、文件变更等详细数据。事件与事件之间可以根据父子进程关系、执行命令的镜像文件或进程 ID 进行关联。
默认的配置文件生成的日志非常多,不利于观察分析。笔者在网上找到了他人分享的 Sysmon 配置文件,可以过滤掉大量无用事件。当然,个人实际使用时还要根据主机环境和待检测的场景进行额外的适配工作,还可以基于事件ID进一步过滤,只留下比较关注的日志信息。
宏病毒
宏即指令集,是指将多个连续操作指令合并为单个指令并执行的功能。宏通常用于自动化和简化复杂的任务,可以通过简单的指令来执行一系列复杂的操作。
如果黑客在宏中嵌入了恶意代码,这样的宏就被称为宏病毒。大部分宏病毒都针对 Microsoft Office 等 Windows 平台下的文档。这是因为 Microsoft Office 在 Windows 操作系统上是非常普遍和常用的办公软件套件,支持宏功能,并且用户广泛使用 Office 文档进行日常工作。因此,黑客往往会选择针对这些常见的文档格式编写宏病毒,以便更容易地传播恶意代码。
示例1
Sub AutoOpen()
MsgBox "你的计算机已被感染!"
End Sub
示例2
Private Sub Workbook_Open()
Shell "calc.exe", vbNormalFocus
End Sub
支持宏的常用文件包括:
Microsoft Word文档(.doc .docm .docx .dot .dotm等)
Microsoft Excel表格(.xls .xlsx .xlsm .xlt .xltm .xlam等)
Microsoft PowerPoint演示文稿(.ppt .pptx .pptm .ppam .pot .potm等)
Microsoft Access数据库文件(.mdb .mde .accdb .accde .accdr等)
当前 Microsoft Office 版本默认禁止了宏的自动运行,除非用户手动启用,这显著降低了宏病毒的感染率。现代防病毒软件和邮件网关通常也能够检测并阻止含有恶意宏的文件。
尽管防护措施增强,宏病毒仍在使用,特别是在针对特定组织或个人的定向攻击(如钓鱼攻击)中。攻击者会诱导用户启用宏以执行恶意代码。例如,通过社会工程手段,攻击者可能声称启用宏是查看文档内容所必需的。或是在旧版 Office 或未更新的系统中,宏病毒能够轻易地发挥作用。本文以宏病毒攻击为例,介绍如何使用 Sysmon 识别和分析 Windows 操作系统上的恶意活动。
检测分析
基于 Office 宏病毒攻击,攻击者可能采取各式各样的利用方式,当然最直接的是钓鱼。本文我们使用 Office 宏文件进行钓鱼测试,钓鱼文件可以基于工具 msfconsole 生成,同时 Kali 上使用reverse_tcp 等待反连。这一部分不详细赘述,让我们直接来看 Sysmon 的日志记录。
Sysmon 在这一过程中记录的日志是比较多的,和 Office 宏文件钓鱼直接相关的存在以下两个事件:
1.创建进程
2624号(PID)进程创建了7336号进程。在(Microsoft Word应用程序)打开时创建了(宏中定义的随机名称)作为子进程。这显示Word文档中的宏功能被触发,导致执行了外部程序或脚本。
2.网络连接
7336号进程中执行了 TCP 网络连接,访问192.168.21.129的4444端口。这表明实际命令得到执行,靶机主动回连,远控成功执行,192.168.21.129主机获得了本机的shell。
至此,分析结束。
总结
本次实验中, Sysmon 对于 Windows 事件的记录是比较完整的,提供了一个可靠的进程行为日志和一个可用的主机溯源方法。不过也能看出其中存在两个问题,一是 Sysmon 产生的日志量比较大,需要合适的配置文件进行日志过滤;二是 Sysmon 本身不具备对其生成事件的分析能力,需要对接分析工具或 SIEM 平台。