场景
1 | Forela 的域环境一片混乱。刚刚从域控制器收到另一个警报,提示 NTDS.dit 数据库被外泄。就在前一天,你刚响应了一个来自同一域控制器的警报,攻击者通过 vssadmin 工具转储了 NTDS.dit。然而,你成功删除了转储的文件,将攻击者踢出了域控制器,并恢复了一个干净的快照。现在,他们再次使用域管理员账户访问域控制器,凭借在环境中的持久化访问,这次他们正在滥用 ntdsutil 工具转储数据库。在这些混乱的时刻,帮帮 Forela 吧! |
问题
1 | 1. 在使用 ntdsutil.exe 将 NTDS 转储到磁盘时,它会同时调用 Microsoft 的卷影复制服务。该服务最近一次进入运行状态的时间戳是多少,即可能标志着 NTDS 转储过程启动的时刻? |
分析解答
对于问题1,我们在CrownJewel-1中说到了事件ID 7036由SYSTEM.evtx日志生成,记录服务的启动或停止状态发生了变化,我们仅需在SYSTEM.evtx中过滤事件ID 7036
然后查找包含Volume Shadow Copy服务的日志条目即可
没有几条日志,我们就找第一条服务进入运行状态的条目即可,在TimeCreated SystemTime条目中找到时间戳
因此答案为2024-05-15 05:39:55
事件ID 325在创建新数据库时被记录在APPLICATION.evtx中,过滤出来,并寻找和上面ntdsutil.exe将NTDS转储到磁盘上的时间相符的事件
答案为C:\Windows\Temp\dump_tmp\Active Directory\ntds.dit
数据库创建时间也非常好寻找,将上面的事件转换为XML视图,在TimeCreated SystemTime中即可获得
答案为2024-05-15 05:39:56
当数据库引擎分离了转储的NTDS.dit数据库副本时,表明此数据库已经可被使用,此时会触发327事件表示分离数据库的操作
根据事件发生的时间可以推测两次的数据库分离都是发生在攻击事件的过程中,获取事件发生的时间时需要注意一下事件查看器面板中关于事件的常规信息显示的时间戳是根据计算机配置的时区显示的,要获取原始的UTC时间需要在详细信息的友好视图或者XML视图中获取
答案为2024-05-15 05:39:58
关于使用的事件源我们在CrownJewel-1中提到了
事件源ESENT是 Windows 事件日志中与Extensible Storage Engine (ESE)相关的事件源。ESE 是 Microsoft 的高性能、事务型数据库引擎,被许多 Windows 组件和应用程序用来管理数据存储和访问。我们的Active Directory服务用它来存储目录信息,例如用户、组和计算机对象。
答案为ESENT
使用ntdsutil.exe转储数据库时,它会枚举某些用户组来验证所用帐户的权限,这两个组分别为 Administrators
和Backup Operators
Backup Operators组
这是具有 备份权限 的操作员组,成员可以备份和还原文件(包括即使他们没有显式访问权限的对象),这是转储数据库所必须的权限之一。该组权限较少,不拥有完全的管理权限,但具备访问如
ntds.dit
、SYSVOL
、registry
等敏感资源的能力。
我们在CrownJewel-1中说到了当某个进程枚举(列出)计算机或设备上某个启用了安全功能的本地组的成员时,会生成4799事件。 我们在Security.evtx中筛选一下,并查找与ntdsutil
进程有关的事件,我们可以发现这类事件非常的多,从中可以发现ntdsutil
枚举的用户组
登录ID也在其中为0x8DE3D
答案为Administrators, Backup Operators
查找恶意会话的登录时间我们需要用到几个事件ID
事件ID 4768
- 此事件表示某个用户请求了 Kerberos TGT(Ticket Granting Ticket),即首次登录 AD 域时的身份验证过程。
- 常见用途有:标志某个用户尝试登录域,检测登录尝试、密码猜测行为(频繁失败的4768),以及横向移动
- 关键字段有
- Account Name:请求票据的用户。
- Client Address:发起请求的IP地址。
- Result Code:认证结果(如 0x0 表示成功,0x6 表示用户名无效,0x18 表示密码错误)。
事件 ID 4769
- 当用户已经拥有 TGT 后,请求访问具体服务时,系统会请求TGS,此时记录该事件。
- 常见用途:检测用户访问了哪些服务,可以帮助分析横向移动(例如使用有效凭据访问其他主机上的服务)
- 关键字段:
- Service Name:目标服务(如 CIFS、HOST 等)。
- Client Address:发起访问的IP地址。
- Ticket Encryption Type:可以用于发现弱加密算法(如 RC4)。
事件 ID 5379
- 该事件表示访问了加密密钥材料,如:凭据保护、DPAPI、Credman(Credential Manager) 凭据或密钥保护等。
- 常见用途为:
- 检测敏感信息访问,如查看某用户的 Windows 凭据、密钥或使用 Windows Hello、虚拟智能卡。
- 可用于发现恶意软件访问用户凭据的行为。
- 关键字段:
- Caller Process Name:访问密钥的进程。
- Subject User Name:发起访问的用户。
- Key Type:访问的是哪种密钥,比如
User DPAPI
,Virtual Smart Card
,Windows Hello
,Generic Credentials
。
在Security.evtx中筛选4768,4769事件
我们在其中发现一个利用Administrator账户进行TGT请求的4768事件,可以发现其下紧跟着一条4769事件
我们接着加入事件ID 5379,此事件中包含我们在上面找到的登录ID0x8DE3D,找到最早的一条枚举凭据事件的时间即为我们的答案
答案为2024-05-15 05:36:31
About this Post
This post is written by Chromos2me, licensed under CC BY-NC 4.0.