导语:经常被遗忘(或被误解)的一个事实是,大多数对象及其属性可以被验证的用户(通常是域用户)查看(或读取)。
经常被遗忘(或被误解)的一个事实是,大多数对象及其属性可以被验证的用户(通常是域用户)查看(或读取)。管理员可能会认为,由于通过管理工具(如“Active Directory用户和计算机”(dsa.msc)或“Active Directory管理中心”(dsac.msc))可以轻松访问此数据,因此其他人就无法查看用户数据(超出了Outlook的GAL中暴露的内容)。这通常导致密码数据被放置在用户对象属性或SYSVOL中。
Active Directory中可以收集大量数据,可用于更新文档或对下一个攻击阶段的环境进行侦察。防守者通过常规用户帐户了解AD中可访问的不同类型的数据是很重要的一件事情。
攻击频繁地开始于网络钓鱼邮件使得攻击者可以在目标网络中的计算机上运行代码。一旦攻击者将其代码运行在企业内部,第一步就是进行信息侦察,以发现有用的资源来提升权限,持续控制,当然还有“掠夺”信息(通常是组织的“重要部门”)。
这篇文章将会阐述攻击者如何在只有域用户权限的情况下来对Active Directory环境进行信息侦察。许多人对于无需提升权限就能从AD中收集信息时感到非常惊讶。
注意:本文中的大多数示例都使用Active Directory PowerShell模块cmdlet。一个很好的选择是使用HarmJ0y的 PowerView(现在是PowerSploit的一部分)。
我在2015年的几次安全会议(BSides,Shakacon,Black Hat,DEF CON和DerbyCon)中谈到了一些相关的技术。我还介绍了“ 最常见的Active Directory安全问题和可以解决的问题”中的一些问题。
获取Active Directory信息
我已经在PowerShell中使用.NET来收集AD数据,所以我不会在这里复制所有的.NET命令。
域林信息:
PS C:> [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest() Name: lab.adsecurity.org Sites: {Default-First-Site-Name} Domains: {lab.adsecurity.org, child.lab.adsecurity.org} GlobalCatalogs: {ADSDC01.lab.adsecurity.org, ADSDC02.lab.adsecurity.org, ADSDC03.lab.adsecurity.org, ADSDC11.child.lab.adsecurity.org} ApplicationPartitions: {DC=DomainDnsZones,DC=child,DC=lab,DC=adsecurity,DC=org, DC=DomainDnsZones,DC=lab,DC=adsecurity,DC=org, DC=ForestDnsZones,DC=lab,DC=adsecurity,DC=org} ForestMode: Windows2008R2Forest RootDomain: lab.adsecurity.org Schema: CN=Schema,CN=Configuration,DC=lab,DC=adsecurity,DC=org SchemaRoleOwner: ADSDC03.lab.adsecurity.org NamingRoleOwner: ADSDC03.lab.adsecurity.org
域信息:
PS C:> [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain() Forest: lab.adsecurity.org DomainControllers: {ADSDC01.lab.adsecurity.org, ADSDC02.lab.adsecurity.org, ADSDC03.lab.adsecurity.org} Children: {child.lab.adsecurity.org} DomainMode: Windows2008R2Domain Parent: PdcRoleOwner: ADSDC03.lab.adsecurity.org RidRoleOwner: ADSDC03.lab.adsecurity.org InfrastructureRoleOwner: ADSDC03.lab.adsecurity.org Name: lab.adsecurity.org
域林信任:
$ForestRootDomain = ‘lab.adsecurity.org’ ([System.DirectoryServices.ActiveDirectory.Forest]::GetForest((New-Object System.DirectoryServices.ActiveDirectory.DirectoryContext(‘Forest’, $ForestRootDomain)))).GetAllTrustRelationships()
域信任:
PS C:> ([System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()).GetAllTrustRelationships() SourceName: lab.adsecurity.org TargetName: child.lab.adsecurity.org TrustType: ParentChild TrustDirection: Bidirectional
获取域林全局目录(通常每个域控制器就是一个GC):
PS C:> [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().GlobalCatalogs Forest : lab.adsecurity.org CurrentTime : 1/27/2016 5:31:36 PM HighestCommittedUsn : 305210 OSVersion : Windows Server 2008 R2 Datacenter Roles : {} Domain : lab.adsecurity.org IPAddress : 172.16.11.11 SiteName : Default-First-Site-Name SyncFromAllServersCallback : InboundConnections : {36bfdadf-777d-4bad-9427-bc148cea256f, 48594a5d-c2a3-4cd1-a80d-bedf367cc2a9, 549871d2-e238-4423-a6b8-1bb OutboundConnections : {9da361fd-0eed-414a-b4ee-0a9caa1b153e, 86690811-f995-4c3e-89fe-73c61fa4a3a0, 8797cbb4-fe09-49dc-8891-952 Name : ADSDC01.lab.adsecurity.org Partitions : {DC=lab,DC=adsecurity,DC=org, CN=Configuration,DC=lab,DC=adsecurity,DC=org, CN=Schema,CN=Configuration,DC=lab,DC=adsecurity,DC=org, DC=DomainDnsZones,DC=lab,DC=adsecurity,DC=org… Forest : lab.adsecurity.org CurrentTime : 1/27/2016 5:31:37 PM HighestCommittedUsn : 274976 OSVersion : Windows Server 2012 R2 Datacenter Roles : {SchemaRole, NamingRole, PdcRole, RidRole…} Domain : lab.adsecurity.org IPAddress : fe80::1881:40d5:fc2e:e744%12 SiteName : Default-First-Site-Name SyncFromAllServersCallback : InboundConnections : {86690811-f995-4c3e-89fe-73c61fa4a3a0, dd7b36a8-a52e-446d-95a8-318b69bd9765} OutboundConnections : {f901f0b5-8754-44e9-92e8-f56b3d67197b, 549871d2-e238-4423-a6b8-1bb258e2a62f} Name : ADSDC03.lab.adsecurity.org Partitions : {DC=lab,DC=adsecurity,DC=org, CN=Configuration,DC=lab,DC=adsecurity,DC=org, CN=Schema,CN=Configuration,DC=lab,DC=adsecurity,DC=org, DC=DomainDnsZones,DC=lab,DC=adsecurity,DC=org… Forest : lab.adsecurity.org CurrentTime : 1/27/2016 5:31:38 PM HighestCommittedUsn : 161898 OSVersion : Windows Server 2012 R2 Datacenter Roles : {PdcRole, RidRole, InfrastructureRole} Domain : child.lab.adsecurity.org IPAddress : 172.16.11.21 SiteName : Default-First-Site-Name SyncFromAllServersCallback : InboundConnections : {612c2d75-1c35-4073-a8a9-d41169665000, 8797cbb4-fe09-49dc-8891-952f38822eda} OutboundConnections : {71ea129f-8d56-4bd0-9b68-d80e89ae7385, 36bfdadf-777d-4bad-9427-bc148cea256f} Name : ADSDC11.child.lab.adsecurity.org Partitions : {CN=Configuration,DC=lab,DC=adsecurity,DC=org, CN=Schema,CN=Configuration,DC=lab,DC=adsecurity,DC=org, DC=ForestDnsZones,DC=lab,DC=adsecurity,DC=org, DC=child,DC=lab,DC=adsecurity,DC=org…}
缓解措施:没有合理的缓解措施。这些信息不能也不应该被模糊或隐藏。
发现企业服务,无需网络扫描
最简单的信息侦察方法是使用我称之为“ SPN扫描 ”的技术,它要求域控制器查找特定类型的所有服务主体名称(SPN)。这样可以让攻击者发现所有的SQL服务器,Exchange服务器等等。我维护了一个包含企业中最常见的SPN的SPN目录列表。
SPN扫描还可以发现Windows计算机中是否启用了RDP(TERMSERV)和WinRM(WSMAN)等信息。
注意:为了发现所有企业服务,需要同时指定计算机和用户(服务帐户)。
PS C:> get-adcomputer -filter {ServicePrincipalName -like “*TERMSRV*”} -Properties OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack, PasswordLastSet,LastLogonDate,ServicePrincipalName,TrustedForDelegation,TrustedtoAuthForDelegation DistinguishedName : CN=ADSDC02,OU=Domain Controllers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSDC02.lab.adsecurity.org Enabled : True LastLogonDate : 1/20/2016 6:46:18 AM Name : ADSDC02 ObjectClass : computer ObjectGUID : 1efe44af-d8d9-420b-a66a-8d771d295085 OperatingSystem : Windows Server 2008 R2 Datacenter OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 12/31/2015 6:34:15 AM SamAccountName : ADSDC02$ ServicePrincipalName : {DNS/ADSDC02.lab.adsecurity.org, HOST/ADSDC02/ADSECLAB, HOST/ADSDC02.lab.adsecurity.org/ADSECLAB, GC/ADSDC02.lab.adsecurity.org/lab.adsecurity.org…} SID : S-1-5-21-1581655573-3923512380-696647894-1103 TrustedForDelegation : True TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSDC01,OU=Domain Controllers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSDC01.lab.adsecurity.org Enabled : True LastLogonDate : 1/20/2016 6:47:21 AM Name : ADSDC01 ObjectClass : computer ObjectGUID : 31b2038d-e63d-4cfe-b7b6-77206c325af9 OperatingSystem : Windows Server 2008 R2 Datacenter OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 12/31/2015 6:34:14 AM SamAccountName : ADSDC01$ ServicePrincipalName : {ldap/ADSDC01.lab.adsecurity.org/ForestDnsZones.lab.adsecurity.org, ldap/ADSDC01.lab.adsecurity.org/DomainDnsZones.lab.adsecurity.org, TERMSRV/ADSDC01, TERMSRV/ADSDC01.lab.adsecurity.org…} SID : S-1-5-21-1581655573-3923512380-696647894-1000 TrustedForDelegation : True TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSDC03,OU=Domain Controllers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSDC03.lab.adsecurity.org Enabled : True LastLogonDate : 1/20/2016 6:35:16 AM Name : ADSDC03 ObjectClass : computer ObjectGUID : 0a2d849c-cc59-4785-8ba2-997fd6ca4dc8 OperatingSystem : Windows Server 2012 R2 Datacenter OperatingSystemServicePack : OperatingSystemVersion : 6.3 (9600) PasswordLastSet : 12/31/2015 6:34:16 AM SamAccountName : ADSDC03$ ServicePrincipalName : {DNS/ADSDC03.lab.adsecurity.org, HOST/ADSDC03.lab.adsecurity.org/ADSECLAB, RPC/c8e1e99e-2aaa-4888-a5d8-23a4355fac48._msdcs.lab.adsecurity.org, GC/ADSDC03.lab.adsecurity.org/lab.adsecurity.org…} SID : S-1-5-21-1581655573-3923512380-696647894-1601 TrustedForDelegation : True TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSWRKWIN7,CN=Computers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSWRKWIN7.lab.adsecurity.org Enabled : True LastLogonDate : 8/29/2015 6:40:16 PM Name : ADSWRKWIN7 ObjectClass : computer ObjectGUID : e8b3bed2-75b4-4512-a4f0-6d9c2d975c70 OperatingSystem : Windows 7 Enterprise OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 8/29/2015 6:40:12 PM SamAccountName : ADSWRKWIN7$ ServicePrincipalName : {TERMSRV/ADSWRKWin7.lab.adsecurity.org, TERMSRV/ADSWRKWIN7, RestrictedKrbHost/ADSWRKWIN7, HOST/ADSWRKWIN7…} SID : S-1-5-21-1581655573-3923512380-696647894-1104 TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSAP01,CN=Computers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSAP01.lab.adsecurity.org Enabled : True LastLogonDate : 1/24/2016 11:03:41 AM Name : ADSAP01 ObjectClass : computer ObjectGUID : b79bb5e3-8f9e-4ee0-a30c-5f66b61da681 OperatingSystem : Windows Server 2008 R2 Datacenter OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 1/4/2016 6:38:16 AM SamAccountName : ADSAP01$ ServicePrincipalName : {WSMAN/ADSAP01.lab.adsecurity.org, WSMAN/ADSAP01, TERMSRV/ADSAP01.lab.adsecurity.org, TERMSRV/ADSAP01…} SID : S-1-5-21-1581655573-3923512380-696647894-1105 TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSWKWIN7,CN=Computers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSWKWIN7.lab.adsecurity.org Enabled : True LastLogonDate : 1/20/2016 7:07:11 AM Name : ADSWKWIN7 ObjectClass : computer ObjectGUID : 2f164d63-d721-4b0e-a553-3ca0e272aa96 OperatingSystem : Windows 7 Enterprise OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 12/31/2015 8:03:05 AM SamAccountName : ADSWKWIN7$ ServicePrincipalName : {TERMSRV/ADSWKWin7.lab.adsecurity.org, TERMSRV/ADSWKWIN7, RestrictedKrbHost/ADSWKWIN7, HOST/ADSWKWIN7…} SID : S-1-5-21-1581655573-3923512380-696647894-1602 TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSAP02,CN=Computers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSAP02.lab.adsecurity.org Enabled : True LastLogonDate : 1/24/2016 7:39:48 AM Name : ADSAP02 ObjectClass : computer ObjectGUID : 1006978e-8627-4d01-98b6-3215c4ee4541 OperatingSystem : Windows Server 2012 R2 Datacenter OperatingSystemServicePack : OperatingSystemVersion : 6.3 (9600) PasswordLastSet : 1/4/2016 6:39:25 AM SamAccountName : ADSAP02$ ServicePrincipalName : {WSMAN/ADSAP02.lab.adsecurity.org, WSMAN/ADSAP02, TERMSRV/ADSAP02.lab.adsecurity.org, TERMSRV/ADSAP02…} SID : S-1-5-21-1581655573-3923512380-696647894-1603 TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName :
缓解措施:没有缓解措施。服务主体名称是Kerberos工作所必需的东西。
无需网络扫描发现企业服务第2部分
SPN扫描能够发现支持Kerberos的所有企业服务。与Active Directory集成的其他企业服务通常会在域“系统”容器(CN = System,DC = < domain >)中创建一个新的容器。在域系统容器中存储数据的一些企业应用程序包括:SCCM:“系统管理”
有一些应用程序,如Exchange,在域林配置分区“服务”容器(CN = Services,CN = Configuration,DC = < domain >)中创建容器。
缓解措施:没有合适的缓解措施。
发现服务帐户
找到服务帐户和使用帐户的服务器的最快方法是使用服务主体名称的用户帐户进行SPN扫描。
我的GitHub存储库中的Find-PSServiceAccounts PowerShell脚本可以执行sme查询,而不需要AD PowerShell模块。
PS C:> get-aduser -filter {ServicePrincipalName -like “*”} -Properties PasswordLastSet,LastLogonDate,ServicePrincipalName,TrustedForDelegation,Truste dtoAuthForDelegation DistinguishedName : CN=svc-adsMSSQL11,OU=Test,DC=lab,DC=adsecurity,DC=org Enabled : False GivenName : LastLogonDate : Name : svc-adsMSSQL11 ObjectClass : user ObjectGUID : 275d3bf4-80d3-42ba-9d77-405c5cc63c07 PasswordLastSet : 1/4/2016 7:13:03 AM SamAccountName : svc-adsMSSQL11 ServicePrincipalName : {MSSQL/adsMSSQL11.lab.adsecurity.org:7434} SID : S-1-5-21-1581655573-3923512380-696647894-3601 Surname : TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=svc-adsSQLSA,OU=Test,DC=lab,DC=adsecurity,DC=org Enabled : False GivenName : LastLogonDate : Name : svc-adsSQLSA ObjectClass : user ObjectGUID : 56faaab2-5b05-4bb2-aaea-0bdc1409eab3 PasswordLastSet : 1/4/2016 7:13:13 AM SamAccountName : svc-adsSQLSA ServicePrincipalName : {MSSQL/adsMSSQL23.lab.adsecurity.org:7434, MSSQL/adsMSSQL22.lab.adsecurity.org:5534, MSSQL/adsMSSQL21.lab.adsecurity.org:9834, MSSQL/adsMSSQL10.lab.adsecurity.org:14434…} SID : S-1-5-21-1581655573-3923512380-696647894-3602 Surname : TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=svc-adsMSSQL10,OU=Test,DC=lab,DC=adsecurity,DC=org Enabled : False GivenName : LastLogonDate : Name : svc-adsMSSQL10 ObjectClass : user ObjectGUID : 6c2f15a2-ba4a-485a-a367-39395ad82c86 PasswordLastSet : 1/4/2016 7:13:24 AM SamAccountName : svc-adsMSSQL10 ServicePrincipalName : {MSSQL/adsMSSQL10.lab.adsecurity.org:7434} SID : S-1-5-21-1581655573-3923512380-696647894-3603 Surname : TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName :
缓解措施:没有合适的缓解措施。
无需网络扫描发现内网计算机
每个连接Active Directory的计算机在AD中都有一个关联的计算机帐户。当计算机加入时,有几个与此计算机对象关联的属性会被更新,其中几个是非常有用的。这些包括:
Created Modified Enabled Description LastLogonDate (Reboot) PrimaryGroupID (516 = DC) PasswordLastSet (Active/Inactive)OperatingSystem OperatingSystemVersion OperatingSystemServicePack PasswordLastSet LastLogonDate (PowerShell cmdlet attribute) ServicePrincipalName TrustedForDelegation TrustedToAuthForDelegation
PS C:> get-adcomputer -filter {PrimaryGroupID -eq “515”} -Properties OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack,Passwo t,LastLogonDate,ServicePrincipalName,TrustedForDelegation,TrustedtoAuthForDelegation DistinguishedName : CN=ADSWRKWIN7,CN=Computers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSWRKWIN7.lab.adsecurity.org Enabled : True LastLogonDate : 8/29/2015 6:40:16 PM Name : ADSWRKWIN7 ObjectClass : computer ObjectGUID : e8b3bed2-75b4-4512-a4f0-6d9c2d975c70 OperatingSystem : Windows 7 Enterprise OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 8/29/2015 6:40:12 PM SamAccountName : ADSWRKWIN7$ ServicePrincipalName : {TERMSRV/ADSWRKWin7.lab.adsecurity.org, TERMSRV/ADSWRKWIN7, RestrictedKrbHost/ADSWRKWIN7, HOST/ADSWRKWIN7…} SID : S-1-5-21-1581655573-3923512380-696647894-1104 TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSAP01,CN=Computers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSAP01.lab.adsecurity.org Enabled : True LastLogonDate : 1/24/2016 11:03:41 AM Name : ADSAP01 ObjectClass : computer ObjectGUID : b79bb5e3-8f9e-4ee0-a30c-5f66b61da681 OperatingSystem : Windows Server 2008 R2 Datacenter OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 1/4/2016 6:38:16 AM SamAccountName : ADSAP01$ ServicePrincipalName : {WSMAN/ADSAP01.lab.adsecurity.org, WSMAN/ADSAP01, TERMSRV/ADSAP01.lab.adsecurity.org, TERMSRV/ADSAP01…} SID : S-1-5-21-1581655573-3923512380-696647894-1105 TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSWKWIN7,CN=Computers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSWKWIN7.lab.adsecurity.org Enabled : True LastLogonDate : 1/20/2016 7:07:11 AM Name : ADSWKWIN7 ObjectClass : computer ObjectGUID : 2f164d63-d721-4b0e-a553-3ca0e272aa96 OperatingSystem : Windows 7 Enterprise OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 12/31/2015 8:03:05 AM SamAccountName : ADSWKWIN7$ ServicePrincipalName : {TERMSRV/ADSWKWin7.lab.adsecurity.org, TERMSRV/ADSWKWIN7, RestrictedKrbHost/ADSWKWIN7, HOST/ADSWKWIN7…} SID : S-1-5-21-1581655573-3923512380-696647894-1602 TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSAP02,CN=Computers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSAP02.lab.adsecurity.org Enabled : True LastLogonDate : 1/24/2016 7:39:48 AM Name : ADSAP02 ObjectClass : computer ObjectGUID : 1006978e-8627-4d01-98b6-3215c4ee4541 OperatingSystem : Windows Server 2012 R2 Datacenter OperatingSystemServicePack : OperatingSystemVersion : 6.3 (9600) PasswordLastSet : 1/4/2016 6:39:25 AM SamAccountName : ADSAP02$ ServicePrincipalName : {WSMAN/ADSAP02.lab.adsecurity.org, WSMAN/ADSAP02, TERMSRV/ADSAP02.lab.adsecurity.org, TERMSRV/ADSAP02…} SID : S-1-5-21-1581655573-3923512380-696647894-1603 TrustedForDelegation : False TrustedToAuthForDelegation : False UserPrincipalName :
通过将PrimaryGroupID的值更改为“516”,或通过更改为“-filter *”获取所有计算机,可以收集域控制器的相同数据。
PS C:> get-adcomputer -filter {PrimaryGroupID -eq “516”} -Properties OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack,PasswordLastSe t,LastLogonDate,ServicePrincipalName,TrustedForDelegation,TrustedtoAuthForDelegation DistinguishedName : CN=ADSDC02,OU=Domain Controllers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSDC02.lab.adsecurity.org Enabled : True LastLogonDate : 1/20/2016 6:46:18 AM Name : ADSDC02 ObjectClass : computer ObjectGUID : 1efe44af-d8d9-420b-a66a-8d771d295085 OperatingSystem : Windows Server 2008 R2 Datacenter OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 12/31/2015 6:34:15 AM SamAccountName : ADSDC02$ ServicePrincipalName : {DNS/ADSDC02.lab.adsecurity.org, HOST/ADSDC02/ADSECLAB, HOST/ADSDC02.lab.adsecurity.org/ADSECLAB, GC/ADSDC02.lab.adsecurity.org/lab.adsecurity.org…} SID : S-1-5-21-1581655573-3923512380-696647894-1103 TrustedForDelegation : True TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSDC01,OU=Domain Controllers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSDC01.lab.adsecurity.org Enabled : True LastLogonDate : 1/20/2016 6:47:21 AM Name : ADSDC01 ObjectClass : computer ObjectGUID : 31b2038d-e63d-4cfe-b7b6-77206c325af9 OperatingSystem : Windows Server 2008 R2 Datacenter OperatingSystemServicePack : Service Pack 1 OperatingSystemVersion : 6.1 (7601) PasswordLastSet : 12/31/2015 6:34:14 AM SamAccountName : ADSDC01$ ServicePrincipalName : {ldap/ADSDC01.lab.adsecurity.org/ForestDnsZones.lab.adsecurity.org, ldap/ADSDC01.lab.adsecurity.org/DomainDnsZones.lab.adsecurity.org, TERMSRV/ADSDC01, TERMSRV/ADSDC01.lab.adsecurity.org…} SID : S-1-5-21-1581655573-3923512380-696647894-1000 TrustedForDelegation : True TrustedToAuthForDelegation : False UserPrincipalName : DistinguishedName : CN=ADSDC03,OU=Domain Controllers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSDC03.lab.adsecurity.org Enabled : True LastLogonDate : 1/20/2016 6:35:16 AM Name : ADSDC03 ObjectClass : computer ObjectGUID : 0a2d849c-cc59-4785-8ba2-997fd6ca4dc8 OperatingSystem : Windows Server 2012 R2 Datacenter OperatingSystemServicePack : OperatingSystemVersion : 6.3 (9600) PasswordLastSet : 12/31/2015 6:34:16 AM SamAccountName : ADSDC03$ ServicePrincipalName : {DNS/ADSDC03.lab.adsecurity.org, HOST/ADSDC03.lab.adsecurity.org/ADSECLAB, RPC/c8e1e99e-2aaa-4888-a5d8-23a4355fac48._msdcs.lab.adsecurity.org, GC/ADSDC03.lab.adsecurity.org/lab.adsecurity.org…} SID : S-1-5-21-1581655573-3923512380-696647894-1601 TrustedForDelegation : True TrustedToAuthForDelegation : False UserPrincipalName :
这提供了有关Windows操作系统版本以及加入Active Directory的非Windows设备的有用信息。
查找非Windows设备的一些查询示例:
OperatingSystem -Like “*Samba*” OperatingSystem -Like “*OnTap*” OperatingSystem -Like “*Data Domain*” OperatingSystem -Like “*EMC*” OperatingSystem -Like “*Windows NT*”
缓解措施:没有缓解措施。
识别管理员帐户
有两种有效的方法可以在Active Directory中发现具有较高权限的帐户。第一个是标准组枚举方法,用于标识Active Directory管理员组的所有成员:域管理员,管理员,企业管理员等。通常,域“Adminsitrators”组的递归组成员资格将提供所有AD管理员的列表。
第二种方法,我在2015年在DerbyCon中强调的涉及到将所有属性“AdminCount”设置为1的所有帐户。要注意的是,在此查询中可能会返回不再具有管理员权限的帐户,因为该值对应的帐户如果从管理组中删除后,不会自动重置。可以在这篇博文中查看有关SDProp和AdminCount属性的更多信息:“ Active Directory内网渗透权限持久控制#15:利用AdminSDHolder和SDProp(Re)获得域管理员权限 ”。
PS C:> get-aduser -filter {AdminCount -eq 1} -Properties Name,AdminCount,ServicePrincipalName,PasswordLastSet,LastLogonDate,MemberOf AdminCount : 1 DistinguishedName : CN=ADSAdministrator,CN=Users,DC=lab,DC=adsecurity,DC=org Enabled : True GivenName : LastLogonDate : 1/27/2016 8:55:48 AM MemberOf : {CN=Administrators,CN=Builtin,DC=lab,DC=adsecurity,DC=org, CN=Schema Admins,CN=Users,DC=lab,DC=adsecurity,DC=org, CN=Group Policy Creator Owners,CN=Users,DC=lab,DC=adsecurity,DC=org, CN=Enterprise Admins,CN=Users,DC=lab,DC=adsecurity,DC=org…} Name : ADSAdministrator ObjectClass : user ObjectGUID : 72ac7731-0a76-4e5a-8e5d-b4ded9a304b5 PasswordLastSet : 12/31/2015 8:45:27 AM SamAccountName : ADSAdministrator SID : S-1-5-21-1581655573-3923512380-696647894-500 Surname : UserPrincipalName : AdminCount : 1 DistinguishedName : CN=krbtgt,CN=Users,DC=lab,DC=adsecurity,DC=org Enabled : False GivenName : LastLogonDate : MemberOf : {CN=Denied RODC Password Replication Group,CN=Users,DC=lab,DC=adsecurity,DC=org} Name : krbtgt ObjectClass : user ObjectGUID : 3d5be8dd-df7f-4f84-b2cf-4556310a7292 PasswordLastSet : 8/27/2015 7:10:22 PM SamAccountName : krbtgt ServicePrincipalName : {kadmin/changepw} SID : S-1-5-21-1581655573-3923512380-696647894-502 Surname : UserPrincipalName : AdminCount : 1 DistinguishedName : CN=LukeSkywalker,OU=AD Management,DC=lab,DC=adsecurity,DC=org Enabled : True GivenName : LastLogonDate : 8/29/2015 7:29:52 PM MemberOf : {CN=Domain Admins,CN=Users,DC=lab,DC=adsecurity,DC=org} Name : LukeSkywalker ObjectClass : user ObjectGUID : 32b5226b-aa6d-4b35-a031-ddbcbde07137 PasswordLastSet : 8/29/2015 7:26:02 PM SamAccountName : LukeSkywalker SID : S-1-5-21-1581655573-3923512380-696647894-2629 Surname : UserPrincipalName :
注意:这些方法不会返回带有自定义委托的管理员帐户 ——管理帐户根本不是标准AD组的成员。
缓解措施:没有缓解措施。期望攻击者更多地去了解哪些帐户拥有着重要资源的权限。
查找管理员组
大多数组织都有自定义的管理员组,并具有不同的命名方案,但是在大多数组织的命名中都包括单词“admin”。在所有的安全用户组的组名中使用“admin”进行筛选是快速获取AD中管理员组列表的方式。
PS C:> get-adgroup -filter {GroupCategory -eq ‘Security’ -AND Name -like “*admin*”} DistinguishedName : CN=Domain Admins,CN=Users,DC=lab,DC=adsecurity,DC=org GroupCategory : Security GroupScope : Global Name : Domain Admins ObjectClass : group ObjectGUID : 5621cc71-d318-4e2c-b1b1-c181f630e10e SamAccountName : Domain Admins SID : S-1-5-21-1581655573-3923512380-696647894-512 DistinguishedName : CN=Workstation Admins,OU=AD Management,DC=lab,DC=adsecurity,DC=org GroupCategory : Security GroupScope : Global Name : Workstation Admins ObjectClass : group ObjectGUID : 88cd4d52-aedb-4f90-9ebd-02d4c0e322e4 SamAccountName : WorkstationAdmins SID : S-1-5-21-1581655573-3923512380-696647894-2627 DistinguishedName : CN=Server Admins,OU=AD Management,DC=lab,DC=adsecurity,DC=org GroupCategory : Security GroupScope : Global Name : Server Admins ObjectClass : group ObjectGUID : 3877c311-9321-41c0-a6b5-c0d88684b335 SamAccountName : ServerAdmins SID : S-1-5-21-1581655573-3923512380-696647894-2628 DistinguishedName : CN=DnsAdmins,CN=Users,DC=lab,DC=adsecurity,DC=org GroupCategory : Security GroupScope : DomainLocal Name : DnsAdmins ObjectClass : group ObjectGUID : 46caa0dd-6a22-42a3-a2d9-bd467934aab5 SamAccountName : DnsAdmins SID : S-1-5-21-1581655573-3923512380-696647894-1101 DistinguishedName : CN=Administrators,CN=Builtin,DC=lab,DC=adsecurity,DC=org GroupCategory : Security GroupScope : DomainLocal Name : Administrators ObjectClass : group ObjectGUID : d03a4afc-b14e-48c6-893c-bbc1ac872ca2 SamAccountName : Administrators SID : S-1-5-32-544 DistinguishedName : CN=Hyper-V Administrators,CN=Builtin,DC=lab,DC=adsecurity,DC=org GroupCategory : Security GroupScope : DomainLocal Name : Hyper-V Administrators ObjectClass : group ObjectGUID : 3137943e-f1c3-46d0-acf2-4711bf6f8417 SamAccountName : Hyper-V Administrators SID : S-1-5-32-578 DistinguishedName : CN=Enterprise Admins,CN=Users,DC=lab,DC=adsecurity,DC=org GroupCategory : Security GroupScope : Universal Name : Enterprise Admins ObjectClass : group ObjectGUID : 7674d6ad-777b-4db1-9fe3-e31fd664eb6e SamAccountName : Enterprise Admins SID : S-1-5-21-1581655573-3923512380-696647894-519 DistinguishedName : CN=Schema Admins,CN=Users,DC=lab,DC=adsecurity,DC=org GroupCategory : Security GroupScope : Universal Name : Schema Admins ObjectClass : group ObjectGUID : 420e8ee5-77f5-43b8-9f51-cde3feea0662 SamAccountName : Schema Admins SID : S-1-5-21-1581655573-3923512380-696647894-518
识别合作伙伴组织
外部电子邮件地址会被添加到企业组织的全局地址列表(GAL)中,以促进合作组织之间的协作。这些电子邮件地址在Active Directory中创建为联系人对象。
PS C:> get-adobject -filter {ObjectClass -eq “Contact”} -Prop * CanonicalName : lab.adsecurity.org/Contaxts/Admiral Ackbar CN : Admiral Ackbar Created : 1/27/2016 10:00:06 AM createTimeStamp : 1/27/2016 10:00:06 AM Deleted : Description : DisplayName : DistinguishedName : CN=Admiral Ackbar,OU=Contaxts,DC=lab,DC=adsecurity,DC=org dSCorePropagationData : {12/31/1600 4:00:00 PM} givenName : Admiral instanceType : 4 isDeleted : LastKnownParent : mail : [email protected] Modified : 1/27/2016 10:00:24 AM modifyTimeStamp : 1/27/2016 10:00:24 AM Name : Admiral Ackbar nTSecurityDescriptor : System.DirectoryServices.ActiveDirectorySecurity ObjectCategory : CN=Person,CN=Schema,CN=Configuration,DC=lab,DC=adsecurity,DC=org ObjectClass : contact ObjectGUID : 52c80a1d-a614-4889-92d4-1f588387d9f3 ProtectedFromAccidentalDeletion : False sDRightsEffective : 15 sn : Ackbar uSNChanged : 275113 uSNCreated : 275112 whenChanged : 1/27/2016 10:00:24 AM whenCreated : 1/27/2016 10:00:06 AM CanonicalName : lab.adsecurity.org/Contaxts/Leia Organa CN : Leia Organa Created : 1/27/2016 10:01:25 AM createTimeStamp : 1/27/2016 10:01:25 AM Deleted : Description : DisplayName : DistinguishedName : CN=Leia Organa,OU=Contaxts,DC=lab,DC=adsecurity,DC=org dSCorePropagationData : {12/31/1600 4:00:00 PM} givenName : Leia instanceType : 4 isDeleted : LastKnownParent : mail : [email protected] Modified : 1/27/2016 10:09:15 AM modifyTimeStamp : 1/27/2016 10:09:15 AM Name : Leia Organa nTSecurityDescriptor : System.DirectoryServices.ActiveDirectorySecurity ObjectCategory : CN=Person,CN=Schema,CN=Configuration,DC=lab,DC=adsecurity,DC=org ObjectClass : contact ObjectGUID : ba8ec318-a0a2-41d5-923e-a3f646d1c7f9 ProtectedFromAccidentalDeletion : False sDRightsEffective : 15 sn : Organa uSNChanged : 275157 uSNCreated : 275132 whenChanged : 1/27/2016 10:09:15 AM whenCreated : 1/27/2016 10:01:25 AM
缓解措施:唯一的缓解措施是不要在Active Directory中放置联系人对象,这可能是一个可选的办法。
识别域密码策略
使用“net accounts”或AD PowerShell模块“ Get-ADDefaultDomainPasswordPolicy ” 可以轻松的枚举域密码策略。
PS C:> Get-ADDefaultDomainPasswordPolicy ComplexityEnabled : True DistinguishedName : DC=lab,DC=adsecurity,DC=org LockoutDuration : 00:30:00 LockoutObservationWindow : 00:30:00 LockoutThreshold : 0 MaxPasswordAge : 42.00:00:00 MinPasswordAge : 1.00:00:00 MinPasswordLength : 7 objectClass : {domainDNS} objectGuid : bbf0907c-3171-4448-b33a-76a48d859039 PasswordHistoryCount : 24 ReversibleEncryptionEnabled : False
缓解措施:没有合理的缓解措施。
识别细粒度密码策略
如果域功能级别(DFL)设置的是“Windows Server 2008”或更高版本,则可以使用“细粒度密码策略(FGPP)”的新功能来提供可应用于用户或组的各种密码策略(不是OU)。虽然微软从Windows Server 2008(DFL)开始制定了细粒度密码策略,但Active Directory管理中心(ADAC)尚未更新,来支持Windows Server 2012之前的FGPP管理。从“查看”菜单启用Active Directory用户和计算机中的选项的“高级功能”,然后浏览到系统,密码设置容器(CN =密码设置容器,CN =系统,DC = DOMAIN,DC = COM)将会显示任何域的FGPP对象。请注意,如果未启用“高级功能”,则看不到系统容器。
FGPP覆盖域密码策略设置,可用于要求更严格的密码策略或为域用户子集启用较少限制的设置。
PS C:> Get-ADFineGrainedPasswordPolicy -Filter * AppliesTo : {CN=Special FGPP Users,OU=Test,DC=lab,DC=adsecurity,DC=org} ComplexityEnabled : True DistinguishedName : CN=Special Password Policy Group,CN=Password Settings Container,CN=System,DC=lab,DC=adsecurity,DC=org LockoutDuration : 12:00:00 LockoutObservationWindow : 00:15:00 LockoutThreshold : 10 MaxPasswordAge : 00:00:00.0000365 MinPasswordAge : 00:00:00 MinPasswordLength : 7 Name : Special Password Policy Group ObjectClass : msDS-PasswordSettings ObjectGUID : c1301d8f-ba52-4bb3-b160-c449d9c7b8f8 PasswordHistoryCount : 24 Precedence : 100 ReversibleEncryptionEnabled : True
缓解措施:没有合理的缓解措施。
识别托管服务帐户和组托管服务帐户
Microsoft将托管服务帐户( MSAs)添加为Windows Server 2008 R2 DFL的新功能,能够自动管理和更新MSA密码。关键的限制是MSA只能链接到运行Windows 7或Windows Server 2008 R2(或更新版本)的单台计算机。
Windows Server 2012 DFL向一个叫做组管理服务帐户(gMSA)的 MSA引入了需要的更新,使gMSA可以链接到运行Windows 8或Windows Server 2012(或更高版本)的任意数量的计算机。将DFL升级到Windows Server 2012或更高版本后,默认的AD服务帐户创建选项将创建一个新的gMSA(例如,使用AD PowerShell模块cmdlet New-ADServiceAccount)。在创建gMSA之前,需要创建KDS根密钥(Add-KDSRootKey -EffectiveImmediately)。
PS C:> Get-ADServiceAccount -Filter * -Properties * AccountExpirationDate : 12/27/2017 11:14:38 AM accountExpires : 131588756787719890 AccountLockoutTime : AccountNotDelegated : False AllowReversiblePasswordEncryption : False AuthenticationPolicy : {} AuthenticationPolicySilo : {} BadLogonCount : 0 badPasswordTime : 0 badPwdCount : 0 CannotChangePassword : False CanonicalName : lab.adsecurity.org/Managed Service Accounts/ADSMSA12 Certificates : {} CN : ADSMSA12 codePage : 0 CompoundIdentitySupported : {False} countryCode : 0 Created : 1/27/2016 11:14:38 AM createTimeStamp : 1/27/2016 11:14:38 AM Deleted : Description : gMSA for XYZ App DisplayName : ADSMSA12 DistinguishedName : CN=ADSMSA12,CN=Managed Service Accounts,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSAP02.lab.adsecurity.org DoesNotRequirePreAuth : False dSCorePropagationData : {12/31/1600 4:00:00 PM} Enabled : True HomedirRequired : False HomePage : HostComputers : {} instanceType : 4 isCriticalSystemObject : False isDeleted : KerberosEncryptionType : {RC4, AES128, AES256} LastBadPasswordAttempt : LastKnownParent : lastLogoff : 0 lastLogon : 0 LastLogonDate : localPolicyFlags : 0 LockedOut : False logonCount : 0 ManagedPasswordIntervalInDays : {21} MemberOf : {} MNSLogonAccount : False Modified : 1/27/2016 11:14:39 AM modifyTimeStamp : 1/27/2016 11:14:39 AM msDS-ManagedPasswordId : {1, 0, 0, 0…} msDS-ManagedPasswordInterval : 21 msDS-SupportedEncryptionTypes : 28 msDS-User-Account-Control-Computed : 0 Name : ADSMSA12 nTSecurityDescriptor : System.DirectoryServices.ActiveDirectorySecurity ObjectCategory : CN=ms-DS-Group-Managed-Service-Account,CN=Schema,CN=Configuration,DC=lab,DC=adsecurity,DC=org ObjectClass : msDS-GroupManagedServiceAccount ObjectGUID : fe4c287b-f9d2-45ce-abe3-4acd6d09c3ff objectSid : S-1-5-21-1581655573-3923512380-696647894-3605 PasswordExpired : False PasswordLastSet : 1/27/2016 11:14:38 AM PasswordNeverExpires : False PasswordNotRequired : False PrimaryGroup : CN=Domain Computers,CN=Users,DC=lab,DC=adsecurity,DC=org primaryGroupID : 515 PrincipalsAllowedToDelegateToAccount : {} PrincipalsAllowedToRetrieveManagedPassword : {} ProtectedFromAccidentalDeletion : False pwdLastSet : 130983956789440119 SamAccountName : ADSMSA12$ sAMAccountType : 805306369 sDRightsEffective : 15 ServicePrincipalNames : SID : S-1-5-21-1581655573-3923512380-696647894-3605 SIDHistory : {} TrustedForDelegation : False TrustedToAuthForDelegation : False UseDESKeyOnly : False userAccountControl : 4096 userCertificate : {} UserPrincipalName : uSNChanged : 275383 uSNCreated : 275380 whenChanged : 1/27/2016 11:14:39 AM whenCreated : 1/27/2016 11:14:38 AM
缓解措施:没有合理的缓解措施。
识别具有工作站或服务器的本地管理员权限的用户组
PowerView已经引入了这个功能。
组策略通过“限制组”的功能提供强制本地组成员身份的功能,例如OU中所有计算机上的管理员组。可以通过识别使用限制组的GPO和应用于其的OU来跟踪这一点。这可以提供具有管理员权限的AD组和相关的计算机列表。
使用PowerView(PowerSploit的一部分),我们可以快速识别出包括“限制组”的GPO。
PS C:> Get-NetGPOGroup GPOName : {E9CABE0F-3A3F-40B1-B4C1-1FA89AC1F212} GPOPath : lab.adsecurity.orgSysVollab.adsecurity.orgPolicies{E9CABE0F-3A3F-40B1-B4C1-1FA89AC1F212} Members : {Server Admins} MemberOf : {Administrators} GPODisplayName : Add Server Admins to Local Administrator Group Filters : GPOName : {45556105-EFE6-43D8-A92C-AACB1D3D4DE5} GPOPath : lab.adsecurity.orgSysVollab.adsecurity.orgPolicies{45556105-EFE6-43D8-A92C-AACB1D3D4DE5} Members : {Workstation Admins} MemberOf : {Administrators} GPODisplayName : Add Workstation Admins to Local Administrators Group
一旦我们获得了这些信息,我们可以使用PowerView cmdlet 检查一下GPO链接的OU。
PS C:> get-netOU -guid “E9CABE0F-3A3F-40B1-B4C1-1FA89AC1F212” LDAP://OU=Servers,DC=lab,DC=adsecurity,DC=org PS C:> get-netOU -guid “45556105-EFE6-43D8-A92C-AACB1D3D4DE5” LDAP://OU=Workstations,DC=lab,DC=adsecurity,DC=org
接下来,我们识别这些OU中的计算机
PS C:> get-adcomputer -filter * -SearchBase “OU=Servers,DC=lab,DC=adsecurity,DC=org” DistinguishedName : CN=ADSAP01,OU=Servers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSAP01.lab.adsecurity.org Enabled : True Name : ADSAP01 ObjectClass : computer ObjectGUID : b79bb5e3-8f9e-4ee0-a30c-5f66b61da681 SamAccountName : ADSAP01$ SID : S-1-5-21-1581655573-3923512380-696647894-1105 UserPrincipalName : DistinguishedName : CN=ADSAP02,OU=Servers,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSAP02.lab.adsecurity.org Enabled : True Name : ADSAP02 ObjectClass : computer ObjectGUID : 1006978e-8627-4d01-98b6-3215c4ee4541 SamAccountName : ADSAP02$ SID : S-1-5-21-1581655573-3923512380-696647894-1603 UserPrincipalName : PS C:> get-adcomputer -filter * -SearchBase “OU=Workstations,DC=lab,DC=adsecurity,DC=org” DistinguishedName : CN=ADSWRKWIN7,OU=Workstations,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSWRKWIN7.lab.adsecurity.org Enabled : True Name : ADSWRKWIN7 ObjectClass : computer ObjectGUID : e8b3bed2-75b4-4512-a4f0-6d9c2d975c70 SamAccountName : ADSWRKWIN7$ SID : S-1-5-21-1581655573-3923512380-696647894-1104 UserPrincipalName : DistinguishedName : CN=ADSWKWIN7,OU=Workstations,DC=lab,DC=adsecurity,DC=org DNSHostName : ADSWKWIN7.lab.adsecurity.org Enabled : True Name : ADSWKWIN7 ObjectClass : computer ObjectGUID : 2f164d63-d721-4b0e-a553-3ca0e272aa96 SamAccountName : ADSWKWIN7$ SID : S-1-5-21-1581655573-3923512380-696647894-1602 UserPrincipalName :
使用几个PowerShell命令,我们就能够识别通过GPO配置的AD组,并且这些用户组在域中的计算机上具有完整的管理员权限。
缓解措施:唯一的缓解措施是删除能够读取管理本地组的GPO的域用户。只有域中的计算机才有读取和处理这些GPO的需要。请注意,一旦攻击者在域中的单个计算机上获得管理员权限,他们也可以使用计算机帐户来读取GPO。
识别Microsoft AppLocker设置
Microsoft AppLocker可用于将应用程序执行限制为特定的已批准的应用程序。AppLocker推荐了几个不同的阶段:
阶段1:审核模式 – 审核用户执行的所有执行操作以及运行的路径。此日志记录模式提供有关企业中运行的程序的信息,并将该数据记录到事件日志中。
阶段2:“黑名单模式” – 配置AppLocker阻止用户主目录,配置文件路径和用户对其进行写入访问的临时文件位置的任何文件的执行,如c:temp。
阶段3:“文件夹白名单模式” -将AppLocker配置为构建阶段2,再通过添加新规则仅允许在特定文件夹(如c:Windows和c:Program Files)中执行文件,。
阶段4:“应用程序白名单” – 列出企业环境中使用的所有应用程序,并通过位置和散列(最好是数字签名)将这些应用程序列入白名单。这确保只有经过批准的组织应用程序才能执行。
问题是AppLocker是通过组策略来配置的,它通常保持默认状态,所以所有域用户能够读取配置。
缓解措施:唯一的缓解措施是删除能够读取管理本地组的GPO的域用户。只有域中的计算机才需要读取和处理这些GPO的能力。请注意,一旦攻击者在域中的单个计算机上获得管理员权限,他们也可以使用计算机帐户来读取GPO。
识别Microsoft EMET设置
Microsoft增强缓解体验工具包(EMET)有助于防止应用程序漏洞被利用(包括一些0day)。这是一个免费的产品,有效地“包装”了流行的应用程序,以便在尝试使用漏洞时,尝试在“包装器”中阻断,并不会使其在操作系统执行。
企业通常使用组策略来配置EMET,并且通常保持了默认状态,所以所有的域用户能够读取配置。
缓解措施:唯一的缓解措施是删除能够读取管理本地组的GPO的域用户。只有域中的计算机才需要读取和处理这些GPO的能力。请注意,一旦攻击者在域中的单个计算机上获得管理员权限,他们也可以使用计算机帐户来读取GPO。
识别Microsoft LAPS委托
Microsoft本地管理员密码解决方案(LAPS)是管理企业中计算机的本地管理员帐户密码的好选择。LAPS向AD计算机对象添加两个新属性,一个用于存储本地管理员密码,另一个用于跟踪上次更改密码的时间。LAPS GPO用于配置LAPS客户端来确定密码更改时间,密码长度,管理的帐户等。计算机的本地管理员密码由计算机上的LAPS客户端创建,并且密码会设置为一个新的值也就是LAPS密码属性(ms-Mcs-AdmPwd),最后在本地更改。为了管理员可以使用密码,需要委托ms-Mcs-AdmPwd的读取权限。所以可以通过枚举属性上的安全ACL来识别该委派。
缓解措施:唯一的缓解措施是删除能够读取管理本地组的GPO的域用户。只有域中的计算机才需要读取和处理这些GPO的能力。请注意,一旦攻击者在域中的单个计算机上获得管理员权限,他们也可以使用计算机帐户来读取GPO。
在域中的SYSVOL共享中发现管理凭据
管理员通常会将脚本或组策略中的凭据放在SYSVOL中。
有关此问题的更多信息,包括缓解措施可以在这篇博文中阅读:“ 在SYSVOL中查找密码并利用组策略首选项 ”
结论
这些只是一些有趣的数据项,可以在域用户权限下轻松地搜集Active Directory信息。期望攻击者在企业中立足并对当前的策略进行相应的调整。
注意:我有一些脚本已经执行了许多类似的操作,我还没有没做好进行共享的准备。在未来的某个时刻,我可以分享这些给你。