使用Sysmon进行威胁狩猎

使用Sysmon进行威胁狩猎

Sysmon (System Monitor) 是一种 Windows 系统服务和设备驱动程序,一旦安装在系统上,它就会在系统重启后继续驻留,以监视系统活动并将其记录到 Windows 事件日志中。Sysmon 记录的事件日志非常详细,提供了进程执行、文件系统活动、网络级事件、Windows 注册表事件和其他 Windows 特定进程(如命名管道)的可视化。

部署Sysmon

部署 Sysmon 非常简单。我们将从 Microsoft 网站下载软件包,然后为 sysmon 下载一个非常好的配置文件。

Sysmon 下载链接:https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon

Sysmon 需要一个配置文件,这样它才知道如何以及在系统上监控什么。我们也可以创建自己的 sysmon 配置,但有一些非常知名的配置是专门针对安全事件量身定制的,并且也映射到 Mitre 技术。 

这里直接使用 olaf hartongs sysmon 配置:

https://github.com/olafhartong/sysmon-modular

先从微软官网下载 sysmon。然后解压存档并以管理员身份打开 powershell 并导航到 sysmon 目录。我们建议将 sysmon 文件解压到“C:\Windows\”下,这样 sysmon 路径就变成了“C:\Windows\sysmon”。

Invoke-WebRequest -Uri https://raw.githubusercontent.com/olafhartong/sysmon-modular/master/sysmonconfig.xml -OutFile C:\Windows\\Sysmon\config.xml
.\Sysmon64.exe -accepteula -i config.xml
Get-Service -name Sysmon64

sysmon日志文件位置

cmd打开eventvwr找到

应用程序和服务日志 > Microsoft > Windows > Sysmon > Operational 

对应的文件的位置为

%SystemRoot%\System32\Winevt\Logs\

利用进程执行追踪恶意软件

Sysmon 不仅会显示正在运行的进程,还会显示进程何时结束,以及有关可执行文件或二进制文件本身的大量信息。它还为系统上运行的所有二进制文件提供哈希值,并列出它们是否已签名,从而可以轻松查看恶意代码是否试图模仿合法程序(例如 PowerShell 或其他内置 Microsoft 工具)。

Event ID 1: 进程创建

Sysmon 事件 ID 1 表示进程执行。每当内存中生成新进程时,Sysmon 中都会记录 ID 为 1 的事件。此事件对于安全事件非常重要,因为了解哪些程序或恶意软件在内存中运行可以为分析提供更多重要背景信息。

这里模拟执行黑客工具mimikatz抓取明文密码。

在sysmon的日志中查询事件ID1可以看到已经记录了mimikatz的执行记录。

在上面的例子中,我们可以看到一些在分析阶段提供价值的重要字段:

  • Mitre Technique ID
  • 进程 ID (可用作 IOC 并与内存分析相关联。)
  • 文件元数据 (可用于文件被重命名或篡改但元数据保持完整的情况。)
  • 命令行 (此事件中最有用的字段。它提供了完整的命令行,包括参数。)
  • 哈希 (执行的进程的哈希。我们可以使用威胁情报平台(如virustotal)自动验证该文件是否已知为恶意文件。)
  • 父进程 (这包括父进程 ID 和生成相关恶意进程的文件。提供了恶意进程如何执行的上下文。在上面示例中,可以看到是 powershell 创建的 mimikatz。)

可以尝试将mimikatz重命名并移动到其他位置执行,对比sysmon的记录。

修改文件名后重新运行,sysmon仍然记录了修改前的原始文件名。可以在 Windows 文件夹中看到一个名为 WinSvc 的文件。通常攻击者喜欢将他们的工具设置在合法的文件系统位置以逃避防御。

在上面的例子中,文件元数据立即表明生成的进程实际上是 mimikatz。攻击者经常制作自己的自定义工具或剥离已知的默认元数据,就像在上面的例子中,它显示公司名称、工具描述等。

其次假设没有文件元数据被篡改,并使该工具看起来像合法的工具。在这种情况下,我们可以利用威胁情报供应商的哈希值。不同的威胁行为者可能在不同的活动中使用同一个工具,并且它是已知的恶意工具。

狩猎恶意 C2 IP 和 域名

Event ID 3: 网络连接

Sysmon 事件 ID 3 事件日志 TCP 和 UDP 连接。每个网络事件都映射有一个进程 ID 和 ProcessGUID(为了方便关联)。

这些事件对于检测命令和控制流量(这可能表明攻击者正在发送窃取数据、传播恶意软件等的命令)以及了解哪些应用程序正在访问某些互联网资源非常有用。

可以看到记录了文件的完整路径、建立连接的源计算机的 IP 地址、目标 IP 地址和端口信息。

Event ID 22: DNS 查询

事件 ID 22用于与 DNS 相关的事件。当进程执行 DNS 查询时,无论结果成功还是失败都会生成此事件。记录 DNS 流量有很多好处,例如查找恶意远程访问工具、安全错误配置以及命令和控制流量。

事件22显示了DNS 查询的域名以及发起DNS查询的进程文件完整路径,对于排查定位非常方便。

真实的恶意软件经常使用 DNS 与 C2 服务器通信,DNS 也用于 DNS 隧道技术。如果我们看到进程对某个域及其随机子域的大量异常请求,那么绝对是 DNS 隧道的标志。

追踪文件系统变更

Event ID 11 : 文件创建 

事件 ID 11 记录文件创建事件。创建或覆盖文件时会记录文件创建操作。此事件对于监视自动启动位置(例如启动文件夹)以及临时目录和下载目录非常有用,这些目录是初始感染期间恶意软件落地的常见位置。

我们还可以利用此事件 ID 来监视奇怪的命名文件、不常见位置的文件等。例如,如果我们看到由奇怪的命名文件创建的文件,我们还可以使用此事件 ID 来关联这些文件之间的关系并创建时间线。

  • Image : 创建文件的父文件完整路径。
  • TargetFilename : 被创建的文件完整路径。

Event ID 15 : 文件创建流hash

该事件主要记录使用浏览器下载文件的记录。

此事件记录创建命名文件流的时间,并生成记录分配到该流的文件(未命名流)内容的哈希值以及命名流内容的事件。有些恶意软件变体会通过浏览器下载来删除其可执行文件或配置设置,此事件的目的是根据附加 Zone.Identifier“网络标记”流的浏览器捕获该变体。

使用Chrome下载文件时,在下载完成之前会先在文件名前加上 Zone.Identifier。ZoneId=3表示从互联网上下载的文件。

文件下载完成后再次看到目标文件名是记录事件的文件的完整路径,还看到了哈希值。如果没有 Zone.Identifier 关键字,则正确的哈希值表示这是原始文件,没有任何其他数据流。

追踪注册表变更

Event ID 12:注册表对象创建和删除

注册表项和值创建和删除操作映射到此事件 ID,这对于监视注册表自动启动位置的更改或特定恶意软件注册表修改非常有用。

每当在注册表中的任何位置创建或删除键值对时,都会在此处记录。因为攻击者经常篡改和操纵注册表以实现持久性、防御规避等。

使用msf的getsystem提权后,首先看到一个服务被创建,然后被删除。

Event ID 13:设置注册表值

为了分析为什么这是一个恶意事件,打开之前的事件 id 13 事件。

可以看到服务的执行被重定向到命名管道。上面的命令行参数是可疑的,这是 Metasploit 的行为。每当在 Metasploit 中使用 getsystem进行权限升级时,都会创建这类事件。

狩猎恶意命名管道

Event ID 17:命名管道创建

创建命名管道时会生成此事件。恶意软件通常使用命名管道进行进程间通信。它类似于网络套接字,可用于在主机和进程之间发送和接收信息。

例如,如果一个进程想要与另一个进程通信,它可以通过网络或使用文件发送消息,其中一个进程将消息写入该文件,另一个进程读取该消息。这使得它成为被恶意行为者和工具滥用的有价值的目标。

上面msf生成的reverse.exe执行过程中创建的管道。

我们可以使用 sysmon 事件 ID 17 来监视任何管道创建。管道创建是 Windows 中的合法用例,因为 Microsoft 和许多其他第三方应用程序经常使用它们。因此,我们需要监视由我们不希望创建管道的程序创建的任何命名管道。

Sysmon事件ID汇总

ID标签事件
1进程创建进程创建
2文件创建时间文件创建时间
3网络连接检测到网络连接
4Sysmon 服务状态变化(无法过滤)
5进程终止进程终止
6驱动程序负载驱动程序已加载
7图像加载图片已加载
8创建远程线程检测到 CreateRemoteThread
9原始访问读取检测到 RawAccessRead
10进程访问访问的进程
11文件创建文件已创建
12注册事件添加或删除了注册表对象
十三注册事件注册表值设置
14注册事件注册表对象已重命名
15文件创建流哈希文件流已创建
16Sysmon 配置变更(无法过滤)
17管道事件已创建命名管道
18管道事件命名管道已连接
19事件WMI 筛选器WMI Filter
20事件WMI 消费者
21事件WMI 消费者过滤器
22DNS查询DNS 查询
23文件删除文件删除已归档
24剪贴板更改剪贴板中的新内容
25流程篡改处理图像变化
26检测到文件删除文件删除已记录
27文件块可执行文件文件块可执行文件
28文件块粉碎文件块粉碎
29检测到可执行文件检测到可执行文件
赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。

发表评论