分类难度
DFIREasy
您有机会在一家大型咨询公司担任初级 DFIR 顾问。但是,他们提供了技术评估供您完成。咨询公司 Forela-Security 希望评估您的 Windows 事件日志分析知识。我们认为 Cyber​​junkie 用户登录了他的计算机并可能采取了恶意操作。请分析给定的事件日志并报告。

Tasks

  1. Task1: cyberjunkie第一次成功登录他的计算机是什么时候? (UTC)
  2. Task2: 用户篡改了系统上的防火墙设置。分析防火墙事件日志以找出添加的防火墙规则的名称?
  3. Task3: 防火墙规则的方向是什么?
  4. Task4: 用户更改了计算机的审核策略。此更改政策的子类别是什么?
  5. Task5: 用户“cyberjunkie”创建了一个计划任务。这个任务的名字是什么?
  6. Task6: 为任务安排的文件的完整路径是什么?
  7. Task7: 该命令的参数是什么?
  8. Task8: 系统上运行的防病毒软件识别出威胁并对其执行操作。哪个工具被防病毒软件识别为恶意软件?
  9. Task9: 引发警报的恶意软件的完整路径是什么?
  10. Task10: 防病毒软件采取了什么行动?
  11. Task11: 用户使用Powershell执行命令。用户执行了什么命令?
  12. Task12: 我们怀疑用户删除了一些事件日志。哪个事件日志文件被清除?

附件下载完成解压后得到5个evtx文件

  1. Powershell-Operational.evtx:  系统上 PowerShell 活动的记录,可以包括执行的命令、运行的脚本以及执行期间生成的任何错误或警告。
  2. Security.evtx: 与系统上的安全事件相关的记录,包括用户身份验证、权限更改、帐户管理和安全策略更改。
  3. System.evtx: 捕获系统级事件,例如启动和关闭进程、驱动程序和服务故障、硬件配置更改以及系统资源利用率。
  4. Windows Defender-Operational.evtx - 记录 Windows Defender 的活动和状态,包括恶意软件检测、扫描、更新以及 Windows Defender 管理的任何其他安全相关事件。
  5. Windows Firewall-Firewall - 记录与防火墙相关的事件,例如允许和阻止的网络连接、规则更改以及防火墙服务启动和关闭事件。

工具推荐: EvtxECmd.exe,jq,grep 等。

  • 使用 EvtxECmd.exe将evtx格式转成json格式
EventId事件
4624成功登陆
2004windows防火墙添加一条规则
2005修改防火墙规则
2006删除防火墙规则
2010网络接口的配置文件发生修改
2033所有防火墙规则都被删除
2051和2033成对出现
4719系统审计策略更改
4698创建计划任务
1000反恶意软件扫描已开始
1001反恶意软件扫描已完成
1002反恶意软件扫描在完成之前已停止
1003反恶意软件扫描已暂停
1004反恶意软件扫描已恢复

分析过程

文件格式转换,并另存为all.json

.\EvtxECmd.exe -d E:\htb\Sherlocks\logjammer\Event-Logs\ --json .

(或者将上述evtx文件逐个转化为json文件,但这样做就需要知道每个文件的作用)

登陆成功相关

4624成功登陆

成功登陆的 EventId 为4624,因此只需要重点关注 EventId == 4624这个条件
在此之前,我们先看一下json日志的组成

└─$ cat Security.json | jq -s '.[0]'
{
  "PayloadData1": "SID: (S-1-5-21-3393683511-3463148672-371912004-1001)",
  "UserName": "DESKTOP-887GK2L\\CyberJunkie",
  "MapDescription": "Event log cleared",
  "ChunkNumber": 0,
  "Computer": "DESKTOP-887GK2L",
  "Payload": "{\"UserData\":{\"LogFileCleared\":{\"SubjectUserSid\":\"S-1-5-21-3393683511-3463148672-371912004-1001\",\"SubjectUserName\":\"CyberJunkie\",\"SubjectDomainName\":\"DESKTOP-887GK2L\",\"SubjectLogonId\":\"0x25235\"}}}",
  "Channel": "Security",
  "Provider": "Microsoft-Windows-Eventlog",
  "EventId": 1102,
  "EventRecordId": "13020",
  "ProcessId": 1320,
  "ThreadId": 9512,
  "Level": "Info",
  "Keywords": "0x4020000000000000",
  "SourceFile": "E:\\htb\\Sherlocks\\logjammer\\Event-Logs\\Security.evtx",
  "ExtraDataOffset": 0,
  "HiddenRecord": false,
  "TimeCreated": "2023-03-27T14:36:45.3077318+00:00",
  "RecordNumber": 1
}

EventId为事件ID,Payload为事件回显吧,TimeCreated为事件发送的时间
过滤用户cyberjunkie登录成功的日志,
使用select进行过滤出EventId==4624的事件,再配合test函数提取Payload字段中包含用户名cyberjunkie的日志,最后提取出对应的时间

$ cat all.json | jq -c 'select(.EventId == 4624 and (.Payload | test("cyberjunkie";"i"))) | .TimeCreated'
"2023-03-27T14:37:09.8798913+00:00"
"2023-03-27T14:37:09.8799405+00:00"
"2023-03-27T14:38:32.9374236+00:00"
"2023-03-27T14:38:32.9374588+00:00"

因此第一次登陆成功的时间为27/03/2023 14:37:09(Task 1)
或者使用jq的if语句进行过滤,效果同上

$ cat all.json | jq -c 'if .EventId == 4624 and (.Payload | test("cyberjunkie";"i")) then .TimeCreated else empty end'
"2023-03-27T14:37:09.8798913+00:00"
"2023-03-27T14:37:09.8799405+00:00"
"2023-03-27T14:38:32.9374236+00:00"
"2023-03-27T14:38:32.9374588+00:00"

防火墙相关

2004windows防火墙添加一条规则
2005修改防火墙规则
2006删除防火墙规则
2010网络接口的配置文件发生修改
2033所有防火墙规则都被删除
2051和2033成对出现

防火墙规则的添加、修改以及删除,应该在攻击者成功登陆后进行的,因此我们只需要过滤出登陆后添加的规则即可

cat all.json | jq -c 'select(.EventId == 2004 and .TimeCreated > "2023-03-27T14:37:09.8798913+00:00")' | jq -c '[.PayloadData1,.PayloadData2,.PayloadData3,.PayloadData4,.PayloadData5]'
[": Microsoft Edge","","Direction: Inbound","Action: Block","Protocol: All"]
[": Microsoft Edge","","Direction: Outbound","Action: Block","Protocol: All"]
[": Metasploit C2 Bypass","","Direction: Outbound","Action: Allow","Protocol: TCP"]

添加的规则名称为Metasploit C2 Bypass(Task 2),改规则的方向为Outbound(Task 3)

系统审计策略相关

4719系统审计策略更改

更改计算机系统审计策略的事件ID为4719

cat all.json | jq -c 'select(.EventId == 4719 and .TimeCreated > "2023-03-27T14:37:09.8798913+00:00")' | jq -s
"PayloadData1": "CategoryId: %%8274 SubcategoryId: %%12804",
"PayloadData2": "SubcategoryGuid: 0cce9227-69ae-11d9-bed3-505054503030",

查询guid即可获得该子类别为Other Object Access Events(Task 4)

计划任务相关

4698创建计划任务

创建计划任务的事件ID是4698

$ cat all.json | jq -c 'select(.EventId==4698) | .PayloadData1'
"TaskName: \\HTB-AUTOMATION"

计划任务名为HTB-AUTOMATION(Task 5)

$ cat all.json | jq -r 'select(.EventId==4698) | .Payload | fromjson | .EventData.Data | map(select(.["@Name"]=="TaskContent")) | .[]."#text" | @text' | recode html..ascii | tr -d ',' | xmllint --format - --recover
...
    <Exec>
      <Command>C:\Users\CyberJunkie\Desktop\Automation-HTB.ps1</Command>
      <Arguments>-A cyberjunkie@hackthebox.eu</Arguments>
    </Exec>
...

计划任务的文件路径为C:\Users\CyberJunkie\Desktop\Automation-HTB.ps1(Task 6),命令参数为-A cyberjunkie@hackthebox.eu(Task 7)

防病毒软件相关

Microsoft Defender 防病毒事件Id

1000反恶意软件扫描已开始
1001反恶意软件扫描已完成
1002反恶意软件扫描在完成之前已停止
1003反恶意软件扫描已暂停
1004反恶意软件扫描已恢复
1116反恶意软件平台检测到恶意软件或其他可能不需要的软件
1117反恶意软件平台执行了一项操作,以保护您的系统免受恶意软件或其他可能不需要的软件的侵害。

统计在Windows Defender的日志文件中出现的id

$ cat all.json| jq -c | grep "Windows Defender-Operational.evtx" | jq -s '.[] | .EventId' | sort | uniq -c | sort -nr
    152 5007
    139 1116
     71 1117
     18 2000
     18 1151
     13 1150
     11 2010
      5 1001
      5 1000
      3 5001
      3 5000
      3 2014
      2 2002
      1 1013

过滤事件id为1116的

$ cat all.json | jq -c 'select(.TimeCreated > "2023-03-27T14:37:09" and .EventId == 1116) | .ExecutableInfo'
"containerfile:_C:\\Users\\CyberJunkie\\Downloads\\SharpHound-v1.1.0.zip; "

SharpHound被识别为恶意文件(Task 8
完整路径为C:\Users\CyberJunkie\Downloads\SharpHound-v1.1.0.zip(Task 9)

对恶意文件执行操作的事件id为1117

$ cat all.json | jq -c 'select(.TimeCreated > "2023-03-27T14:37:09" and .EventId == 1117) ' | jq -s '.[]|.Payload | fromjson| .EventData.Data|map(select(.["@Name"] == "Action Name"))'
[
  {
    "@Name": "Action Name",
    "#text": "Quarantine"
  }
]

执行的操作为Quarantine(Task 10)

Powershell 相关

4103记录 PowerShell 会话的启动
4014记录命令
`cat all.jsonjq -c 'select(.EventId==4104 and .TimeCreated > "2023-03-27T14:37:09.8798913+00:00")'jq '.Payloadfromjson.EventData.Datamap(select(.["@Name"]=="ScriptBlockText"))'`

执行了命令Get-FileHash -Algorithm md5 .\Desktop\Automation-HTB.ps1(Task 11)

日志清除相关

1102The audit log was cleared

但通过过滤黑客登陆之后且事件id为1102的日志,数量为 0

$ cat all.json | jq -c 'select(.EventId==1102 and .TimeCreated > "2023-03-27T14:37:09.8798913+00:00")'  | wc -l
0

过滤Event log cleared,发现还会一个事件id为104

$ cat all.json | jq -c 'select(.EventId==104 and .TimeCreated > "2023-03-27T14:37:09.8798913+00:00")'  | jq .
Microsoft-Windows-Windows Firewall With Advanced Security/Firewall

被清除的日志为Microsoft-Windows-Windows Firewall With Advanced Security/Firewall(Task 12)

总结

使用EvtxECmd工具将evtx文件转为json文件,使用jq进行处理
需要查询EventId所对应的事件。

Last modification:August 4, 2024
请我喝瓶冰阔落吧