HTB
April 23, 2025

HTB-CrownJewel-2

1_xtO4dkLG1iUMOZOz7-nvTQ

场景

1
Forela 的域环境一片混乱。刚刚从域控制器收到另一个警报,提示 NTDS.dit 数据库被外泄。就在前一天,你刚响应了一个来自同一域控制器的警报,攻击者通过 vssadmin 工具转储了 NTDS.dit。然而,你成功删除了转储的文件,将攻击者踢出了域控制器,并恢复了一个干净的快照。现在,他们再次使用域管理员账户访问域控制器,凭借在环境中的持久化访问,这次他们正在滥用 ntdsutil 工具转储数据库。在这些混乱的时刻,帮帮 Forela 吧!

问题

1
2
3
4
5
6
7
8
9
10
11
12
13
1. 在使用 ntdsutil.exe 将 NTDS 转储到磁盘时,它会同时调用 Microsoft 的卷影复制服务。该服务最近一次进入运行状态的时间戳是多少,即可能标志着 NTDS 转储过程启动的时刻?

2. 确认已转储的 NTDS 文件的完整路径。

3. 数据库转储是在何时被创建到磁盘上的?

4. 新转储的数据库在何时被视为已完成并可供使用?

5. 事件日志使用事件源来追踪来自不同来源的事件。哪个事件源提供诸如数据库创建和卸载等状态数据?

6. 当使用 ntdsutil.exe 转储数据库时,它会枚举某些用户组来验证所用帐户的权限。ntdsutil.exe 进程会枚举哪两个组?请按字母顺序列出这些组,并用逗号分隔。

7. 现在,您的任务是查找恶意会话的登录时间。使用登录 ID,查找用户登录会话开始的时间。

分析解答

对于问题1,我们在CrownJewel-1中说到了事件ID 7036由SYSTEM.evtx日志生成,记录服务的启动或停止状态发生了变化,我们仅需在SYSTEM.evtx中过滤事件ID 7036

微信截图_20250423221750

然后查找包含Volume Shadow Copy服务的日志条目即可

微信截图_20250423221927

没有几条日志,我们就找第一条服务进入运行状态的条目即可,在TimeCreated SystemTime条目中找到时间戳

微信截图_20250423222316

因此答案为2024-05-15 05:39:55

事件ID 325在创建新数据库时被记录在APPLICATION.evtx中,过滤出来,并寻找和上面ntdsutil.exe将NTDS转储到磁盘上的时间相符的事件

微信截图_20250423223522

答案为C:\Windows\Temp\dump_tmp\Active Directory\ntds.dit

数据库创建时间也非常好寻找,将上面的事件转换为XML视图,在TimeCreated SystemTime中即可获得

微信截图_20250423223836

答案为2024-05-15 05:39:56

当数据库引擎分离了转储的NTDS.dit数据库副本时,表明此数据库已经可被使用,此时会触发327事件表示分离数据库的操作

微信截图_20250424143439

根据事件发生的时间可以推测两次的数据库分离都是发生在攻击事件的过程中,获取事件发生的时间时需要注意一下事件查看器面板中关于事件的常规信息显示的时间戳是根据计算机配置的时区显示的,要获取原始的UTC时间需要在详细信息的友好视图或者XML视图中获取

微信截图_20250424144132

微信截图_20250424144152

答案为2024-05-15 05:39:58

关于使用的事件源我们在CrownJewel-1中提到了

事件源ESENT是 Windows 事件日志中与Extensible Storage Engine (ESE)相关的事件源。ESE 是 Microsoft 的高性能、事务型数据库引擎,被许多 Windows 组件和应用程序用来管理数据存储和访问。我们的Active Directory服务用它来存储目录信息,例如用户、组和计算机对象。

微信截图_20250424144918

答案为ESENT

使用ntdsutil.exe转储数据库时,它会枚举某些用户组来验证所用帐户的权限,这两个组分别为 AdministratorsBackup Operators

Backup Operators组

这是具有 备份权限 的操作员组,成员可以备份和还原文件(包括即使他们没有显式访问权限的对象),这是转储数据库所必须的权限之一。该组权限较少,不拥有完全的管理权限,但具备访问如 ntds.ditSYSVOLregistry 等敏感资源的能力。

我们在CrownJewel-1中说到了当某个进程枚举(列出)计算机或设备上某个启用了安全功能的本地组的成员时,会生成4799事件。 我们在Security.evtx中筛选一下,并查找与ntdsutil进程有关的事件,我们可以发现这类事件非常的多,从中可以发现ntdsutil枚举的用户组

微信截图_20250424145844

微信截图_20250424145910

登录ID也在其中为0x8DE3D

答案为Administrators, Backup Operators

查找恶意会话的登录时间我们需要用到几个事件ID

事件ID 4768

事件 ID 4769

事件 ID 5379

在Security.evtx中筛选4768,4769事件

微信截图_20250424151901

我们在其中发现一个利用Administrator账户进行TGT请求的4768事件,可以发现其下紧跟着一条4769事件

微信截图_20250424152406

微信截图_20250424152443

微信截图_20250424152509

我们接着加入事件ID 5379,此事件中包含我们在上面找到的登录ID0x8DE3D,找到最早的一条枚举凭据事件的时间即为我们的答案

微信截图_20250424152903

答案为2024-05-15 05:36:31

About this Post

This post is written by Chromos2me, licensed under CC BY-NC 4.0.

#DFIR