HTB
January 22, 2025

HTB-CrownJewel-1

微信截图_20250122170353

Sherlock Scenario

1
Forela's domain controller is under attack. The Domain Administrator account is believed to be compromised, and it is suspected that the threat actor dumped the NTDS.dit database on the DC. We just received an alert of vssadmin being used on the DC, since this is not part of the routine schedule we have good reason to believe that the attacker abused this LOLBIN utility to get the Domain environment's crown jewel. Perform some analysis on provided artifacts for a quick triage and if possible kick the attacker as early as possible.

Tasks

1
2
3
4
5
6
7
8
9
10
11
12
13
1. Attackers can abuse the vssadmin utility to create volume shadow snapshots and then extract sensitive files like NTDS.dit to bypass security mechanisms. Identify the time when the Volume Shadow Copy service entered a running state.

2. When a volume shadow snapshot is created, the Volume shadow copy service validates the privileges using the Machine account and enumerates User groups. Find the two user groups the volume shadow copy process queries and the machine account that did it.

3. Identify the Process ID (in Decimal) of the volume shadow copy service process.

4. Find the assigned Volume ID/GUID value to the Shadow copy snapshot when it was mounted.

5. Identify the full path of the dumped NTDS database on disk.

6. When was newly dumped ntds.dit created on disk?

7. A registry hive was also dumped alongside the NTDS database. Which registry hive was dumped and what is its file size in bytes?

Analysis

题目给了evtx文件和MFT文件,我们先来对这两个文件进行简要的解释

evtx

.evtx 文件是 Windows 操作系统的 事件日志文件格式,它用于存储系统、应用程序、安全相关的事件日志。Windows NT 和 Windows 2000 之前的版本的文件格式为.evt

日志文件通常存储在下面的默认路径中

1
C:\Windows\System32\winevt\Logs\

常见的日志文件有

接下来介绍一下常见的Event ID

Security.evtx

Event ID Description
4624 表示用户成功登录系统
但是要关注一下Logon Type的类型
2代表本地的交互式登录
3代表网络登录
10表示远程桌面登录
4625 表示用户尝试登录系统但未成功,可以从中识别暴力破解
4768 Kerberos 身份验证票据(TGT)请求
4769 Kerberos 服务票据(TGS)请求
4770 Kerberos 服务票据的续订
上面的三条用来检测可疑的Kerberos 活动
4776 NTLM 身份验证尝试的结果,检测横向移动或凭据滥用
4720 表示系统中创建了新用户,检测攻击者是否在系统中留下了后门账户
4722 表示已重新启用被禁用的账户,攻击者可能重新启用管理员账户
4726 表示系统中某账户被删除,攻击者可能试图清除痕迹
4732 / 4733 用户添加到组 / 从组移除,检测特权提升操作
4670 表示文件或对象的权限被更改,检测攻击者可能修改文件或注册表权限以维持持久性

System.evtx

Event ID Description
7045 表示系统中安装了一个新服务,用于检测恶意服务的安装和启动
7034 表示服务异常终止,如终止系统的防护服务
6005 / 6006 系统启动 / 关机
1102 表示安全日志被清除,攻击者销毁痕迹

Application.evtx

Event ID Description
4104 表示 PowerShell 脚本被执行,检测可疑的 PowerShell 活动
4004 Windows Defender检测到威胁
4005 威胁被隔离
上面两条用于用于识别是否有恶意软件被防病毒程序捕获

Microsoft-Windows-TaskScheduler

Event ID Description
106 表示创建了新的计划任务,检测常见的计划任务持久化
140 表示现有的计划任务被修改,检测是否有合法的计划任务被修改用于恶意目的

依据NTDS dumping attack detection这篇文章在这个挑战中我们将会用到下面的几个事件ID

首先我们的事件源限定在ESENT中,其中的事件ID325和327分别在创建新数据库和分离数据库时记录这些事件。两者的描述分别如下

1
2
3
The database engine created a new database....

The database engine detached a database....

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

事件ID 7036由 服务控制管理器 (Service Control Manager) 生成的,记录在系统日志中,表示服务的启动或停止状态发生了变化。事件描述如下

1
The [Service Name] service entered the [state] state.

事件ID 4799当某个进程枚举(列出)计算机或设备上某个启用了安全功能的本地组的成员时,会生成此事件。或者说尝试获取某个本地组(如 Administrators 组)的成员信息时。

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4799?source=post_page-----2efb81522f2c--------------------------------

1
A security-enabled local group membership was enumerated.

NTDS.dit

NTDS.dit 是 Windows 域控制器的核心数据库文件,存储了AD中的重要信息,存储了所有域控制器的目录服务数据,如用户账户、组信息和计算机对象。具体包括下面的内容:

我们之前说过我们的事件源来自ESENT,这是因为该文件采用了 Extensible Storage Engine (ESE) 数据库技术,支持高效的数据检索和写入。

NTDS.dit文件为LDAP提供底层支持,因此要访问和查询NTDS.dit通常需要专门的工具如ldapsearch或者ntdsutil等等。

非域环境中也有存储着当前主机用户的密码信息的SAM文件,但是他们都需要SYSTEM文件进行解密,他们的路径分别如下:

注:SYSTEM文件和HKEY_LOCAL_MACHINE\SYSTEM注册表配置单元是同一个数据源,只是表现形式不一样

常见攻击方式

在Active Directory服务运行时NTDS.dit被锁定(不允许被复制),但仍然具有非常多的方式提取NTDS.dit文件,这里仅做简单介绍,以后有机会补充

Volume Shadow Copy Service (VSS)

卷影副本技术绕过文件锁定机制进行提取

1
2
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\ntds.dit .

对SYSTEM文件的提取也类似

1
2
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\system.hiv
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM C:\sam.hiv

NTDSUTIL.exe

NTDSUTIL 是一个用于管理和维护 Active Directory 域控制器的命令行工具,主要用于进行数据库操作、恢复、备份、清理活动目录等任务。

关于此工具的详细操作可参考https://www.cnblogs.com/suv789/p/18356208

利用如下命令进行副本的复制

1
ntdsutil "ac i ntds" "ifm" "create full c:\ADBackup" q q

之后会在C盘下创建ADBackup文件夹,文件夹中存有SYSTEM文件和NTDS.dit文件

工具提取

例如使用netexec进行NTDS文件提取

1
nxc smb IP -u username -p password --ntds

更多的提取方式可参考https://blog.csdn.net/Ping_Pig/article/details/108914583

在本地利用Impacket工具包的secretsdump.py进行密码提取

1
python3 secretsdump.py -ntds ntds.dit -system system.hiv LOCAL

MFT

MFT(Master File Table,主文件表),用于存储文件和目录的元数据。每个 NTFS 卷都包含一个 $MFT,它是 NTFS 文件系统的关键部分。

MFT包含以下信息:

注:

  • 即使文件被删除,$MFT 条目可能仍然保留,可以通过分析条目恢复被删除的文件。
  • 通过分析 $MFT,可以追踪文件的创建、修改和删除活动。
  • 删除文件的 $MFT 条目通常会被标记为未使用,但实际数据可能尚未被覆盖。
  • 文件数据驻留在 $MFT 中时,不会占用磁盘空间,可能被用于隐藏恶意文件。

Task1

我们首先要确定卷影复制服务进入运行状态的时间,在SYSTEM.evtx中寻找事件ID为7036的事件,然后搜索volumn shadow copy服务

微信截图_20250124222908

这里需要注意一下我们和HTB总部英国是存在8小时时差的,因此我们得到的结果需要减去8个小时才是我们的答案

微信截图_20250124223744

Answer:2024-05-14 03:42:16

Task2

找到卷影复制进程查询的两个用户组以及执行该操作的计算机帐户,在Security.evtx中筛选4799事件,并查找卷影服务进程VSSVC.exe

微信截图_20250124224912

微信截图_20250124224947

答案很明显

Answer:Administrators, Backup Operators, DC01$

Task3

卷影复制服务进程ID的10进制

微信截图_20250124225122

Answer:4,496

Task4

提取卷影副本时分配的卷 ID/GUID 值,在Microsoft-Windows-NTFS.evtx中过滤事件ID 4,这标志着NTFS 卷已成功挂载,找到ShadowCopy即可

微信截图_20250124230156

Answer:{06c4a997-cca8-11ed-a90f-000c295644f9}

Task5

转储的 NTDS 数据库的完整路径,利用Eric Zimmerman个人网站中的MFT Explorer打开MFT文件

或者使用MFTECmd

1
MFTECmd.exe -f "<Path-to-$MFT>" --csv "<Path-to-Output.csv>"

微信截图_20250124232308

Answer:C:\Users\Administrator\Documents\backup_sync_Dc\Ntds.dit

Task6

新转储的 ntds.dit 是什么时候在磁盘上创建的,在我们上面的页面的右下角

微信截图_20250124232458

Answer:2024-05-14 03:44:22

Task7

转储了哪个注册表配置单元以及其文件大小(以字节为单位)是多少

这个就是我们上面说的SYSTEM.hive

微信截图_20250124232800

Answer:SYSTEM, 17563648

About this Post

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

#DFIR