本文大纲如下:基本概念NTDS.ditntds.dit为ad的数据库(C:\Windows\NTDS),内容有域用户、域组、域用户hash等信息,域控上的ntds.dit只有可以登录到域控的用户(如域管用户 DCSync是什么在域环境中,不同DC之间,每隔15分钟同步一次数据,当DC1想从DC2获取数据时,DC1会向DC2发起GetNCChanges请求,该请求中包含需要同步的数据;如果同步的数据比较多,则会重复上述请求 2. 域控上使用DCSync导出DCSync的机制决定不需要使用 debug 来提权,所以协议禁用debug权限的安全测试并不能抑制通过DCSync来导出域用户Hash。 'DS-Replication-Get-Changes-All' = 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 'DS-Replication-Get-Changes-In-Filtered-Set 结尾AD攻防自成体系,Dump域用户Hash只是冰山一角,通过深入剖析各种Dump手法和原理,加深对AD安全的理解及系统日志的熟悉,更好的在安全运营监控/应急响应中快速定位攻击行为,欢迎师傅们拍砖交流~
本文大纲如下: 基本概念 NTDS.dit ntds.dit为ad的数据库(C:\Windows\NTDS),内容有域用户、域组、域用户hash等信息,域控上的ntds.dit只有可以登录到域控的用户 DCSync是什么 在域环境中,不同DC之间,每隔15分钟同步一次数据,当DC1想从DC2获取数据时,DC1会向DC2发起GetNCChanges请求,该请求中包含需要同步的数据;如果同步的数据比较多, 2. 域控上使用DCSync导出 DCSync的机制决定不需要使用 debug 来提权,所以协议禁用debug权限的安全测试并不能抑制通过DCSync来导出域用户Hash。 'DS-Replication-Get-Changes-All' = 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 'DS-Replication-Get-Changes-In-Filtered-Set 结尾 AD攻防自成体系,Dump域用户Hash只是冰山一角,通过深入剖析各种Dump手法和原理,加深对AD安全的理解及系统日志的熟悉,更好的在安全运营监控/应急响应中快速定位攻击行为,欢迎师傅们拍砖交流
dnscmd /zonepront [domain]命令,如图1-2所示 再次列举指定域所有DNS记录,输入dnscmd /EnumRecords [domain] .命令,如图1-3所示 2)远程获取 2) 利用LDAP通过普通域用户获取域内DNS信息。首先通过LDAP查询获得DNS记录,对二进制的DNS记录进行解码,获得实际内容。 Windows Server 2008 R2(以及更新版本)提供了多个AD PowerShell cmdlet,这极大简化了使用ADSI(Active Directory Service Interface 使用AD PowerShell cmdlet前,需要在Windows客户端上安装RSAT,并确保已安装Active Directory PowerShell模块。 再导入模块前,在PowerShell中执行Get-Command get-adcom*命令查看可使用的模块,如图2-13所示 2)在PowerShell中执行Import-Module .
如图1-2所示,B主机对X主机某端口的访问被防火墙拦截,而C主机具有对X主机某端口的访问权限。以上探测行为可以通过CornerShot实现。! IMG329
Adfind的主要特点包括:轻量便携:单文件可执行程序,无需安装,可直接在目标主机上运行功能全面:支持查询用户、组、计算机、OU、GPO、信任关系、ACL等几乎所有AD对象灵活过滤:支持LDAP过滤语法 如果在域内机器上使用AdFind,则无需指定该参数;如果在域外机器使用,则需要指定连接信息,具体参数如表1-2所示。 表1-2Switches模块命令参数|-h[ip:port]|指定连接的主机地址以及端口||--------------|--------------------------||-p|单独指定端口||- u|指定连接用户||-up|指定连接密码|例如在域外主机使用AdFind查询域控列表,命令如下:执行结果如图1-2所示。 <palign="center">图1-2使用AdFind查询域控列表
2.2Basedn(基础DN)通过-b参数可以指定查询根节点的基础可分辨名称(DistinguishedName)。侦查和利用工具,在安装ActiveDirectoryDomainServices(ADDS)后,ActiveDirectoryWebServices(ADWS)将自动开启,因此SharpADWS在所有域环境中都可以使用 该缓存包含当前域内每个账户对象名称与其objectSid的映射,执行命令及结果如图1-2所示:
数据为例,执行SOAPHound.exe--dnsdump-odns命令及结果如图1-2所示。
一、域分析之AdExplorerAdExplorer(ActiveDirectory资源管理器)是高级ActiveDirectory(AD)查看器和编辑器。 AD资源管理器还能够保存AD数据库的快照,以便进行离线查看和比较。加载保存的快照时,可以像浏览实时数据库一样导航和探索它。 如果有一个AD数据库的两个快照,则可以使用AD资源管理器的比较功能来查看它们之间更改了哪些对象、属性和安全权限。 下载地址:https://download.sysinternals.com/files/AdExplorer.zip二、连接AD下载AdExplorer后,会弹出连接对话框,我们对应输入域控的IP,以及域用户的账号密码后即可进行使用 ,如图1-1及图1-2所示
利用备份组导出凭据本节以域内用户backup(位于域控本地BackupOperators组)为例,演示如何启用SeBackupPrivilege并导出凭据相关文件(如SAM/SYSTEM),为后续离线解密 1.00图1-1backup用户所在的组:::2.2验证对域控文件的访问能力(读/写)使用backup用户列举域控C:盘目录,验证文件访问能力,如图1-2所示。 可以看到,当backup用户位于域控本地BackupOperators组内时,通常对域控文件具备读取能力;但如图1-3所示,并不一定具备写入权限。:::center! 1.00图1-2域控文件访问权限::::::center! 1.00图1-11获取SYSTEM文件:::2.7从域控远程拉取凭据相关文件(BackupOperatorToDA)BackupOperators具备域内“备份语义”相关能力,可借助BackupOperatorToDA
在一些中大型企业中,员工数量较多,运维人员为了方便管理每个员工的计算机,可能会为所有计算机的账号设置统一的口令,以对它们进行统一配置,并且将它们批量加入域。 在2014年5月之前,也就是MS14-025的补丁发布之前,域允许管理员通过组策略直接修改本地管理员密码,但是随着补丁发布,这种方式就不被允许了。随后微软推出了LAPS解决方案。 我们可以使用 LAPSUI 直接查看域内计算机的本地密码,如图 1-1 所示。 使用 ldapsearch 获取域内 ms-MCS-AdmPwd 属性值,执行命令如下(如图 1-2): -w <密码> -b "DC=test,DC=com" "(ms-MCS-AdmPwd=*)" ms-MCS-AdmPwd 图 1-2
例如,DC 1新增了一个名为test的域内新用户,那么DC 2就可以通过该服务的自身同步功能同时更新test用户。 2. 域管理员组。企业管理员组。域控制器计算机账号。接下来演示如何通过Mimikatz的DCSync 能获取全部域用户哈希凭据。 .\ com用户,该用户为域用户而非域管理员,但在域内拥有的权限包括"复制目录更改"与"复制目录更改所有项",具体如图 1-2 所示。 图1-2 用户在域内权限设置2、利用该用户执行 Mimikatz 的 DCSync 功能以获取指定域用户哈希。
一、简介BloodHound是一款开源的AD域分析工具,它以图与线的形式,将域内用户、计算机、组、会话、ACL以及域内所有相关用户、组、计算机、登录信息、访问控制策略之间的关系只管展现,帮助红队便捷地分析域内情况 ,快速在域内提升自己的权限。 蓝队成员可使用BloodHound对己方网络系统进行更好的安全检测以保证域的安全性。BloodHound通过在域内导出相关信息,再将数据采集后,导入本地安装好的Neo4j数据库中,使域内信息可视化。 center>图1-1下载JDK安装包在Neo4j官网的社区服务版模块中选择Windows并下载最新的Neo4j数据库安装包,截至本书写作时最新版为5.20.0
也就是说,假设域内有个用户 test.com/test1,其密码为 password@456,而客户端拥有的用户并不在域内,用户名为 test1,密码为 password@456,那么在 AS_REQ 想要利用该手段必须满足 3 个条件:域内用户拥有 DCSync 权限;域外用户和域内用户的账号及密码一致;将域外主机的 DNS 指向域控制器,并通过 VPN 接入域内。 下面将会演示如何在域外利用 DCSync 功能获取域用户哈希。确定域外用户 test1 的密码和域内用户 test.com/test1 的密码是一致的。 net user test1 password@456 2. 将域外主机的 DNS 指向域控制器,如图 1-1~图 1-2 所示。图 1-1 将域外主机的 DNS 指向域控制器图 1-2 设置网络图 1-3 设置连接3.
1.NTDS.DIT文件简介NTDS.DIT文件是域控制器中的数据库文件,该文件作为AD的数据库,存储了AD的所有数据,包括域内的用户对象、组和组成员身份等信息,以及域内所有用户的凭据信息。 NTDS.DIT文件与前文所讲的SAM文件类似,不同点在于SAM文件中只存放本机的用户哈希凭据,而NTDS.DIT文件中存放了所有域用户的哈希凭据。 图1-6使用secretsdump.py来解密NTDS.DIT文件3.使用Ntdsutil.exe获取NTDS.DITNtdsutil.exe是微软提供的一个为AD提供管理设施的命令行工具。 利用该工具可以维护和管理AD的数据库,清理不常用的服务器对象,整理AD数据文件下线碎片等。 图1-14使用VShadow创建C盘卷影副本2)执行命令copy\\?
一、Group3r简介Group3r是C#编写的组策略检测工具,用于Pentester和红队成员快速枚举AD组策略中的相关设置,并在其中识别可利用的错误配置的工具,它通过LDAP连接域控解析域SYSVOL |通过标准输出结果||---------------|----------------||\-fgroup3r.log|通过文件输出结果|三、使用方式Grou3r使用十分简单,只需要执行如下命令即可对域内错误配置进行检测 ,执行命令及结果如图1-1所示
SCCM 介绍SCCM(System Center Configuration Manager)用于部署更新、管理工作站及服务器上的软件,并向各类设备打补丁(如主域控、Exchange 服务器、员工笔记本等 2. 核心能力安装/卸载应用程序安装补丁/更新运行脚本配置 Windows 应用程序 网络设置部署操作系统以及其他类似的自动化运维任务3.
1概述在ActiveDirectory域环境中,任何经过身份验证的用户或计算机都可以通过域控制器上的LDAP服务获取大量域信息。攻击者常在AD域渗透的侦察阶段利用LDAP进行信息收集。 2将LDAP快照解析为BloodHound格式通过ADExplorer工具可以对LDAP进行快照,再使用ADExplorerSnapshot将快照转换为BloodHound可导入的格式,便于后续的攻击路径分析 >图1-1使用ADExplorer对LDAP进行快照并保存为xxx.dat
2.2转换快照格式使用ADExplorerSnapshot.py将快照文件转换为BloodHound可读格式,如图1-2所示 IMG324<palign="center">图1-2使用ADExplorerSnapshot对xxx.dat进行转换2.3导入BloodHound分析将转换后的文件导入BloodHound,可以查看域内的完整信息 如图1-3所示,数据库中包含25,138个用户、4,367台计算机、2,298个组、464,353条ACL、525,628个关系,以及从不同路径到达域管理员的攻击路径。!组策略可分为本地组策略和域组策略。 (1) 本地组策略编辑器 1)通过按下 Windows+R 组合键调出“运行”窗口并输入 gpedit.msc 以运行本地组策 略编辑器,如图 1-2所示。 2)进入本地组策略编辑器,如图 1-3 所示。 3)依次选择“计算机配置”→“ Windows 设置”→“脚本(启动 / 关机)”,然后选择 “启动”选项,如图 1-4 所示。 6)单击“显示文件”按钮(见图 1-7)就会打开一个目录,可以向该目录投放后门木马,实现权限维持,如图 1-8所示 2 域组策略收集 当想批量管理域内计算机时,域管理员就可以通过组策略管理来统一对域内用户进行管 接下来详细阐述域内组策略内容。
一、 域信息收集 Active Directory是一个可以通过域控制器来管理连接在同一逻辑网络中的一组计算机和用户系统。 Windows域包含以下组件: LDAP:可以通过LDAP访问的数据库,并且该数据库实现了符合【MS-DRSR】及【MS-ADTS】规范的几种RPC。 但是即使存在域环境,我们拿到的第一台计算机也不一定在域内,需要通过多种方式确定域控制器的位置,进而控制整个域。 [domain] 2)在Windows环境查找域控制器位置。使用nslookup -q=srv _ldap._tcp.dc._msdcs. [domain]命令,查找这几个SRV值均可获得域控制器IP地址,如图1-2所示 1.2、利用默认端口查找域控制器 首先域控制器肯定指的是Windows计算机,可以通过135、139、445、5985端口来判断