分类 | 难度 |
---|---|
DFIR | Easy |
您有机会在一家大型咨询公司担任初级 DFIR 顾问。但是,他们提供了技术评估供您完成。咨询公司 Forela-Security 希望评估您的 Windows 事件日志分析知识。我们认为 Cyberjunkie 用户登录了他的计算机并可能采取了恶意操作。请分析给定的事件日志并报告。
Tasks
- Task1: cyberjunkie第一次成功登录他的计算机是什么时候? (UTC)
- Task2: 用户篡改了系统上的防火墙设置。分析防火墙事件日志以找出添加的防火墙规则的名称?
- Task3: 防火墙规则的方向是什么?
- Task4: 用户更改了计算机的审核策略。此更改政策的子类别是什么?
- Task5: 用户“cyberjunkie”创建了一个计划任务。这个任务的名字是什么?
- Task6: 为任务安排的文件的完整路径是什么?
- Task7: 该命令的参数是什么?
- Task8: 系统上运行的防病毒软件识别出威胁并对其执行操作。哪个工具被防病毒软件识别为恶意软件?
- Task9: 引发警报的恶意软件的完整路径是什么?
- Task10: 防病毒软件采取了什么行动?
- Task11: 用户使用Powershell执行命令。用户执行了什么命令?
- Task12: 我们怀疑用户删除了一些事件日志。哪个事件日志文件被清除?
附件下载完成解压后得到5个evtx文件
Powershell-Operational.evtx
: 系统上 PowerShell 活动的记录,可以包括执行的命令、运行的脚本以及执行期间生成的任何错误或警告。Security.evtx
: 与系统上的安全事件相关的记录,包括用户身份验证、权限更改、帐户管理和安全策略更改。System.evtx
: 捕获系统级事件,例如启动和关闭进程、驱动程序和服务故障、硬件配置更改以及系统资源利用率。Windows Defender-Operational.evtx
- 记录 Windows Defender 的活动和状态,包括恶意软件检测、扫描、更新以及 Windows Defender 管理的任何其他安全相关事件。Windows Firewall-Firewall
- 记录与防火墙相关的事件,例如允许和阻止的网络连接、规则更改以及防火墙服务启动和关闭事件。
工具推荐: EvtxECmd.exe
,jq
,grep
等。
- 使用
EvtxECmd.exe
将evtx格式转成json格式
EventId | 事件 |
---|---|
4624 | 成功登陆 |
2004 | windows防火墙添加一条规则 |
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"
防火墙相关
2004 | windows防火墙添加一条规则 |
---|---|
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)
防病毒软件相关
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.json | jq -c 'select(.EventId==4104 and .TimeCreated > "2023-03-27T14:37:09.8798913+00:00")' | jq '.Payload | fromjson | .EventData.Data | map(select(.["@Name"]=="ScriptBlockText"))'` |
执行了命令Get-FileHash -Algorithm md5 .\Desktop\Automation-HTB.ps1
(Task 11)
日志清除相关
1102 | The 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所对应的事件。