分类难度
DFIRVery Easy
Sherlock Scenario
In this Sherlock, you will familiarize yourself with Sysmon logs and various useful EventIDs for identifying and analyzing malicious activities on a Windows system. Palo Alto's Unit42 recently conducted research on an UltraVNC campaign, wherein attackers utilized a backdoored version of UltraVNC to maintain access to systems. This lab is inspired by that campaign and guides participants through the initial access stage of the campaign.

学习目标:

  • 熟悉 Sysmon 日志和 常用的 EventID
  • 识别和分析 Windows 系统上的恶意活动
  • UltraVNC 的后门版本

前置知识

Sysmon 是一项额外的服务,可以安装在 Windows 系统上,以提供更多的系统活动日志记录。它对于收集诸如具有完整命令行的进程事件、进程映像的哈希值、网络连接和注册表修改等内容特别有用。Sysmon 是高度可配置的,因此给定系统上将出现什么样的日志将取决于它的配置.
EventIds:
Microsoft EventIDs

ID事件
1Process creation进程创建
2A process changed a file creation time进程修改文件创建时间
3Network connection网络连接
4Sysmon service state changedSysmon 服务状态改变
5Process terminated进程终止
6Driver loaded驱动已加载
7Image loaded镜像已加载
8CreateRemoteThread进程创建线程
9RawAccessRead
10ProcessAccess进程访问
11FileCreate文件创建
12Registry Object create and delete创建和删除注册表对象
13Registry Vault set注册表值设置
14Registry Key and Value Rename注册表键值重命名
15FileCreateStreamHash
16ServiceConfigurationChange服务配置更改
17Pipe Created管道已创建
18Pipe Connected管道已连接
19WmiEventFilter activity detectedWmiEventFilter 活动检测
20WmiEventConsumer activity detectedWmiEventConsumer 活动检测
21WmiEventConsumerToFilter activity detected
22DNS query
23File Delete archived文件已删除(带存档)
24New content in the clipboard
25Process image change
26File Delete logged文件已删除(无存档)
27FileBlockExecutable
28FileBlockShredding
29FileExecutableDetected
255Error

Q: 怎么分析evtx文件?
A: 可以使用Windows自带的图形化界面事件查看器,或者命令行工具EvtxECmd.exe

Task 1

事件 ID 为 11 的事件日志有多少个?
使用事件查看器 进行过滤
2024-07-25T15:48:58.png
答案: 56
或者使用Powershell命令
Get-WinEvent -Path '.\Microsoft-Windows-Sysmon-Operational.evtx' -FilterXPath "*[System[(EventID=11)]]" | Measure-Object
再或者参考0xdf Blog,使用EvtxECmd.exe 进行分析

$ EvtxECmd.exe -f .\Microsoft-Windows-Sysmon-Operational.evtx --json .    // 生成一个json文件
// 使用 jq 处理数据 
$cat 20240725114336_EvtxECmd_Output.json | jq -sc 'group_by(.EventId) | map({EventId:.[0].EventId,count: length}) | .[]'
{"EventId":1,"count":6}
{"EventId":2,"count":16}
{"EventId":3,"count":1}
{"EventId":5,"count":1}
{"EventId":7,"count":15}
{"EventId":10,"count":1}
{"EventId":11,"count":56}
{"EventId":12,"count":14}
{"EventId":13,"count":19}
{"EventId":15,"count":2}
{"EventId":17,"count":7}
{"EventId":22,"count":3}
{"EventId":23,"count":26}
{"EventId":26,"count":2}

Task 2

每当在内存中创建一个进程时,都会记录一个事件 ID 为 1 的事件,其中包含命令行、哈希值、进程路径、父进程路径等详细信息。这些信息对于分析人员来说非常有用,因为它允许我们查看所有程序在系统上执行,这意味着我们可以发现正在执行的任何恶意进程。感染受害者系统的恶意进程是什么?
每创建一个进程都会记录一个EventID 为 1 的事件
使用同Task 1的方法,使用 事件查看器进行过滤 EventID = 1 的事件,
在这类事件中,发现执行了命令CommandLine: "C:\Users\CyberJunkie\Downloads\Preventivo24.02.14.exe.exe",通过浏览器搜索Preventivo24可以发现,这是一个恶意的程序。
哈希值:

Hashes:
SHA1=18A24AA0AC052D31FC5B56F5C0187041174FFC61,
MD5=32F35B78A3DC5949CE3C99F2981DEF6B,
SHA256=0CB44C4F8273750FA40497FCA81E850F73927E70B13C8F80CDCFEE9D1478E6F3,
IMPHASH=36ACA8EDDDB161C588FCF5AFDC1AD9FA 

结合一些云沙箱,如virustotal,AnyRUN等,输入hash即可查看文件是否为恶意文件(已被上传过)
答案:C:\Users\CyberJunkie\Downloads\Preventivo24.02.14.exe.exe
或者参考0xdf的方法:

$ cat .\20240408132435_EvtxECmd_Output.json | jq -c 'select(.EventId == 1)' > eventid1.json
$ cat .\eventid1.json | jq -s '.[0]'
$ cat .\eventid1.json | jq -s '.[] | [.TimeCreated, .PayloadData4, .ExecutableInfo, .PayloadData1, .PayloadData5]'
$ cat .\eventid1.json | jq -s '.[1]'

Task 3

哪个云驱动器被用来分发恶意软件?

Task 4

初始恶意文件在磁盘上创建的许多文件都带有时间戳(一种防御规避技术,更改文件创建日期以使其看起来很旧)。 PDF 文件的时间戳更改为多少?

Task 5

恶意文件在磁盘上删除了一些文件。 “once.cmd”在磁盘上的何处创建?请回答完整路径和文件名。

Task 6

恶意文件尝试到达虚拟域,很可能是为了检查互联网连接状态。它尝试连接到哪个域名?

Task 7

恶意进程尝试访问哪个 IP 地址?

Task 8

该恶意进程在使用 UltraVNC 后门变体感染 PC 后自行终止。该进程何时终止?

恶意软件来源分析

恶意软件会做什么? 根据恶意软件可能会做的事情,重点关注 文件事件(11)|(2),网络事件(3),DNS事件(22)
使用事件查看器过滤, 然后在进行分析,过滤方法同上:
事件ID为11,是创建文件; 事件ID为2,是修改文件的时间
恶意文件再被创建完成之后,一般都会被修改时间
(GUI 略)

// 文件创建的文件名和创建时间
$ cat 20240725114336_EvtxECmd_Output.json | jq -c 'select(.EventId == 11)'|jq -s '.[] | [.PayloadData4,.TimeCreated]'

通过命令执行的结果可以知道,这些文件几乎都是再时间"2024-02-14T03:41:58.4600817+00:00"附近创建的,包不正常的
其中存在一个文件C:\Users\CyberJunkie\AppData\Roaming\Photo and Fax Vn\Photo and vn 1.1.2\install\F97891C\WindowsVolume\Games\once.cmd (Task 5)

查看文件修改的时间

🍀 cat 20240725114336_EvtxECmd_Output.json | jq -c 'select(.EventId == 2)' | jq -s '.[] | [.PayloadData4,.PayloadData5,.PayloadData6,.TimeCreated]'

其中PDF文件的部分

└─🍀 cat 20240725114336_EvtxECmd_Output.json | jq -c 'select(.EventId == 2)' | jq -s '.[] | [.PayloadData4,.PayloadData5,.PayloadData6,.TimeCreated]' | grep pdf -A 4 -B 1 | jq -s
[
  [
    "TargetFilename: C:\\Users\\CyberJunkie\\AppData\\Roaming\\Photo and Fax Vn\\Photo and vn 1.1.2\\install\\F97891C\\TempFolder\\~.pdf",
    "CreationTimeUTC: 2024-01-14 08:10:06.029",
    "PreviousCreationTimeUTC: 2024-02-14 03:41:58.404",
    "2024-02-14T03:41:58.4101450+00:00"
  ]
]

初次创建文件的时间为2024-01-14 08:10:06(Task 4)
查看一下DNS 事件

└─🍀 cat 20240725114336_EvtxECmd_Output.json | jq -c 'select(.EventId == 22)' | jq -s '.[] | [.TimeCreated,.PayloadData4,.PayloadData3]'
[
  "2024-02-14T03:41:26.4441194+00:00",
  "QueryName: uc2f030016253ec53f4953980a4e.dl.dropboxusercontent.com",
  "Image: C:\\Program Files\\Mozilla Firefox\\firefox.exe"
]
[
  "2024-02-14T03:41:45.7793186+00:00",
  "QueryName: d.dropbox.com",
  "Image: C:\\Program Files\\Mozilla Firefox\\firefox.exe"
]
[
  "2024-02-14T03:41:58.7648370+00:00",
  "QueryName: www.example.com",
  "Image: C:\\Users\\CyberJunkie\\Downloads\\Preventivo24.02.14.exe.exe"
]

firefox是从d.dropbox.com下载的(不知道答案为什么是dropbox(Task 3))
访问了www.example.com(Task 6).

网络连接事件(3)的EventId值为3

└─🍀 cat 20240725114336_EvtxECmd_Output.json | jq -c 'select(.EventId == 3)' | jq -s '.[] |[.TimeCreated,.PayloadData4,.PayloadData6]'
[
  "2024-02-14T03:41:58.9054838+00:00",
  "SourceIp: 172.17.79.132",
  "DestinationIp: 93.184.216.34"
]

目的IP是93.184.216.34 (Task 7)
进程终止的EventId 值为 5

└─🍀 cat 20240725114336_EvtxECmd_Output.json | jq -c 'select(.EventId == 5)' | jq -s '.[] | [.TimeCreated,.ExecutableInfo]'
[
  "2024-02-14T03:41:58.7996518+00:00",
  "C:\\Users\\CyberJunkie\\Downloads\\Preventivo24.02.14.exe.exe"
]

终止事件的时间为2024-02-14 03:41:58 (Task 8)

总结

Symson 日志的分析最简单的方法是使用图形化界面事件查看器进行分析,但可以感觉到事件查看器在使用过程中很卡,可以使用EvtxECmd工具将evtx文件转化为json后,使用jq 对数据进行分析。需要对EventId的值和含义有了解。

Last modification:July 25, 2024
请我喝瓶冰阔落吧