From 1c283cf63dfb2a31670408d9249881742ae4b205 Mon Sep 17 00:00:00 2001 From: rvazarkar Date: Mon, 8 Jul 2024 16:17:33 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20BloodHou?= =?UTF-8?q?ndAD/SharpHoundCommon@de7bcf8e85d9c4875acec3e0efd97004b61ad889?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/Impersonate.Impersonator.html | 64 +- ...mmonLib.ActiveDirectoryRuleDescriptor.html | 28 +- ...Lib.ActiveDirectorySecurityDescriptor.html | 24 +- ...SharpHoundCommonLib.CSVComputerStatus.html | 20 +- api/SharpHoundCommonLib.Cache.html | 44 +- api/SharpHoundCommonLib.CommonLib.html | 8 +- ...HoundCommonLib.ConnectionPoolManager.html} | 208 +- ...undCommonLib.DirectoryEntryExtensions.html | 507 +++ ...HoundCommonLib.Enums.CAExtensionTypes.html | 32 +- api/SharpHoundCommonLib.Enums.CommonOids.html | 24 +- api/SharpHoundCommonLib.Enums.DataType.html | 52 +- api/SharpHoundCommonLib.Enums.DataTypes.html | 24 +- ...rpHoundCommonLib.Enums.DirectoryPaths.html | 46 +- ... SharpHoundCommonLib.Enums.EdgeNames.html} | 152 +- ...arpHoundCommonLib.Enums.LSAPrivileges.html | 180 +- ...rpHoundCommonLib.Enums.LdapErrorCodes.html | 4 + ...oundCommonLib.Enums.LdapFailureReason.html | 167 + ...arpHoundCommonLib.Enums.NamingContext.html | 151 + api/SharpHoundCommonLib.Enums.html | 6 + ...mmonLib.Exceptions.LDAPQueryException.html | 12 +- ...xceptions.LdapAuthenticationException.html | 35 +- ...ib.Exceptions.LdapConnectionException.html | 8 +- ...monLib.Exceptions.NoLdapDataException.html | 57 +- api/SharpHoundCommonLib.Extensions.html | 692 +-- api/SharpHoundCommonLib.Helpers.html | 108 +- api/SharpHoundCommonLib.ILDAPUtils.html | 1616 ------- api/SharpHoundCommonLib.ILdapUtils.html | 1237 ++++++ api/SharpHoundCommonLib.IRegistryKey.html | 4 +- ...harpHoundCommonLib.ISearchResultEntry.html | 76 +- api/SharpHoundCommonLib.LDAPConfig.html | 70 +- api/SharpHoundCommonLib.LDAPProperties.html | 404 +- ...ndCommonLib.LDAPQueries.CommonFilters.html | 32 +- ...oundCommonLib.LDAPQueries.CommonPaths.html | 12 +- ...ommonLib.LDAPQueries.CommonProperties.html | 56 +- ...HoundCommonLib.LDAPQueries.LDAPFilter.html | 76 +- api/SharpHoundCommonLib.LDAPUtils.html | 1881 -------- ...harpHoundCommonLib.LdapConnectionPool.html | 394 ++ ...pHoundCommonLib.LdapConnectionWrapper.html | 356 +- ...rpHoundCommonLib.LdapQueryParameters.html} | 178 +- ...pHoundCommonLib.LdapQuerySetupResult.html} | 107 +- api/SharpHoundCommonLib.LdapResult-1.html | 492 +++ api/SharpHoundCommonLib.LdapUtils.html | 1408 ++++++ api/SharpHoundCommonLib.MockRegistryKey.html | 4 +- api/SharpHoundCommonLib.NativeMethods.html | 76 +- api/SharpHoundCommonLib.NoOpLogger.html | 12 +- api/SharpHoundCommonLib.OutputTypes.ACE.html | 32 +- ...pHoundCommonLib.OutputTypes.APIResult.html | 8 +- ...nLib.OutputTypes.AceRegistryAPIResult.html | 4 +- ...Lib.OutputTypes.BoolRegistryAPIResult.html | 4 +- ...dCommonLib.OutputTypes.CARegistryData.html | 16 +- ...nLib.OutputTypes.CertificateExtension.html | 12 +- ...rpHoundCommonLib.OutputTypes.Computer.html | 56 +- ...dCommonLib.OutputTypes.ComputerStatus.html | 28 +- ...pHoundCommonLib.OutputTypes.Container.html | 4 +- ...dCommonLib.OutputTypes.DCRegistryData.html | 8 +- ...harpHoundCommonLib.OutputTypes.Domain.html | 16 +- ...oundCommonLib.OutputTypes.DomainTrust.html | 24 +- ...ypes.EnrollmentAgentRegistryAPIResult.html | 4 +- ...undCommonLib.OutputTypes.EnterpriseCA.html | 12 +- ...harpHoundCommonLib.OutputTypes.GPLink.html | 20 +- ...SharpHoundCommonLib.OutputTypes.Group.html | 4 +- ...nLib.OutputTypes.IntRegistryAPIResult.html | 4 +- ...dCommonLib.OutputTypes.IssuancePolicy.html | 4 +- ...Lib.OutputTypes.LSAPrivilegeAPIResult.html | 4 +- ...HoundCommonLib.OutputTypes.LocalGroup.html | 12 +- ...onLib.OutputTypes.LocalGroupAPIResult.html | 20 +- ...arpHoundCommonLib.OutputTypes.MetaTag.html | 16 +- ...oundCommonLib.OutputTypes.NTAuthStore.html | 4 +- ...dCommonLib.OutputTypes.NamedPrincipal.html | 20 +- api/SharpHoundCommonLib.OutputTypes.OU.html | 12 +- ...HoundCommonLib.OutputTypes.OutputBase.html | 24 +- ...CommonLib.OutputTypes.OutputWrapper-1.html | 8 +- ...onLib.OutputTypes.ResultingGPOChanges.html | 20 +- ...harpHoundCommonLib.OutputTypes.RootCA.html | 4 +- ...undCommonLib.OutputTypes.SPNPrivilege.html | 12 +- ...arpHoundCommonLib.OutputTypes.Session.html | 20 +- ...ommonLib.OutputTypes.SessionAPIResult.html | 4 +- ...dCommonLib.OutputTypes.TypedPrincipal.html | 32 +- api/SharpHoundCommonLib.OutputTypes.User.html | 16 +- ...utTypes.UserRightsAssignmentAPIResult.html | 16 +- api/SharpHoundCommonLib.ParsedGPLink.html | 8 +- ...arpHoundCommonLib.Processors.ACEGuids.html | 56 +- ...oundCommonLib.Processors.ACLProcessor.html | 68 +- ...mmonLib.Processors.CertAbuseProcessor.html | 85 +- ...mmonLib.Processors.CertRegistryResult.html | 12 +- ...onLib.Processors.ComputerAvailability.html | 20 +- ...mmonLib.Processors.ComputerProperties.html | 20 +- ...b.Processors.ComputerSessionProcessor.html | 26 +- ...mmonLib.Processors.ContainerProcessor.html | 62 +- ...monLib.Processors.DCRegistryProcessor.html | 26 +- ...onLib.Processors.DomainTrustProcessor.html | 22 +- ...Processors.EnrollmentAgentRestriction.html | 89 +- ...s.GPOLocalGroupProcessor.GroupResults.html | 12 +- ...Lib.Processors.GPOLocalGroupProcessor.html | 18 +- ...ndCommonLib.Processors.GroupProcessor.html | 30 +- ...b.Processors.IssuancePolicyProperties.html | 8 +- ...nLib.Processors.LDAPPropertyProcessor.html | 74 +- ...monLib.Processors.LocalGroupProcessor.html | 26 +- ...ommonLib.Processors.ParsedCertificate.html | 24 +- ...HoundCommonLib.Processors.PortScanner.html | 16 +- ...ndCommonLib.Processors.RegistryResult.html | 4 +- ...undCommonLib.Processors.SPNProcessors.html | 18 +- ...ndCommonLib.Processors.UserProperties.html | 12 +- ...cessors.UserRightsAssignmentProcessor.html | 26 +- ...rpHoundCommonLib.ResolvedSearchResult.html | 32 +- api/SharpHoundCommonLib.Result-1.html | 384 ++ ...t.html => SharpHoundCommonLib.Result.html} | 106 +- api/SharpHoundCommonLib.SHRegistryKey.html | 8 +- ...CommonLib.SearchResultEntryExtensions.html | 788 ++++ ...undCommonLib.SearchResultEntryWrapper.html | 90 +- ...harpHoundCommonLib.WellKnownPrincipal.html | 4 +- api/SharpHoundCommonLib.html | 29 +- api/SharpHoundRPC.Extensions.html | 12 +- api/SharpHoundRPC.Handles.BasePointer.html | 24 +- api/SharpHoundRPC.Handles.LSAHandle.html | 20 +- api/SharpHoundRPC.Handles.LSAPointer.html | 16 +- api/SharpHoundRPC.Handles.NetAPIPointer.html | 16 +- api/SharpHoundRPC.Handles.SAMHandle.html | 20 +- api/SharpHoundRPC.Handles.SAMPointer.html | 16 +- api/SharpHoundRPC.Handles.SAMSidArray.html | 16 +- ...ative.LSAStructs.LSAReferencedDomains.html | 8 +- ...ANative.LSAStructs.LSATranslatedNames.html | 12 +- ...Native.LSAStructs.LSATrustInformation.html | 8 +- ...LSANative.LSAStructs.ObjectAttributes.html | 28 +- ...ve.LSAStructs.PolicyAccountDomainInfo.html | 8 +- api/SharpHoundRPC.LSANative.UserRights.html | 180 +- ...rpHoundRPC.NetAPINative.NetAPIMethods.html | 25 +- ...pHoundRPC.NetAPINative.NetAPIResult-1.html | 44 +- ...ve.NetAPIStructs.DomainControllerInfo.html | 36 +- ....NetAPINative.NetAPIStructs.GuidClass.html | 4 +- ...APINative.NetAPIStructs.SessionInfo10.html | 16 +- ...PINative.NetAPIStructs.WkstaUserInfo1.html | 16 +- ...tive.NetAPIStructs.WorkstationInfo100.html | 20 +- ...PC.NetAPINative.NetSessionEnumResults.html | 12 +- ....NetAPINative.NetWkstaUserEnumResults.html | 12 +- api/SharpHoundRPC.RPCException.html | 60 +- api/SharpHoundRPC.Result-1.html | 48 +- ...RPCNative.SAMStructs.ObjectAttributes.html | 28 +- ...PCNative.SAMStructs.SamRidEnumeration.html | 8 +- ...PC.Shared.SharedStructs.UnicodeString.html | 12 +- api/SharpHoundRPC.Wrappers.ILSAPolicy.html | 20 +- api/SharpHoundRPC.Wrappers.ISAMAlias.html | 4 +- api/SharpHoundRPC.Wrappers.ISAMDomain.html | 16 +- api/SharpHoundRPC.Wrappers.ISAMServer.html | 24 +- api/SharpHoundRPC.Wrappers.LSABase.html | 20 +- api/SharpHoundRPC.Wrappers.LSAPolicy.html | 16 +- api/SharpHoundRPC.Wrappers.SAMAlias.html | 16 +- api/SharpHoundRPC.Wrappers.SAMBase.html | 20 +- api/SharpHoundRPC.Wrappers.SAMDomain.html | 20 +- api/SharpHoundRPC.Wrappers.SAMServer.html | 40 +- api/toc.html | 44 +- coverage/report/SharpHoundCommonLib_ACE.html | 38 +- .../SharpHoundCommonLib_ACLProcessor.html | 1218 +++--- .../report/SharpHoundCommonLib_APIResult.html | 16 +- ...rpHoundCommonLib_AceRegistryAPIResult.html | 2 +- ...mmonLib_ActiveDirectoryRuleDescriptor.html | 98 +- ...Lib_ActiveDirectorySecurityDescriptor.html | 60 +- ...pHoundCommonLib_BoolRegistryAPIResult.html | 2 +- .../SharpHoundCommonLib_CARegistryData.html | 2 +- ...SharpHoundCommonLib_CSVComputerStatus.html | 8 +- .../report/SharpHoundCommonLib_Cache.html | 308 +- .../SharpHoundCommonLib_CachedLocalItem.html | 30 +- ...harpHoundCommonLib_CertAbuseProcessor.html | 821 ++-- ...harpHoundCommonLib_CertRegistryResult.html | 785 ++-- ...rpHoundCommonLib_CertificateExtension.html | 2 +- .../SharpHoundCommonLib_CommonFilters.html | 12 +- .../report/SharpHoundCommonLib_CommonLib.html | 2 +- .../SharpHoundCommonLib_CommonOids.html | 2 +- .../SharpHoundCommonLib_CommonPaths.html | 18 +- .../SharpHoundCommonLib_CommonProperties.html | 189 +- .../report/SharpHoundCommonLib_Computer.html | 2 +- ...rpHoundCommonLib_ComputerAvailability.html | 2 +- ...harpHoundCommonLib_ComputerProperties.html | 1163 +++-- ...undCommonLib_ComputerSessionProcessor.html | 667 +-- .../SharpHoundCommonLib_ComputerStatus.html | 2 +- ...pHoundCommonLib_ConnectionPoolManager.html | 246 ++ .../report/SharpHoundCommonLib_Container.html | 2 +- ...harpHoundCommonLib_ContainerProcessor.html | 379 +- .../SharpHoundCommonLib_DCRegistryData.html | 2 +- ...arpHoundCommonLib_DCRegistryProcessor.html | 14 +- ...undCommonLib_DirectoryEntryExtensions.html | 241 + .../report/SharpHoundCommonLib_Domain.html | 2 +- .../SharpHoundCommonLib_DomainInfo.html | 119 - .../SharpHoundCommonLib_DomainTrust.html | 32 +- ...rpHoundCommonLib_DomainTrustProcessor.html | 207 +- ...nLib_EnrollmentAgentRegistryAPIResult.html | 2 +- ...dCommonLib_EnrollmentAgentRestriction.html | 806 ++-- .../SharpHoundCommonLib_EnterpriseCA.html | 2 +- .../SharpHoundCommonLib_Extensions.html | 567 +-- .../report/SharpHoundCommonLib_GPLink.html | 46 +- ...HoundCommonLib_GPOLocalGroupProcessor.html | 1192 +++-- .../report/SharpHoundCommonLib_Group.html | 2 +- .../SharpHoundCommonLib_GroupProcessor.html | 185 +- .../report/SharpHoundCommonLib_Helpers.html | 748 ++-- .../SharpHoundCommonLib_Impersonator.html | 407 +- ...rpHoundCommonLib_IntRegistryAPIResult.html | 2 +- .../SharpHoundCommonLib_IssuancePolicy.html | 2 +- ...undCommonLib_IssuancePolicyProperties.html | 1157 +++-- .../SharpHoundCommonLib_LDAPConfig.html | 95 +- .../SharpHoundCommonLib_LDAPFilter.html | 184 +- ...pHoundCommonLib_LDAPPropertyProcessor.html | 1511 ++++--- ...harpHoundCommonLib_LDAPQueryException.html | 28 +- ...pHoundCommonLib_LSAPrivilegeAPIResult.html | 2 +- .../SharpHoundCommonLib_LSAPrivileges.html | 14 +- ...CommonLib_LdapAuthenticationException.html | 26 +- ...oundCommonLib_LdapConnectionException.html | 2 +- ...harpHoundCommonLib_LdapConnectionPool.html | 493 +++ ...pHoundCommonLib_LdapConnectionWrapper.html | 208 + ...arpHoundCommonLib_LdapQueryParameters.html | 147 + ...pHoundCommonLib_LdapQuerySetupResult.html} | 53 +- ... => SharpHoundCommonLib_LdapResult_1.html} | 108 +- ...tml => SharpHoundCommonLib_LdapUtils.html} | 3858 +++++++---------- .../SharpHoundCommonLib_LocalGroup.html | 2 +- ...arpHoundCommonLib_LocalGroupAPIResult.html | 24 +- ...arpHoundCommonLib_LocalGroupProcessor.html | 742 ++-- .../SharpHoundCommonLib_LogProvider.html | 12 +- .../report/SharpHoundCommonLib_Logging.html | 8 +- .../report/SharpHoundCommonLib_MetaTag.html | 2 +- .../SharpHoundCommonLib_MockRegistryKey.html | 2 +- .../SharpHoundCommonLib_NTAuthStore.html | 2 +- .../SharpHoundCommonLib_NamedPrincipal.html | 26 +- ...arpHoundCommonLib_NoLdapDataException.html | 27 +- .../SharpHoundCommonLib_NoOpLogger.html | 10 +- coverage/report/SharpHoundCommonLib_OU.html | 2 +- .../SharpHoundCommonLib_OutputBase.html | 2 +- .../SharpHoundCommonLib_OutputWrapper_1.html | 2 +- ...SharpHoundCommonLib_ParsedCertificate.html | 1161 +++-- .../SharpHoundCommonLib_ParsedGPLink.html | 668 +-- ...SharpHoundCommonLib_PassThroughLogger.html | 34 +- .../SharpHoundCommonLib_PortScanner.html | 10 +- .../SharpHoundCommonLib_RegistryResult.html | 2 +- ...rpHoundCommonLib_ResolvedSearchResult.html | 2 +- .../report/SharpHoundCommonLib_Result.html | 143 + .../report/SharpHoundCommonLib_Result_1.html | 142 + ...arpHoundCommonLib_ResultingGPOChanges.html | 28 +- .../report/SharpHoundCommonLib_RootCA.html | 2 +- .../SharpHoundCommonLib_SHRegistryKey.html | 2 +- .../SharpHoundCommonLib_SPNPrivilege.html | 20 +- .../SharpHoundCommonLib_SPNProcessors.html | 169 +- ...CommonLib_SearchResultEntryExtensions.html | 350 ++ ...undCommonLib_SearchResultEntryWrapper.html | 641 +-- .../report/SharpHoundCommonLib_Session.html | 54 +- .../SharpHoundCommonLib_SessionAPIResult.html | 12 +- .../SharpHoundCommonLib_TypedPrincipal.html | 84 +- coverage/report/SharpHoundCommonLib_User.html | 2 +- .../SharpHoundCommonLib_UserProperties.html | 1159 +++-- ...mmonLib_UserRightsAssignmentAPIResult.html | 20 +- ...mmonLib_UserRightsAssignmentProcessor.html | 458 +- ...harpHoundCommonLib_WellKnownPrincipal.html | 32 +- .../report/SharpHoundRPC_BasePointer.html | 2 +- coverage/report/SharpHoundRPC_Extensions.html | 2 +- coverage/report/SharpHoundRPC_LSABase.html | 2 +- coverage/report/SharpHoundRPC_LSAHandle.html | 2 +- coverage/report/SharpHoundRPC_LSAMethods.html | 2 +- coverage/report/SharpHoundRPC_LSAPointer.html | 2 +- coverage/report/SharpHoundRPC_LSAPolicy.html | 2 +- coverage/report/SharpHoundRPC_LSAStructs.html | 2 +- .../report/SharpHoundRPC_NetAPIMethods.html | 54 +- .../report/SharpHoundRPC_NetAPIPointer.html | 2 +- .../report/SharpHoundRPC_NetAPIResult_1.html | 64 +- .../SharpHoundRPC_NetSessionEnumResults.html | 30 +- ...SharpHoundRPC_NetWkstaUserEnumResults.html | 30 +- .../report/SharpHoundRPC_RPCException.html | 2 +- coverage/report/SharpHoundRPC_Result_1.html | 40 +- coverage/report/SharpHoundRPC_SAMAlias.html | 2 +- coverage/report/SharpHoundRPC_SAMBase.html | 2 +- coverage/report/SharpHoundRPC_SAMDomain.html | 2 +- coverage/report/SharpHoundRPC_SAMHandle.html | 2 +- coverage/report/SharpHoundRPC_SAMMethods.html | 2 +- coverage/report/SharpHoundRPC_SAMPointer.html | 2 +- coverage/report/SharpHoundRPC_SAMServer.html | 2 +- .../report/SharpHoundRPC_SAMSidArray.html | 2 +- coverage/report/SharpHoundRPC_SAMStructs.html | 2 +- .../report/SharpHoundRPC_SharedStructs.html | 2 +- coverage/report/SharpHoundRPC_UserRights.html | 2 +- coverage/report/badge_branchcoverage.png | Bin 3105 -> 2904 bytes coverage/report/badge_branchcoverage.svg | 2 +- coverage/report/badge_combined.svg | 4 +- coverage/report/badge_linecoverage.png | Bin 2806 -> 2667 bytes coverage/report/badge_linecoverage.svg | 2 +- .../badge_shieldsio_branchcoverage_blue.svg | 2 +- ...e_shieldsio_branchcoverage_brightgreen.svg | 2 +- .../badge_shieldsio_branchcoverage_green.svg | 2 +- ...dge_shieldsio_branchcoverage_lightgrey.svg | 2 +- .../badge_shieldsio_branchcoverage_orange.svg | 2 +- .../badge_shieldsio_branchcoverage_red.svg | 2 +- .../badge_shieldsio_branchcoverage_yellow.svg | 2 +- ...e_shieldsio_branchcoverage_yellowgreen.svg | 2 +- .../badge_shieldsio_linecoverage_blue.svg | 2 +- ...dge_shieldsio_linecoverage_brightgreen.svg | 2 +- .../badge_shieldsio_linecoverage_green.svg | 2 +- ...badge_shieldsio_linecoverage_lightgrey.svg | 2 +- .../badge_shieldsio_linecoverage_orange.svg | 2 +- .../badge_shieldsio_linecoverage_red.svg | 2 +- .../badge_shieldsio_linecoverage_yellow.svg | 2 +- ...dge_shieldsio_linecoverage_yellowgreen.svg | 2 +- coverage/report/index.htm | 225 +- coverage/report/index.html | 225 +- coverage/report/main.js | 217 +- manifest.json | 545 ++- xrefmap.yml | 3524 ++++++++------- 301 files changed, 23929 insertions(+), 20521 deletions(-) rename api/{SharpHoundCommonLib.LDAPConnectionCacheKey.html => SharpHoundCommonLib.ConnectionPoolManager.html} (53%) create mode 100644 api/SharpHoundCommonLib.DirectoryEntryExtensions.html rename api/{SharpHoundCommonLib.EdgeNames.html => SharpHoundCommonLib.Enums.EdgeNames.html} (67%) create mode 100644 api/SharpHoundCommonLib.Enums.LdapFailureReason.html create mode 100644 api/SharpHoundCommonLib.Enums.NamingContext.html delete mode 100644 api/SharpHoundCommonLib.ILDAPUtils.html create mode 100644 api/SharpHoundCommonLib.ILdapUtils.html delete mode 100644 api/SharpHoundCommonLib.LDAPUtils.html create mode 100644 api/SharpHoundCommonLib.LdapConnectionPool.html rename api/{SharpHoundCommonLib.LDAPQueryOptions.html => SharpHoundCommonLib.LdapQueryParameters.html} (54%) rename api/{SharpHoundCommonLib.DomainInfo.html => SharpHoundCommonLib.LdapQuerySetupResult.html} (60%) create mode 100644 api/SharpHoundCommonLib.LdapResult-1.html create mode 100644 api/SharpHoundCommonLib.LdapUtils.html create mode 100644 api/SharpHoundCommonLib.Result-1.html rename api/{SharpHoundCommonLib.LDAPUtils.LdapConnectionTestResult.html => SharpHoundCommonLib.Result.html} (60%) create mode 100644 api/SharpHoundCommonLib.SearchResultEntryExtensions.html create mode 100644 coverage/report/SharpHoundCommonLib_ConnectionPoolManager.html create mode 100644 coverage/report/SharpHoundCommonLib_DirectoryEntryExtensions.html delete mode 100644 coverage/report/SharpHoundCommonLib_DomainInfo.html create mode 100644 coverage/report/SharpHoundCommonLib_LdapConnectionPool.html create mode 100644 coverage/report/SharpHoundCommonLib_LdapConnectionWrapper.html create mode 100644 coverage/report/SharpHoundCommonLib_LdapQueryParameters.html rename coverage/report/{SharpHoundCommonLib_LDAPQueryParams.html => SharpHoundCommonLib_LdapQuerySetupResult.html} (69%) rename coverage/report/{SharpHoundCommonLib_LDAPConnectionCacheKey.html => SharpHoundCommonLib_LdapResult_1.html} (58%) rename coverage/report/{SharpHoundCommonLib_LDAPUtils.html => SharpHoundCommonLib_LdapUtils.html} (51%) create mode 100644 coverage/report/SharpHoundCommonLib_Result.html create mode 100644 coverage/report/SharpHoundCommonLib_Result_1.html create mode 100644 coverage/report/SharpHoundCommonLib_SearchResultEntryExtensions.html diff --git a/api/Impersonate.Impersonator.html b/api/Impersonate.Impersonator.html index 8e0e7b6b..469dc783 100644 --- a/api/Impersonate.Impersonator.html +++ b/api/Impersonate.Impersonator.html @@ -161,10 +161,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

Impersonator()

@@ -177,10 +177,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

Impersonator(String, String, String)

@@ -219,10 +219,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

Impersonator(String, String, String, LogonType, LogonProvider)

@@ -273,10 +273,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Dispose()

@@ -289,52 +289,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source - - -

Impersonate(String, String, String)

-
-
-
Declaration
-
-
public void Impersonate(string userName, string domainName, string password)
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
System.StringuserName
System.StringdomainName
System.Stringpassword
- - | - Improve this Doc - - - View Source + View Source

Impersonate(String, String, String, LogonType, LogonProvider)

@@ -342,7 +300,7 @@

Declaration
-
public void Impersonate(string userName, string domainName, string password, LogonType logonType, LogonProvider logonProvider)
+
public void Impersonate(string userName, string domainName, string password, LogonType logonType = LogonType.LOGON32_LOGON_INTERACTIVE, LogonProvider logonProvider = LogonProvider.LOGON32_PROVIDER_DEFAULT)
Parameters
diff --git a/api/SharpHoundCommonLib.ActiveDirectoryRuleDescriptor.html b/api/SharpHoundCommonLib.ActiveDirectoryRuleDescriptor.html index 0f327ef9..f83119b2 100644 --- a/api/SharpHoundCommonLib.ActiveDirectoryRuleDescriptor.html +++ b/api/SharpHoundCommonLib.ActiveDirectoryRuleDescriptor.html @@ -138,10 +138,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

ActiveDirectoryRuleDescriptor(ActiveDirectoryAccessRule)

@@ -172,10 +172,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

AccessControlType()

@@ -202,10 +202,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ActiveDirectoryRights()

@@ -232,10 +232,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IdentityReference()

@@ -262,10 +262,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsAceInheritedFrom(String)

@@ -309,10 +309,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsInherited()

@@ -339,10 +339,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectType()

diff --git a/api/SharpHoundCommonLib.ActiveDirectorySecurityDescriptor.html b/api/SharpHoundCommonLib.ActiveDirectorySecurityDescriptor.html index a44bd934..bf1e21df 100644 --- a/api/SharpHoundCommonLib.ActiveDirectorySecurityDescriptor.html +++ b/api/SharpHoundCommonLib.ActiveDirectorySecurityDescriptor.html @@ -138,10 +138,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

ActiveDirectorySecurityDescriptor(ActiveDirectorySecurity)

@@ -172,10 +172,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

AreAccessRulesProtected()

@@ -202,10 +202,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetAccessRules(Boolean, Boolean, Type)

@@ -259,10 +259,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetOwner(Type)

@@ -306,10 +306,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

SetSecurityDescriptorBinaryForm(Byte[])

@@ -338,10 +338,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

SetSecurityDescriptorBinaryForm(Byte[], AccessControlSections)

diff --git a/api/SharpHoundCommonLib.CSVComputerStatus.html b/api/SharpHoundCommonLib.CSVComputerStatus.html index d67cf4a5..201c08eb 100644 --- a/api/SharpHoundCommonLib.CSVComputerStatus.html +++ b/api/SharpHoundCommonLib.CSVComputerStatus.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

StatusSuccess

@@ -169,10 +169,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerName

@@ -199,10 +199,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Status

@@ -229,10 +229,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Task

@@ -261,10 +261,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ToCsv()

diff --git a/api/SharpHoundCommonLib.Cache.html b/api/SharpHoundCommonLib.Cache.html index e378e682..9964630b 100644 --- a/api/SharpHoundCommonLib.Cache.html +++ b/api/SharpHoundCommonLib.Cache.html @@ -139,10 +139,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

CacheCreationDate

@@ -170,10 +170,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CacheCreationVersion

@@ -201,10 +201,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GlobalCatalogCache

@@ -232,10 +232,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IdToTypeCache

@@ -263,10 +263,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

MachineSidCache

@@ -294,10 +294,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SIDToDomainCache

@@ -325,10 +325,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ValueToIdCache

@@ -358,10 +358,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

CreateNewCache(Version)

@@ -406,10 +406,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetCacheInstance()

@@ -437,10 +437,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetCacheStats()

@@ -468,10 +468,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

SetCacheInstance(Cache)

diff --git a/api/SharpHoundCommonLib.CommonLib.html b/api/SharpHoundCommonLib.CommonLib.html index af38d747..8a5dd6f9 100644 --- a/api/SharpHoundCommonLib.CommonLib.html +++ b/api/SharpHoundCommonLib.CommonLib.html @@ -138,10 +138,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

InitializeCommonLib(ILogger, Cache)

@@ -177,10 +177,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

ReconfigureLogging(ILogger)

diff --git a/api/SharpHoundCommonLib.LDAPConnectionCacheKey.html b/api/SharpHoundCommonLib.ConnectionPoolManager.html similarity index 53% rename from api/SharpHoundCommonLib.LDAPConnectionCacheKey.html rename to api/SharpHoundCommonLib.ConnectionPoolManager.html index 6019b206..c862db9f 100644 --- a/api/SharpHoundCommonLib.LDAPConnectionCacheKey.html +++ b/api/SharpHoundCommonLib.ConnectionPoolManager.html @@ -6,10 +6,10 @@ - Class LDAPConnectionCacheKey + <title>Class ConnectionPoolManager - @@ -92,23 +92,33 @@ -
+
-

Class LDAPConnectionCacheKey +

Class ConnectionPoolManager

Inheritance
System.Object
-
LDAPConnectionCacheKey
+
ConnectionPoolManager
+
+
+
Implements
+
System.IDisposable
Inherited Members
+
+ System.Object.Equals(System.Object) +
System.Object.Equals(System.Object, System.Object)
+
+ System.Object.GetHashCode() +
System.Object.GetType()
@@ -124,26 +134,26 @@
Inherited Members
Namespace: SharpHoundCommonLib
Assembly: SharpHoundCommonLib.dll
-
Syntax
+
Syntax
-
public class LDAPConnectionCacheKey
+
public class ConnectionPoolManager : IDisposable

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source - -

LDAPConnectionCacheKey(String, Boolean)

+ +

ConnectionPoolManager(LDAPConfig, ILogger, PortScanner)

Declaration
-
public LDAPConnectionCacheKey(string domain, bool globalCatalog)
+
public ConnectionPoolManager(LDAPConfig config, ILogger log = null, PortScanner scanner = null)
Parameters
@@ -156,95 +166,77 @@
Parameters
- - + + - - + + + + + + +
System.StringdomainLDAPConfigconfig
System.BooleanglobalCatalogILoggerlog
PortScannerscanner
-

Properties +

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source - -

Domain

+ +

Dispose()

Declaration
-
public string Domain { get; }
+
public void Dispose()
-
Property Value
- - - - - - - - - - - - - -
TypeDescription
System.String
| - Improve this Doc + Improve this Doc - View Source + View Source - -

GlobalCatalog

+ +

GetLdapConnection(String, Boolean)

Declaration
-
public bool GlobalCatalog { get; }
+
public Task<(bool Success, LdapConnectionWrapper ConnectionWrapper, string Message)> GetLdapConnection(string identifier, bool globalCatalog)
-
Property Value
+
Parameters
+ + + + + + +
TypeName Description
System.Stringidentifier
System.BooleanglobalCatalog
- - | - Improve this Doc - - - View Source - - -

Server

-
-
-
Declaration
-
-
public string Server { get; set; }
-
-
Property Value
+
Returns
@@ -254,27 +246,25 @@
Property Value
- +
System.StringSystem.Threading.Tasks.Task<System.ValueTuple<System.Boolean, LdapConnectionWrapper, System.String>>
-

Methods -

| - Improve this Doc + Improve this Doc - View Source + View Source - -

Equals(LDAPConnectionCacheKey)

+ +

GetLdapConnectionForServer(String, String, Boolean)

Declaration
-
protected bool Equals(LDAPConnectionCacheKey other)
+
public Task<(bool Success, LdapConnectionWrapper connectionWrapper, string Message)> GetLdapConnectionForServer(string identifier, string server, bool globalCatalog)
Parameters
@@ -287,8 +277,18 @@
Parameters
- - + + + + + + + + + + + + @@ -303,25 +303,25 @@
Returns
- +
LDAPConnectionCacheKeyotherSystem.Stringidentifier
System.Stringserver
System.BooleanglobalCatalog
System.BooleanSystem.Threading.Tasks.Task<System.ValueTuple<System.Boolean, LdapConnectionWrapper, System.String>>
| - Improve this Doc + Improve this Doc - View Source + View Source - -

Equals(Object)

+ +

ReleaseConnection(LdapConnectionWrapper, Boolean)

Declaration
-
public override bool Equals(object obj)
+
public void ReleaseConnection(LdapConnectionWrapper connectionWrapper, bool connectionFaulted = false)
Parameters
@@ -334,44 +334,54 @@
Parameters
- - + + - -
System.ObjectobjLdapConnectionWrapperconnectionWrapper
-
Returns
- - - - - - - - +
TypeDescription
System.BooleanconnectionFaulted
-
Overrides
-
System.Object.Equals(System.Object)
| - Improve this Doc + Improve this Doc - View Source + View Source - -

GetHashCode()

+ +

TestDomainConnection(String, Boolean)

Declaration
-
public override int GetHashCode()
+
public Task<(bool Success, string Message)> TestDomainConnection(string identifier, bool globalCatalog)
+
Parameters
+ + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
System.Stringidentifier
System.BooleanglobalCatalog
Returns
@@ -382,13 +392,15 @@
Returns
- +
System.Int32System.Threading.Tasks.Task<System.ValueTuple<System.Boolean, System.String>>
-
Overrides
-
System.Object.GetHashCode()
+

Implements

+
+ System.IDisposable +
diff --git a/api/SharpHoundCommonLib.DirectoryEntryExtensions.html b/api/SharpHoundCommonLib.DirectoryEntryExtensions.html new file mode 100644 index 00000000..7e3d23a1 --- /dev/null +++ b/api/SharpHoundCommonLib.DirectoryEntryExtensions.html @@ -0,0 +1,507 @@ + + + + + + + + + Class DirectoryEntryExtensions + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.Enums.CAExtensionTypes.html b/api/SharpHoundCommonLib.Enums.CAExtensionTypes.html index de4a02c1..6dd30e4c 100644 --- a/api/SharpHoundCommonLib.Enums.CAExtensionTypes.html +++ b/api/SharpHoundCommonLib.Enums.CAExtensionTypes.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AuthorityInformationAccess

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

AuthorityKeyIdentifier

@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

BasicConstraints

@@ -225,10 +225,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnhancedKeyUsage

@@ -254,10 +254,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

KeyUsage

@@ -283,10 +283,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NameConstraints

@@ -312,10 +312,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SubjectAlternativeNames

@@ -341,10 +341,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SubjectKeyIdentifier

diff --git a/api/SharpHoundCommonLib.Enums.CommonOids.html b/api/SharpHoundCommonLib.Enums.CommonOids.html index c6a6e7a2..6629f8b8 100644 --- a/api/SharpHoundCommonLib.Enums.CommonOids.html +++ b/api/SharpHoundCommonLib.Enums.CommonOids.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AnyPurpose

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CertificateRequestAgent

@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CertificateRequestAgentPolicy

@@ -225,10 +225,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ClientAuthentication

@@ -254,10 +254,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PKINITClientAuthentication

@@ -283,10 +283,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SmartcardLogon

diff --git a/api/SharpHoundCommonLib.Enums.DataType.html b/api/SharpHoundCommonLib.Enums.DataType.html index cc2d2c54..85805de6 100644 --- a/api/SharpHoundCommonLib.Enums.DataType.html +++ b/api/SharpHoundCommonLib.Enums.DataType.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AIACAs

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CertTemplates

@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Computers

@@ -225,10 +225,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Containers

@@ -254,10 +254,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Domains

@@ -283,10 +283,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnterpriseCAs

@@ -312,10 +312,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GPOs

@@ -341,10 +341,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Groups

@@ -370,10 +370,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IssuancePolicies

@@ -399,10 +399,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NTAuthStores

@@ -428,10 +428,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

OUs

@@ -457,10 +457,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RootCAs

@@ -486,10 +486,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Users

diff --git a/api/SharpHoundCommonLib.Enums.DataTypes.html b/api/SharpHoundCommonLib.Enums.DataTypes.html index ea1c4293..ced053db 100644 --- a/api/SharpHoundCommonLib.Enums.DataTypes.html +++ b/api/SharpHoundCommonLib.Enums.DataTypes.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

Computers

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Domains

@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GPOs

@@ -225,10 +225,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Groups

@@ -254,10 +254,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

OUs

@@ -283,10 +283,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Users

diff --git a/api/SharpHoundCommonLib.Enums.DirectoryPaths.html b/api/SharpHoundCommonLib.Enums.DirectoryPaths.html index 9fd65b9f..a19f2b76 100644 --- a/api/SharpHoundCommonLib.Enums.DirectoryPaths.html +++ b/api/SharpHoundCommonLib.Enums.DirectoryPaths.html @@ -138,17 +138,17 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AIACALocation

Declaration
-
public const string AIACALocation = "CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration"
+
public const string AIACALocation = "CN=AIA,CN=Public Key Services,CN=Services"
Field Value
@@ -167,17 +167,17 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CertTemplateLocation

Declaration
-
public const string CertTemplateLocation = "CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration"
+
public const string CertTemplateLocation = "CN=Certificate Templates,CN=Public Key Services,CN=Services"
Field Value
@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ConfigLocation

@@ -225,17 +225,17 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnterpriseCALocation

Declaration
-
public const string EnterpriseCALocation = "CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration"
+
public const string EnterpriseCALocation = "CN=Enrollment Services,CN=Public Key Services,CN=Services"
Field Value
@@ -254,17 +254,17 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NTAuthStoreLocation

Declaration
-
public const string NTAuthStoreLocation = "CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration"
+
public const string NTAuthStoreLocation = "CN=NTAuthCertificates,CN=Public Key Services,CN=Services"
Field Value
@@ -283,17 +283,17 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

OIDContainerLocation

Declaration
-
public const string OIDContainerLocation = "CN=OID,CN=Public Key Services,CN=Services,CN=Configuration"
+
public const string OIDContainerLocation = "CN=OID,CN=Public Key Services,CN=Services"
Field Value
@@ -312,17 +312,17 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PKILocation

Declaration
-
public const string PKILocation = "CN=Public Key Services,CN=Services,CN=Configuration"
+
public const string PKILocation = "CN=Public Key Services,CN=Services"
Field Value
@@ -341,17 +341,17 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RootCALocation

Declaration
-
public const string RootCALocation = "CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration"
+
public const string RootCALocation = "CN=Certification Authorities,CN=Public Key Services,CN=Services"
Field Value
diff --git a/api/SharpHoundCommonLib.EdgeNames.html b/api/SharpHoundCommonLib.Enums.EdgeNames.html similarity index 67% rename from api/SharpHoundCommonLib.EdgeNames.html rename to api/SharpHoundCommonLib.Enums.EdgeNames.html index 36cb9b12..848b6a67 100644 --- a/api/SharpHoundCommonLib.EdgeNames.html +++ b/api/SharpHoundCommonLib.Enums.EdgeNames.html @@ -92,10 +92,10 @@ -
| - Improve this Doc + Improve this Doc - View Source + View Source - +
Declaration
@@ -196,12 +196,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

AddMember

+

AddMember

Declaration
@@ -225,12 +225,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

AddSelf

+

AddSelf

Declaration
@@ -254,12 +254,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

AllExtendedRights

+

AllExtendedRights

Declaration
@@ -283,12 +283,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

Enroll

+

Enroll

Declaration
@@ -312,12 +312,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

ForceChangePassword

+

ForceChangePassword

Declaration
@@ -341,12 +341,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

GenericAll

+

GenericAll

Declaration
@@ -370,12 +370,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

GenericWrite

+

GenericWrite

Declaration
@@ -399,12 +399,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

GetChanges

+

GetChanges

Declaration
@@ -428,12 +428,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

GetChangesAll

+

GetChangesAll

Declaration
@@ -457,12 +457,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

GetChangesInFilteredSet

+

GetChangesInFilteredSet

Declaration
@@ -486,12 +486,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

ManageCA

+

ManageCA

Declaration
@@ -515,12 +515,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

ManageCertificates

+

ManageCertificates

Declaration
@@ -544,12 +544,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

Owns

+

Owns

Declaration
@@ -573,12 +573,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

ReadGMSAPassword

+

ReadGMSAPassword

Declaration
@@ -602,12 +602,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

ReadLAPSPassword

+

ReadLAPSPassword

Declaration
@@ -631,12 +631,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

SQLAdmin

+

SQLAdmin

Declaration
@@ -660,12 +660,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

WriteAccountRestrictions

+

WriteAccountRestrictions

Declaration
@@ -689,12 +689,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

WriteDacl

+

WriteDacl

Declaration
@@ -718,12 +718,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

WriteOwner

+

WriteOwner

Declaration
@@ -747,12 +747,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

WritePKIEnrollmentFlag

+

WritePKIEnrollmentFlag

Declaration
@@ -776,12 +776,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

WritePKINameFlag

+

WritePKINameFlag

Declaration
@@ -805,12 +805,12 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

WriteSPN

+

WriteSPN

Declaration
diff --git a/api/SharpHoundCommonLib.Enums.LSAPrivileges.html b/api/SharpHoundCommonLib.Enums.LSAPrivileges.html index ef752c18..da0e171e 100644 --- a/api/SharpHoundCommonLib.Enums.LSAPrivileges.html +++ b/api/SharpHoundCommonLib.Enums.LSAPrivileges.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AssignPrimaryToken

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Audit

@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Backup

@@ -225,10 +225,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

BatchLogon

@@ -254,10 +254,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ChangeNotify

@@ -283,10 +283,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CreateGlobal

@@ -312,10 +312,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CreatePagefile

@@ -341,10 +341,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CreatePermanent

@@ -370,10 +370,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source
@@ -399,10 +399,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CreateToken

@@ -428,10 +428,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Debug

@@ -457,10 +457,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyBatchLogon

@@ -486,10 +486,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyInteractiveLogon

@@ -515,10 +515,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyNetworkLogon

@@ -544,10 +544,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyRemoteInteractiveLogon

@@ -573,10 +573,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyServiceLogon

@@ -602,10 +602,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DesiredPrivileges

@@ -631,10 +631,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnableDelegation

@@ -660,10 +660,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Impersonate

@@ -689,10 +689,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IncreaseBasePriority

@@ -718,10 +718,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IncreaseQuota

@@ -747,10 +747,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IncreaseWorkingSet

@@ -776,10 +776,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

InteractiveLogon

@@ -805,10 +805,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LoadDriver

@@ -834,10 +834,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LockMemory

@@ -863,10 +863,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

MachineAccount

@@ -892,10 +892,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ManageVolume

@@ -921,10 +921,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NetworkLogon

@@ -950,10 +950,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ProfileSingleProcess

@@ -979,10 +979,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Relabel

@@ -1008,10 +1008,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RemoteInteractiveLogon

@@ -1037,10 +1037,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RemoteShutdown

@@ -1066,10 +1066,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Restore

@@ -1095,10 +1095,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Security

@@ -1124,10 +1124,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ServiceLogon

@@ -1153,10 +1153,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Shutdown

@@ -1182,10 +1182,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SyncAgent

@@ -1211,10 +1211,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SystemEnvironment

@@ -1240,10 +1240,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SystemProfile

@@ -1269,10 +1269,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SystemTime

@@ -1298,10 +1298,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TakeOwnership

@@ -1327,10 +1327,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Tcb

@@ -1356,10 +1356,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TimeZone

@@ -1385,10 +1385,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TrustedCredManAccess

@@ -1414,10 +1414,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Undock

diff --git a/api/SharpHoundCommonLib.Enums.LdapErrorCodes.html b/api/SharpHoundCommonLib.Enums.LdapErrorCodes.html index 782162de..68346b9f 100644 --- a/api/SharpHoundCommonLib.Enums.LdapErrorCodes.html +++ b/api/SharpHoundCommonLib.Enums.LdapErrorCodes.html @@ -119,6 +119,10 @@

Fields Busy + + InvalidCredentials + + KerberosAuthType diff --git a/api/SharpHoundCommonLib.Enums.LdapFailureReason.html b/api/SharpHoundCommonLib.Enums.LdapFailureReason.html new file mode 100644 index 00000000..eee7e746 --- /dev/null +++ b/api/SharpHoundCommonLib.Enums.LdapFailureReason.html @@ -0,0 +1,167 @@ + + + + + + + + + Enum LdapFailureReason + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.Enums.NamingContext.html b/api/SharpHoundCommonLib.Enums.NamingContext.html new file mode 100644 index 00000000..886de727 --- /dev/null +++ b/api/SharpHoundCommonLib.Enums.NamingContext.html @@ -0,0 +1,151 @@ + + + + + + + + + Enum NamingContext + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.Enums.html b/api/SharpHoundCommonLib.Enums.html index b3033d47..b0f92c50 100644 --- a/api/SharpHoundCommonLib.Enums.html +++ b/api/SharpHoundCommonLib.Enums.html @@ -111,6 +111,8 @@

DataTypes

DirectoryPaths

+

EdgeNames

+

LSAPrivileges

Enums @@ -121,6 +123,10 @@

Label

LdapErrorCodes

+

LdapFailureReason

+
+

NamingContext

+

PKICertificateAuthorityFlags

PKICertificateNameFlag

diff --git a/api/SharpHoundCommonLib.Exceptions.LDAPQueryException.html b/api/SharpHoundCommonLib.Exceptions.LDAPQueryException.html index 05375b5a..694e8139 100644 --- a/api/SharpHoundCommonLib.Exceptions.LDAPQueryException.html +++ b/api/SharpHoundCommonLib.Exceptions.LDAPQueryException.html @@ -177,10 +177,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

LDAPQueryException()

@@ -192,10 +192,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

LDAPQueryException(String)

@@ -224,10 +224,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

LDAPQueryException(String, Exception)

diff --git a/api/SharpHoundCommonLib.Exceptions.LdapAuthenticationException.html b/api/SharpHoundCommonLib.Exceptions.LdapAuthenticationException.html index 86a4d78b..21eb2400 100644 --- a/api/SharpHoundCommonLib.Exceptions.LdapAuthenticationException.html +++ b/api/SharpHoundCommonLib.Exceptions.LdapAuthenticationException.html @@ -177,10 +177,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

LdapAuthenticationException(LdapException)

@@ -207,6 +207,37 @@
Parameters
+

Fields +

+ + | + Improve this Doc + + + View Source + +

LdapException

+
+
+
Declaration
+
+
public readonly LdapException LdapException
+
+
Field Value
+ + + + + + + + + + + + + +
TypeDescription
System.DirectoryServices.Protocols.LdapException

Implements

System.Runtime.InteropServices._Exception diff --git a/api/SharpHoundCommonLib.Exceptions.LdapConnectionException.html b/api/SharpHoundCommonLib.Exceptions.LdapConnectionException.html index 3551d607..f4e33626 100644 --- a/api/SharpHoundCommonLib.Exceptions.LdapConnectionException.html +++ b/api/SharpHoundCommonLib.Exceptions.LdapConnectionException.html @@ -177,10 +177,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

LdapConnectionException(LdapException)

@@ -211,10 +211,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ErrorCode

diff --git a/api/SharpHoundCommonLib.Exceptions.NoLdapDataException.html b/api/SharpHoundCommonLib.Exceptions.NoLdapDataException.html index 398416d1..1c12cb1d 100644 --- a/api/SharpHoundCommonLib.Exceptions.NoLdapDataException.html +++ b/api/SharpHoundCommonLib.Exceptions.NoLdapDataException.html @@ -177,68 +177,19 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

NoLdapDataException(Int32)

+

NoLdapDataException()

Declaration
-
public NoLdapDataException(int errorCode)
+
public NoLdapDataException()
-
Parameters
- - - - - - - - - - - - - - - -
TypeNameDescription
System.Int32errorCode
-

Properties -

- - | - Improve this Doc - - - View Source - - -

ErrorCode

-
-
-
Declaration
-
-
public int ErrorCode { get; set; }
-
-
Property Value
- - - - - - - - - - - - - -
TypeDescription
System.Int32

Implements

System.Runtime.InteropServices._Exception diff --git a/api/SharpHoundCommonLib.Extensions.html b/api/SharpHoundCommonLib.Extensions.html index 15ba0663..ecd8ecef 100644 --- a/api/SharpHoundCommonLib.Extensions.html +++ b/api/SharpHoundCommonLib.Extensions.html @@ -138,586 +138,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source - - -

GetGuid(SearchResultEntry)

-

Get's the string representation of the "objectguid" property from the SearchResultEntry

-
-
-
Declaration
-
-
public static string GetGuid(this SearchResultEntry entry)
-
-
Parameters
- - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.String

The string representation of the object's GUID if possible, otherwise null

-
- - | - Improve this Doc - - - View Source - - -

GetLabel(SearchResultEntry)

-

Extension method to determine the BloodHound type of a SearchResultEntry using LDAP properties -Requires ldap properties objectsid, samaccounttype, objectclass

-
-
-
Declaration
-
-
public static Label GetLabel(this SearchResultEntry entry)
-
-
Parameters
- - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
-
Returns
- - - - - - - - - - - - - -
TypeDescription
Label
- - | - Improve this Doc - - - View Source - - -

GetObjectIdentifier(SearchResultEntry)

-

Attempts to get the unique object identifier as used by BloodHound for the Search Result Entry. Tries to get -objectsid first, and then objectguid next.

-
-
-
Declaration
-
-
public static string GetObjectIdentifier(this SearchResultEntry entry)
-
-
Parameters
- - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.String

String representation of the entry's object identifier or null

-
- - | - Improve this Doc - - - View Source - - -

GetProperty(SearchResultEntry, String)

-

Gets the specified property as a string from the SearchResultEntry

-
-
-
Declaration
-
-
public static string GetProperty(this SearchResultEntry entry, string property)
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
System.Stringproperty

The LDAP name of the property you want to get

-
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.String

The string value of the property if it exists or null

-
- - | - Improve this Doc - - - View Source - - -

GetPropertyAsArray(SearchResultEntry, String)

-

Gets the specified property as a string array from the SearchResultEntry

-
-
-
Declaration
-
-
public static string[] GetPropertyAsArray(this SearchResultEntry entry, string property)
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
System.Stringproperty

The LDAP name of the property you want to get

-
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.String[]

The specified property as an array of strings if possible, else an empty array

-
- - | - Improve this Doc - - - View Source - - -

GetPropertyAsArrayOfBytes(SearchResultEntry, String)

-

Gets the specified property as an array of byte arrays from the SearchResultEntry -Used for SIDHistory

-
-
-
Declaration
-
-
public static byte[][] GetPropertyAsArrayOfBytes(this SearchResultEntry entry, string property)
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
System.Stringproperty

The LDAP name of the property you want to get

-
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.Byte[][]

The specified property as an array of bytes if possible, else an empty array

-
- - | - Improve this Doc - - - View Source - - -

GetPropertyAsArrayOfCertificates(SearchResultEntry, String)

-

Gets the specified property as an array of X509 certificates.

-
-
-
Declaration
-
-
public static X509Certificate2[] GetPropertyAsArrayOfCertificates(this SearchResultEntry searchResultEntry, string property)
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntrysearchResultEntry
System.Stringproperty
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.Security.Cryptography.X509Certificates.X509Certificate2[]
- - | - Improve this Doc - - - View Source - - -

GetPropertyAsBytes(SearchResultEntry, String)

-

Gets the specified property as a byte array

-
-
-
Declaration
-
-
public static byte[] GetPropertyAsBytes(this SearchResultEntry searchResultEntry, string property)
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntrysearchResultEntry
System.Stringproperty

The LDAP name of the property you want to get

-
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.Byte[]

An array of bytes if possible, else null

-
- - | - Improve this Doc - - - View Source - - -

GetPropertyAsInt(SearchResultEntry, String, out Int32)

-

Gets the specified property as an int

-
-
-
Declaration
-
-
public static bool GetPropertyAsInt(this SearchResultEntry entry, string property, out int value)
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
System.Stringproperty
System.Int32value
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.Boolean
- - | - Improve this Doc - - - View Source - - -

GetSid(DirectoryEntry)

-
-
-
Declaration
-
-
public static string GetSid(this DirectoryEntry result)
-
-
Parameters
- - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.DirectoryEntryresult
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.String
- - | - Improve this Doc - - - View Source - - -

GetSid(SearchResultEntry)

-

Gets the "objectsid" property as a string from the SearchResultEntry

-
-
-
Declaration
-
-
public static string GetSid(this SearchResultEntry entry)
-
-
Parameters
- - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.String

The string representation of the object's SID if possible, otherwise null

-
- - | - Improve this Doc - - - View Source + View Source

IsComputerCollectionSet(ResolvedCollectionMethod)

@@ -762,58 +186,10 @@
Returns
| - Improve this Doc - - - View Source - - -

IsDeleted(SearchResultEntry)

-

Checks the isDeleted LDAP property to determine if an entry has been deleted from the directory

-
-
-
Declaration
-
-
public static bool IsDeleted(this SearchResultEntry entry)
-
-
Parameters
- - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.Boolean
- - | - Improve this Doc + Improve this Doc - View Source + View Source

IsLocalGroupCollectionSet(ResolvedCollectionMethod)

@@ -858,10 +234,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LdapValue(Guid)

@@ -905,10 +281,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LdapValue(SecurityIdentifier)

@@ -952,58 +328,10 @@
Returns
| - Improve this Doc - - - View Source - - -

PrintEntry(SearchResultEntry)

-

Helper function to print attributes of a SearchResultEntry

-
-
-
Declaration
-
-
public static string PrintEntry(this SearchResultEntry searchResultEntry)
-
-
Parameters
- - - - - - - - - - - - - - - -
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntrysearchResultEntry
-
Returns
- - - - - - - - - - - - - -
TypeDescription
System.String
- - | - Improve this Doc + Improve this Doc - View Source + View Source

Rid(SecurityIdentifier)

diff --git a/api/SharpHoundCommonLib.Helpers.html b/api/SharpHoundCommonLib.Helpers.html index 058b8a25..a863c209 100644 --- a/api/SharpHoundCommonLib.Helpers.html +++ b/api/SharpHoundCommonLib.Helpers.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AuthenticationOIDs

@@ -169,10 +169,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Base64(String)

@@ -217,10 +217,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ConvertFileTimeToUnixEpoch(String)

@@ -265,10 +265,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ConvertGuidToHexGuid(String)

@@ -313,10 +313,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ConvertLdapTimeToLong(String)

@@ -361,10 +361,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ConvertSidToHexSid(String)

@@ -411,10 +411,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ConvertTimestampToUnixEpoch(String)

@@ -459,10 +459,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

DistinguishedNameToDomain(String)

@@ -509,10 +509,58 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source + + +

DomainNameToDistinguishedName(String)

+

Converts a domain name to a distinguished name using simple string substitution

+
+
+
Declaration
+
+
public static string DomainNameToDistinguishedName(string domainName)
+
+
Parameters
+ + + + + + + + + + + + + + + +
TypeNameDescription
System.StringdomainName
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.String
+ + | + Improve this Doc + + + View Source

GetRegistryKeyData(String, String, String, ILogger)

@@ -571,10 +619,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsSidFiltered(String)

@@ -618,10 +666,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenRemoteRegistry(String)

@@ -665,10 +713,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

RemoveDistinguishedNamePrefix(String)

@@ -712,10 +760,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

SamAccountTypeToType(String)

@@ -761,10 +809,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

SplitGPLinkProperty(String, Boolean)

@@ -815,10 +863,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

StripServicePrincipalName(String)

diff --git a/api/SharpHoundCommonLib.ILDAPUtils.html b/api/SharpHoundCommonLib.ILDAPUtils.html deleted file mode 100644 index bf34e5d2..00000000 --- a/api/SharpHoundCommonLib.ILDAPUtils.html +++ /dev/null @@ -1,1616 +0,0 @@ - - - - - - - - - Interface ILDAPUtils - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - -
-
- - - - - - - - - - - - - - - diff --git a/api/SharpHoundCommonLib.ILdapUtils.html b/api/SharpHoundCommonLib.ILdapUtils.html new file mode 100644 index 00000000..8df9da06 --- /dev/null +++ b/api/SharpHoundCommonLib.ILdapUtils.html @@ -0,0 +1,1237 @@ + + + + + + + + + Interface ILdapUtils + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.IRegistryKey.html b/api/SharpHoundCommonLib.IRegistryKey.html index 1586da14..633a2506 100644 --- a/api/SharpHoundCommonLib.IRegistryKey.html +++ b/api/SharpHoundCommonLib.IRegistryKey.html @@ -109,10 +109,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetValue(String, String)

diff --git a/api/SharpHoundCommonLib.ISearchResultEntry.html b/api/SharpHoundCommonLib.ISearchResultEntry.html index 0303cfec..6aac6576 100644 --- a/api/SharpHoundCommonLib.ISearchResultEntry.html +++ b/api/SharpHoundCommonLib.ISearchResultEntry.html @@ -109,10 +109,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

DistinguishedName

@@ -141,10 +141,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetArrayProperty(String)

@@ -188,10 +188,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetByteArrayProperty(String)

@@ -235,10 +235,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetByteProperty(String)

@@ -282,10 +282,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetCertificateArrayProperty(String)

@@ -329,10 +329,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetGuid()

@@ -359,10 +359,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetIntProperty(String, out Int32)

@@ -411,10 +411,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetLabel()

@@ -441,10 +441,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetObjectIdentifier()

@@ -471,10 +471,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetProperty(String)

@@ -518,10 +518,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetSid()

@@ -548,10 +548,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

HasLAPS()

@@ -578,10 +578,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsDeleted()

@@ -608,10 +608,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsGMSA()

@@ -638,10 +638,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsMSA()

@@ -668,10 +668,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

PropCount(String)

@@ -715,10 +715,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

PropertyNames()

@@ -745,10 +745,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ResolveBloodHoundInfo()

@@ -756,7 +756,7 @@

Declaration
-
ResolvedSearchResult ResolveBloodHoundInfo()
+
Task<ResolvedSearchResult> ResolveBloodHoundInfo()
Returns
@@ -768,7 +768,7 @@
Returns
- + diff --git a/api/SharpHoundCommonLib.LDAPConfig.html b/api/SharpHoundCommonLib.LDAPConfig.html index d83cfff6..6fa8c7ad 100644 --- a/api/SharpHoundCommonLib.LDAPConfig.html +++ b/api/SharpHoundCommonLib.LDAPConfig.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

AuthType

@@ -168,10 +168,10 @@
Property Value
ResolvedSearchResultSystem.Threading.Tasks.Task<ResolvedSearchResult>
| - Improve this Doc + Improve this Doc - View Source + View Source

DisableCertVerification

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DisableSigning

@@ -228,10 +228,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ForceSSL

@@ -258,10 +258,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Password

@@ -288,10 +288,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Port

@@ -318,10 +318,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Server

@@ -348,10 +348,40 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source + + +

SSLPort

+
+
+
Declaration
+
+
public int SSLPort { get; set; }
+
+
Property Value
+ + + + + + + + + + + + + +
TypeDescription
System.Int32
+ + | + Improve this Doc + + + View Source

Username

@@ -380,10 +410,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetGCPort(Boolean)

@@ -427,10 +457,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetPort(Boolean)

diff --git a/api/SharpHoundCommonLib.LDAPProperties.html b/api/SharpHoundCommonLib.LDAPProperties.html index ea50dbb9..c713ce9f 100644 --- a/api/SharpHoundCommonLib.LDAPProperties.html +++ b/api/SharpHoundCommonLib.LDAPProperties.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AdminCount

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

AllowedToActOnBehalfOfOtherIdentity

@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

AllowedToDelegateTo

@@ -225,10 +225,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ApplicationPolicies

@@ -254,10 +254,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CACertificate

@@ -283,10 +283,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CanonicalName

@@ -312,10 +312,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CertificateApplicationPolicy

@@ -341,10 +341,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CertificatePolicy

@@ -370,10 +370,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CertificateTemplates

@@ -399,10 +399,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CertTemplateOID

@@ -428,10 +428,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ConfigurationNamingContext

@@ -457,10 +457,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CrossCertificatePair

@@ -486,10 +486,39 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source + +

DefaultNamingContext

+
+
+
Declaration
+
+
public const string DefaultNamingContext = "defaultnamingcontext"
+
+
Field Value
+ + + + + + + + + + + + + +
TypeDescription
System.String
+ + | + Improve this Doc + + + View Source

Description

@@ -515,10 +544,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DisplayName

@@ -544,10 +573,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DistinguishedName

@@ -573,10 +602,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DNSHostName

@@ -602,10 +631,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DnsRoot

@@ -631,10 +660,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainFunctionalLevel

@@ -660,10 +689,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Email

@@ -689,10 +718,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ExtendedKeyUsage

@@ -718,10 +747,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Flags

@@ -747,10 +776,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GPCFileSYSPath

@@ -776,10 +805,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source
@@ -805,10 +834,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GroupMSAMembership

@@ -834,10 +863,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GroupPolicyOptions

@@ -863,10 +892,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

HomeDirectory

@@ -892,10 +921,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

HostServiceAccount

@@ -921,10 +950,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsDeleted

@@ -950,10 +979,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IssuancePolicies

@@ -979,10 +1008,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LAPSExpirationTime

@@ -1008,10 +1037,39 @@
Field Value
| - Improve this Doc + Improve this Doc + + + View Source + +

LAPSPassword

+
+
+
Declaration
+
+
public const string LAPSPassword = "mslaps-password"
+
+
Field Value
+ + + + + + + + + + + + + +
TypeDescription
System.String
+ + | + Improve this Doc - View Source + View Source

LastLogon

@@ -1037,10 +1095,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LastLogonTimestamp

@@ -1066,10 +1124,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LdapAdminLimits

@@ -1095,10 +1153,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LegacyLAPSExpirationTime

@@ -1124,10 +1182,39 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source + +

LegacyLAPSPassword

+
+
+
Declaration
+
+
public const string LegacyLAPSPassword = "ms-mcs-admpwd"
+
+
Field Value
+ + + + + + + + + + + + + +
TypeDescription
System.String
+ + | + Improve this Doc + + + View Source

Members

@@ -1153,10 +1240,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

MsSFU30Password

@@ -1182,10 +1269,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Name

@@ -1211,10 +1298,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NetbiosName

@@ -1240,10 +1327,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NumSignaturesRequired

@@ -1269,10 +1356,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectClass

@@ -1298,10 +1385,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectGUID

@@ -1327,10 +1414,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectSID

@@ -1356,10 +1443,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source
@@ -1385,10 +1472,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

OperatingSystem

@@ -1414,10 +1501,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PasswordLastSet

@@ -1443,10 +1530,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PKIEnrollmentFlag

@@ -1472,10 +1559,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PKIExpirationPeriod

@@ -1501,10 +1588,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PKINameFlag

@@ -1530,10 +1617,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PKIOverlappedPeriod

@@ -1559,10 +1646,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PKIPrivateKeyFlag

@@ -1588,10 +1675,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PrimaryGroupID

@@ -1617,10 +1704,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RootDomainNamingContext

@@ -1646,10 +1733,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SAMAccountName

@@ -1675,10 +1762,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SAMAccountType

@@ -1704,10 +1791,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SchemaIDGUID

@@ -1733,10 +1820,39 @@
Field Value
| - Improve this Doc + Improve this Doc + + + View Source + +

SchemaNamingContext

+
+
+
Declaration
+
+
public const string SchemaNamingContext = "schemanamingcontext"
+
+
Field Value
+ + + + + + + + + + + + + +
TypeDescription
System.String
+ + | + Improve this Doc - View Source + View Source

ScriptPath

@@ -1762,10 +1878,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SecurityDescriptor

@@ -1791,10 +1907,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SecurityIdentifier

@@ -1820,10 +1936,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ServerName

@@ -1849,10 +1965,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ServicePack

@@ -1878,10 +1994,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ServicePrincipalNames

@@ -1907,10 +2023,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SIDHistory

@@ -1936,10 +2052,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TemplateSchemaVersion

@@ -1965,10 +2081,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Title

@@ -1994,10 +2110,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TrustAttributes

@@ -2023,10 +2139,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TrustDirection

@@ -2052,10 +2168,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TrustType

@@ -2081,10 +2197,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

UnicodePassword

@@ -2110,10 +2226,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

UnixUserPassword

@@ -2139,10 +2255,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

UserAccountControl

@@ -2168,10 +2284,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

UserPassword

@@ -2197,10 +2313,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

WhenCreated

diff --git a/api/SharpHoundCommonLib.LDAPQueries.CommonFilters.html b/api/SharpHoundCommonLib.LDAPQueries.CommonFilters.html index d594ce95..21ffcb7f 100644 --- a/api/SharpHoundCommonLib.LDAPQueries.CommonFilters.html +++ b/api/SharpHoundCommonLib.LDAPQueries.CommonFilters.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

DomainControllers

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnabledOnly

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ExcludeDomainControllers

@@ -228,10 +228,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NeedsGPCFilePath

@@ -258,10 +258,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NeedsSPN

@@ -288,10 +288,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TrustedDomains

@@ -320,10 +320,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

SpecificGUID(String)

@@ -367,10 +367,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

SpecificSID(String)

diff --git a/api/SharpHoundCommonLib.LDAPQueries.CommonPaths.html b/api/SharpHoundCommonLib.LDAPQueries.CommonPaths.html index c8606145..1f9e5709 100644 --- a/api/SharpHoundCommonLib.LDAPQueries.CommonPaths.html +++ b/api/SharpHoundCommonLib.LDAPQueries.CommonPaths.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

ConfigurationPath

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

QueryPolicyPath

@@ -198,10 +198,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

CreateDNPath(String, String)

diff --git a/api/SharpHoundCommonLib.LDAPQueries.CommonProperties.html b/api/SharpHoundCommonLib.LDAPQueries.CommonProperties.html index 0fe7ea6f..d0b8fb01 100644 --- a/api/SharpHoundCommonLib.LDAPQueries.CommonProperties.html +++ b/api/SharpHoundCommonLib.LDAPQueries.CommonProperties.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

ACLProps

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

BaseQueryProps

@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CertAbuseProps

@@ -225,10 +225,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerMethodProps

@@ -254,10 +254,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ContainerProps

@@ -283,10 +283,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainTrustProps

@@ -312,10 +312,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GPCFileSysPath

@@ -341,10 +341,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GPOLocalGroupProps

@@ -370,10 +370,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GroupResolutionProps

@@ -399,10 +399,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectID

@@ -428,10 +428,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectPropsProps

@@ -457,10 +457,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectSID

@@ -486,10 +486,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SPNTargetProps

@@ -515,10 +515,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TypeResolutionProps

diff --git a/api/SharpHoundCommonLib.LDAPQueries.LDAPFilter.html b/api/SharpHoundCommonLib.LDAPQueries.LDAPFilter.html index 0cd7f541..6b9a9083 100644 --- a/api/SharpHoundCommonLib.LDAPQueries.LDAPFilter.html +++ b/api/SharpHoundCommonLib.LDAPQueries.LDAPFilter.html @@ -139,10 +139,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

AddAllObjects(String[])

@@ -187,10 +187,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddCertificateAuthorities(String[])

@@ -235,10 +235,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddCertificateTemplates(String[])

@@ -283,10 +283,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddComputers(String[])

@@ -332,10 +332,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddComputersNoMSAs(String[])

@@ -380,10 +380,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddConfiguration(String[])

@@ -428,10 +428,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddContainers(String[])

@@ -476,10 +476,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddDomains(String[])

@@ -524,10 +524,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddEnterpriseCertificationAuthorities(String[])

@@ -572,10 +572,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddFilter(String, Boolean)

@@ -627,10 +627,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddGPOs(String[])

@@ -675,10 +675,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddGroups(String[])

@@ -723,10 +723,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddIssuancePolicies(String[])

@@ -771,10 +771,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddOUs(String[])

@@ -819,10 +819,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddPrimaryGroups(String[])

@@ -867,10 +867,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddSchemaID(String[])

@@ -915,10 +915,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

AddUsers(String[])

@@ -963,10 +963,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetFilter()

@@ -994,10 +994,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetFilterList()

diff --git a/api/SharpHoundCommonLib.LDAPUtils.html b/api/SharpHoundCommonLib.LDAPUtils.html deleted file mode 100644 index 1ce0abd5..00000000 --- a/api/SharpHoundCommonLib.LDAPUtils.html +++ /dev/null @@ -1,1881 +0,0 @@ - - - - - - - - - Class LDAPUtils - - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - -
-
- - - - - - - - - - - - - - - diff --git a/api/SharpHoundCommonLib.LdapConnectionPool.html b/api/SharpHoundCommonLib.LdapConnectionPool.html new file mode 100644 index 00000000..7a4310b4 --- /dev/null +++ b/api/SharpHoundCommonLib.LdapConnectionPool.html @@ -0,0 +1,394 @@ + + + + + + + + + Class LdapConnectionPool + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.LdapConnectionWrapper.html b/api/SharpHoundCommonLib.LdapConnectionWrapper.html index 2c2cff2b..76be7cc2 100644 --- a/api/SharpHoundCommonLib.LdapConnectionWrapper.html +++ b/api/SharpHoundCommonLib.LdapConnectionWrapper.html @@ -106,15 +106,9 @@
Inheritance
Inherited Members
-
- System.Object.Equals(System.Object) -
System.Object.Equals(System.Object, System.Object)
-
- System.Object.GetHashCode() -
System.Object.GetType()
@@ -134,21 +128,70 @@
Syntax
public class LdapConnectionWrapper
+

Constructors +

+ + | + Improve this Doc + + + View Source + + +

LdapConnectionWrapper(LdapConnection, ISearchResultEntry, Boolean, String)

+
+
+
Declaration
+
+
public LdapConnectionWrapper(LdapConnection connection, ISearchResultEntry entry, bool globalCatalog, string poolIdentifier)
+
+
Parameters
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.LdapConnectionconnection
ISearchResultEntryentry
System.BooleanglobalCatalog
System.StringpoolIdentifier

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source -

Connection

+

GlobalCatalog

Declaration
-
public LdapConnection Connection
+
public readonly bool GlobalCatalog
Field Value
@@ -160,24 +203,24 @@
Field Value
- +
System.DirectoryServices.Protocols.LdapConnectionSystem.Boolean
| - Improve this Doc + Improve this Doc - View Source + View Source -

DomainInfo

+

PoolIdentifier

Declaration
-
public DomainInfo DomainInfo
+
public readonly string PoolIdentifier
Field Value
@@ -189,7 +232,288 @@
Field Value
- + + + + +
DomainInfoSystem.String
+

Properties +

+ + | + Improve this Doc + + + View Source + + +

Connection

+
+
+
Declaration
+
+
public LdapConnection Connection { get; }
+
+
Property Value
+ + + + + + + + + + + + + +
TypeDescription
System.DirectoryServices.Protocols.LdapConnection
+

Methods +

+ + | + Improve this Doc + + + View Source + + +

Equals(LdapConnectionWrapper)

+
+
+
Declaration
+
+
protected bool Equals(LdapConnectionWrapper other)
+
+
Parameters
+ + + + + + + + + + + + + + + +
TypeNameDescription
LdapConnectionWrapperother
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Boolean
+ + | + Improve this Doc + + + View Source + + +

Equals(Object)

+
+
+
Declaration
+
+
public override bool Equals(object obj)
+
+
Parameters
+ + + + + + + + + + + + + + + +
TypeNameDescription
System.Objectobj
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Boolean
+
Overrides
+
System.Object.Equals(System.Object)
+ + | + Improve this Doc + + + View Source + + +

GetHashCode()

+
+
+
Declaration
+
+
public override int GetHashCode()
+
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Int32
+
Overrides
+
System.Object.GetHashCode()
+ + | + Improve this Doc + + + View Source + + +

GetSearchBase(NamingContext, out String)

+
+
+
Declaration
+
+
public bool GetSearchBase(NamingContext context, out string searchBase)
+
+
Parameters
+ + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
NamingContextcontext
System.StringsearchBase
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Boolean
+ + | + Improve this Doc + + + View Source + + +

GetServer()

+
+
+
Declaration
+
+
public string GetServer()
+
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.String
+ + | + Improve this Doc + + + View Source + + +

SaveContext(NamingContext, String)

+
+
+
Declaration
+
+
public void SaveContext(NamingContext context, string searchBase)
+
+
Parameters
+ + + + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.LDAPQueryOptions.html b/api/SharpHoundCommonLib.LdapQueryParameters.html similarity index 54% rename from api/SharpHoundCommonLib.LDAPQueryOptions.html rename to api/SharpHoundCommonLib.LdapQueryParameters.html index 14e6053f..4eaf5f9c 100644 --- a/api/SharpHoundCommonLib.LDAPQueryOptions.html +++ b/api/SharpHoundCommonLib.LdapQueryParameters.html @@ -6,10 +6,10 @@ - Struct LDAPQueryOptions + <title>Class LdapQueryParameters - @@ -92,58 +92,66 @@ -
+
-

Struct LDAPQueryOptions +

Class LdapQueryParameters

-

Struct representing options to create an LDAP query

-
+
+
+
Inheritance
+
System.Object
+
LdapQueryParameters
+
Inherited Members
- System.ValueType.Equals(System.Object) + System.Object.Equals(System.Object)
- System.ValueType.GetHashCode() + System.Object.Equals(System.Object, System.Object)
- System.ValueType.ToString() + System.Object.GetHashCode()
- System.Object.Equals(System.Object, System.Object) + System.Object.GetType()
- System.Object.GetType() + System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
+
+ System.Object.ToString() +
Namespace: SharpHoundCommonLib
Assembly: SharpHoundCommonLib.dll
-
Syntax
+
Syntax
-
public struct LDAPQueryOptions
+
public class LdapQueryParameters
-

Fields +

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source -

AdsPath

+ +

Attributes

Declaration
-
public string AdsPath
+
public string[] Attributes { get; set; }
-
Field Value
+
Property Value
TypeNameDescription
NamingContextcontext
System.StringsearchBase
@@ -153,26 +161,27 @@
Field Value
- +
System.StringSystem.String[]
| - Improve this Doc + Improve this Doc - View Source + View Source -

CancellationToken

+ +

DomainName

Declaration
-
public CancellationToken CancellationToken
+
public string DomainName { get; set; }
-
Field Value
+
Property Value
@@ -182,26 +191,27 @@
Field Value
- +
System.Threading.CancellationTokenSystem.String
| - Improve this Doc + Improve this Doc - View Source + View Source -

DomainName

+ +

GlobalCatalog

Declaration
-
public string DomainName
+
public bool GlobalCatalog { get; set; }
-
Field Value
+
Property Value
@@ -211,26 +221,27 @@
Field Value
- +
System.StringSystem.Boolean
| - Improve this Doc + Improve this Doc - View Source + View Source -

Filter

+ +

IncludeDeleted

Declaration
-
public string Filter
+
public bool IncludeDeleted { get; set; }
-
Field Value
+
Property Value
@@ -240,26 +251,27 @@
Field Value
- +
System.StringSystem.Boolean
| - Improve this Doc + Improve this Doc - View Source + View Source -

GlobalCatalog

+ +

IncludeSecurityDescriptor

Declaration
-
public bool GlobalCatalog
+
public bool IncludeSecurityDescriptor { get; set; }
-
Field Value
+
Property Value
@@ -276,19 +288,20 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source -

IncludeAcl

+ +

LDAPFilter

Declaration
-
public bool IncludeAcl
+
public string LDAPFilter { get; set; }
-
Field Value
+
Property Value
@@ -298,26 +311,27 @@
Field Value
- +
System.BooleanSystem.String
| - Improve this Doc + Improve this Doc - View Source + View Source -

Properties

+ +

NamingContext

Declaration
-
public string[] Properties
+
public NamingContext NamingContext { get; set; }
-
Field Value
+
Property Value
@@ -327,26 +341,27 @@
Field Value
- +
System.String[]NamingContext
| - Improve this Doc + Improve this Doc - View Source + View Source -

Scope

+ +

RelativeSearchBase

Declaration
-
public SearchScope Scope
+
public string RelativeSearchBase { get; set; }
-
Field Value
+
Property Value
@@ -356,26 +371,27 @@
Field Value
- +
System.DirectoryServices.Protocols.SearchScopeSystem.String
| - Improve this Doc + Improve this Doc - View Source + View Source -

ShowDeleted

+ +

SearchBase

Declaration
-
public bool ShowDeleted
+
public string SearchBase { get; set; }
-
Field Value
+
Property Value
@@ -385,26 +401,27 @@
Field Value
- +
System.BooleanSystem.String
| - Improve this Doc + Improve this Doc - View Source + View Source -

SkipCache

+ +

SearchScope

Declaration
-
public bool SkipCache
+
public SearchScope SearchScope { get; set; }
-
Field Value
+
Property Value
@@ -414,26 +431,29 @@
Field Value
- +
System.BooleanSystem.DirectoryServices.Protocols.SearchScope
+

Methods +

| - Improve this Doc + Improve this Doc - View Source + View Source -

ThrowException

+ +

GetQueryInfo()

Declaration
-
public bool ThrowException
+
public string GetQueryInfo()
-
Field Value
+
Returns
@@ -443,7 +463,7 @@
Field Value
- + diff --git a/api/SharpHoundCommonLib.DomainInfo.html b/api/SharpHoundCommonLib.LdapQuerySetupResult.html similarity index 60% rename from api/SharpHoundCommonLib.DomainInfo.html rename to api/SharpHoundCommonLib.LdapQuerySetupResult.html index 298dcfec..69c399c3 100644 --- a/api/SharpHoundCommonLib.DomainInfo.html +++ b/api/SharpHoundCommonLib.LdapQuerySetupResult.html @@ -6,10 +6,10 @@ - Class DomainInfo + <title>Class LdapQuerySetupResult - @@ -92,17 +92,17 @@ -
+
-

Class DomainInfo +

Class LdapQuerySetupResult

Inheritance
System.Object
-
DomainInfo
+
LdapQuerySetupResult
Inherited Members
@@ -124,29 +124,32 @@
Inherited Members
System.Object.ReferenceEquals(System.Object, System.Object)
+
+ System.Object.ToString() +
Namespace: SharpHoundCommonLib
Assembly: SharpHoundCommonLib.dll
-
Syntax
+
Syntax
-
public class DomainInfo
+
public class LdapQuerySetupResult

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source - -

DomainConfigurationPath

+ +

ConnectionWrapper

Declaration
-
public string DomainConfigurationPath { get; set; }
+
public LdapConnectionWrapper ConnectionWrapper { get; set; }
Property Value
System.BooleanSystem.String
@@ -158,25 +161,25 @@
Property Value
- +
System.StringLdapConnectionWrapper
| - Improve this Doc + Improve this Doc - View Source + View Source - -

DomainFQDN

+ +

Message

Declaration
-
public string DomainFQDN { get; set; }
+
public string Message { get; set; }
Property Value
@@ -195,18 +198,18 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source - -

DomainNetbiosName

+ +

SearchRequest

Declaration
-
public string DomainNetbiosName { get; set; }
+
public SearchRequest SearchRequest { get; set; }
Property Value
@@ -218,25 +221,25 @@
Property Value
- +
System.StringSystem.DirectoryServices.Protocols.SearchRequest
| - Improve this Doc + Improve this Doc - View Source + View Source - -

DomainSearchBase

+ +

Server

Declaration
-
public string DomainSearchBase { get; set; }
+
public string Server { get; set; }
Property Value
@@ -255,18 +258,18 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source - -

DomainSID

+ +

Success

Declaration
-
public string DomainSID { get; set; }
+
public bool Success { get; set; }
Property Value
@@ -278,45 +281,11 @@
Property Value
- - - - -
System.String
-

Methods -

- - | - Improve this Doc - - - View Source - - -

ToString()

-
-
-
Declaration
-
-
public override string ToString()
-
-
Returns
- - - - - - - - - - +
TypeDescription
System.StringSystem.Boolean
-
Overrides
-
System.Object.ToString()
diff --git a/api/SharpHoundCommonLib.LdapResult-1.html b/api/SharpHoundCommonLib.LdapResult-1.html new file mode 100644 index 00000000..4e0f3dc7 --- /dev/null +++ b/api/SharpHoundCommonLib.LdapResult-1.html @@ -0,0 +1,492 @@ + + + + + + + + + Class LdapResult<T> + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + Sharphound.Common + + +
+ +
+ +
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.LdapUtils.html b/api/SharpHoundCommonLib.LdapUtils.html new file mode 100644 index 00000000..0f798f8a --- /dev/null +++ b/api/SharpHoundCommonLib.LdapUtils.html @@ -0,0 +1,1408 @@ + + + + + + + + + Class LdapUtils + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + Sharphound.Common + + +
+ +
+ +
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.MockRegistryKey.html b/api/SharpHoundCommonLib.MockRegistryKey.html index ad1de6da..cbe0fadd 100644 --- a/api/SharpHoundCommonLib.MockRegistryKey.html +++ b/api/SharpHoundCommonLib.MockRegistryKey.html @@ -142,10 +142,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetValue(String, String)

diff --git a/api/SharpHoundCommonLib.NativeMethods.html b/api/SharpHoundCommonLib.NativeMethods.html index bf05bc6a..d48e7a28 100644 --- a/api/SharpHoundCommonLib.NativeMethods.html +++ b/api/SharpHoundCommonLib.NativeMethods.html @@ -138,10 +138,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

NativeMethods()

@@ -153,10 +153,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

NativeMethods(ILogger)

@@ -187,18 +187,18 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source -

CallDsGetDcName(String, String)

+

CallDsGetDcName(String, String, UInt32)

Declaration
-
public virtual NetAPIResult<NetAPIStructs.DomainControllerInfo> CallDsGetDcName(string computerName, string domainName)
+
public virtual NetAPIResult<NetAPIStructs.DomainControllerInfo> CallDsGetDcName(string computerName, string domainName, uint flags)
Parameters
@@ -220,6 +220,11 @@
Parameters
+ + + + +
domainName
System.UInt32flags
Returns
@@ -239,10 +244,57 @@
Returns
| - Improve this Doc + Improve this Doc + + + View Source + + +

CallNetWkstaGetInfo(String)

+
+
+
Declaration
+
+
public virtual NetAPIResult<NetAPIStructs.WorkstationInfo100> CallNetWkstaGetInfo(string serverName)
+
+
Parameters
+ + + + + + + + + + + + + + + +
TypeNameDescription
System.StringserverName
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
NetAPIResult<NetAPIStructs.WorkstationInfo100>
+ + | + Improve this Doc - View Source + View Source

NetSessionEnum(String)

@@ -286,10 +338,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

NetWkstaUserEnum(String)

diff --git a/api/SharpHoundCommonLib.NoOpLogger.html b/api/SharpHoundCommonLib.NoOpLogger.html index f58d5bf6..8ec0f609 100644 --- a/api/SharpHoundCommonLib.NoOpLogger.html +++ b/api/SharpHoundCommonLib.NoOpLogger.html @@ -115,10 +115,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

BeginScope<TState>(TState)

@@ -177,10 +177,10 @@
Type Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

IsEnabled(LogLevel)

@@ -224,10 +224,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Log<TState>(LogLevel, EventId, TState, Exception, Func<TState, Exception, String>)

diff --git a/api/SharpHoundCommonLib.OutputTypes.ACE.html b/api/SharpHoundCommonLib.OutputTypes.ACE.html index 708f7561..82446a34 100644 --- a/api/SharpHoundCommonLib.OutputTypes.ACE.html +++ b/api/SharpHoundCommonLib.OutputTypes.ACE.html @@ -129,10 +129,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

IsInherited

@@ -159,10 +159,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PrincipalSID

@@ -189,10 +189,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PrincipalType

@@ -219,10 +219,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RightName

@@ -251,10 +251,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Equals(ACE)

@@ -298,10 +298,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Equals(Object)

@@ -347,10 +347,10 @@
Overrides
System.Object.Equals(System.Object)
| - Improve this Doc + Improve this Doc - View Source + View Source

GetHashCode()

@@ -379,10 +379,10 @@
Overrides
System.Object.GetHashCode()
| - Improve this Doc + Improve this Doc - View Source + View Source

ToString()

diff --git a/api/SharpHoundCommonLib.OutputTypes.APIResult.html b/api/SharpHoundCommonLib.OutputTypes.APIResult.html index 4bd06bc9..9c4dc741 100644 --- a/api/SharpHoundCommonLib.OutputTypes.APIResult.html +++ b/api/SharpHoundCommonLib.OutputTypes.APIResult.html @@ -147,10 +147,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Collected

@@ -177,10 +177,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

FailureReason

diff --git a/api/SharpHoundCommonLib.OutputTypes.AceRegistryAPIResult.html b/api/SharpHoundCommonLib.OutputTypes.AceRegistryAPIResult.html index 6c62445f..f88a4e5c 100644 --- a/api/SharpHoundCommonLib.OutputTypes.AceRegistryAPIResult.html +++ b/api/SharpHoundCommonLib.OutputTypes.AceRegistryAPIResult.html @@ -145,10 +145,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Data

diff --git a/api/SharpHoundCommonLib.OutputTypes.BoolRegistryAPIResult.html b/api/SharpHoundCommonLib.OutputTypes.BoolRegistryAPIResult.html index 8354f38b..c5b974d9 100644 --- a/api/SharpHoundCommonLib.OutputTypes.BoolRegistryAPIResult.html +++ b/api/SharpHoundCommonLib.OutputTypes.BoolRegistryAPIResult.html @@ -145,10 +145,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Value

diff --git a/api/SharpHoundCommonLib.OutputTypes.CARegistryData.html b/api/SharpHoundCommonLib.OutputTypes.CARegistryData.html index b23afbbd..18bf1360 100644 --- a/api/SharpHoundCommonLib.OutputTypes.CARegistryData.html +++ b/api/SharpHoundCommonLib.OutputTypes.CARegistryData.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

CASecurity

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnrollmentAgentRestrictions

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsUserSpecifiesSanEnabled

@@ -228,10 +228,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RoleSeparationEnabled

diff --git a/api/SharpHoundCommonLib.OutputTypes.CertificateExtension.html b/api/SharpHoundCommonLib.OutputTypes.CertificateExtension.html index 448c8f30..bb3b4707 100644 --- a/api/SharpHoundCommonLib.OutputTypes.CertificateExtension.html +++ b/api/SharpHoundCommonLib.OutputTypes.CertificateExtension.html @@ -138,10 +138,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

CertificateExtension(X509Extension)

@@ -172,10 +172,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Critical

@@ -202,10 +202,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Oid

diff --git a/api/SharpHoundCommonLib.OutputTypes.Computer.html b/api/SharpHoundCommonLib.OutputTypes.Computer.html index 796acf01..700399b4 100644 --- a/api/SharpHoundCommonLib.OutputTypes.Computer.html +++ b/api/SharpHoundCommonLib.OutputTypes.Computer.html @@ -158,10 +158,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

AllowedToAct

@@ -188,10 +188,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

AllowedToDelegate

@@ -218,10 +218,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DCRegistryData

@@ -248,10 +248,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainSID

@@ -278,10 +278,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DumpSMSAPassword

@@ -308,10 +308,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

HasSIDHistory

@@ -338,10 +338,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsDC

@@ -368,10 +368,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LocalGroups

@@ -398,10 +398,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PrimaryGroupSID

@@ -428,10 +428,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PrivilegedSessions

@@ -458,10 +458,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RegistrySessions

@@ -488,10 +488,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Sessions

@@ -518,10 +518,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Status

@@ -548,10 +548,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

UserRights

diff --git a/api/SharpHoundCommonLib.OutputTypes.ComputerStatus.html b/api/SharpHoundCommonLib.OutputTypes.ComputerStatus.html index 6cd45bfb..12058c9c 100644 --- a/api/SharpHoundCommonLib.OutputTypes.ComputerStatus.html +++ b/api/SharpHoundCommonLib.OutputTypes.ComputerStatus.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Connectable

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Error

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NonWindowsOS

@@ -228,10 +228,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

OldPwd

@@ -258,10 +258,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PortNotOpen

@@ -288,10 +288,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Success

@@ -320,10 +320,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetCSVStatus(String)

diff --git a/api/SharpHoundCommonLib.OutputTypes.Container.html b/api/SharpHoundCommonLib.OutputTypes.Container.html index a690acfb..3fd82e41 100644 --- a/api/SharpHoundCommonLib.OutputTypes.Container.html +++ b/api/SharpHoundCommonLib.OutputTypes.Container.html @@ -157,10 +157,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ChildObjects

diff --git a/api/SharpHoundCommonLib.OutputTypes.DCRegistryData.html b/api/SharpHoundCommonLib.OutputTypes.DCRegistryData.html index 11cd9d6b..c3495fcc 100644 --- a/api/SharpHoundCommonLib.OutputTypes.DCRegistryData.html +++ b/api/SharpHoundCommonLib.OutputTypes.DCRegistryData.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

CertificateMappingMethods

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

StrongCertificateBindingEnforcement

diff --git a/api/SharpHoundCommonLib.OutputTypes.Domain.html b/api/SharpHoundCommonLib.OutputTypes.Domain.html index d67d9de9..6eb4187c 100644 --- a/api/SharpHoundCommonLib.OutputTypes.Domain.html +++ b/api/SharpHoundCommonLib.OutputTypes.Domain.html @@ -157,10 +157,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

GPOChanges

@@ -188,10 +188,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ChildObjects

@@ -218,10 +218,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source @@ -248,10 +248,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Trusts

diff --git a/api/SharpHoundCommonLib.OutputTypes.DomainTrust.html b/api/SharpHoundCommonLib.OutputTypes.DomainTrust.html index dbad3d97..667ea637 100644 --- a/api/SharpHoundCommonLib.OutputTypes.DomainTrust.html +++ b/api/SharpHoundCommonLib.OutputTypes.DomainTrust.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

IsTransitive

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SidFilteringEnabled

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TargetDomainName

@@ -228,10 +228,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TargetDomainSid

@@ -258,10 +258,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TrustDirection

@@ -288,10 +288,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TrustType

diff --git a/api/SharpHoundCommonLib.OutputTypes.EnrollmentAgentRegistryAPIResult.html b/api/SharpHoundCommonLib.OutputTypes.EnrollmentAgentRegistryAPIResult.html index 5d87527e..22d719ba 100644 --- a/api/SharpHoundCommonLib.OutputTypes.EnrollmentAgentRegistryAPIResult.html +++ b/api/SharpHoundCommonLib.OutputTypes.EnrollmentAgentRegistryAPIResult.html @@ -145,10 +145,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Restrictions

diff --git a/api/SharpHoundCommonLib.OutputTypes.EnterpriseCA.html b/api/SharpHoundCommonLib.OutputTypes.EnterpriseCA.html index baa0d523..43a03299 100644 --- a/api/SharpHoundCommonLib.OutputTypes.EnterpriseCA.html +++ b/api/SharpHoundCommonLib.OutputTypes.EnterpriseCA.html @@ -157,10 +157,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

CARegistryData

@@ -187,10 +187,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnabledCertTemplates

@@ -217,10 +217,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

HostingComputer

diff --git a/api/SharpHoundCommonLib.OutputTypes.GPLink.html b/api/SharpHoundCommonLib.OutputTypes.GPLink.html index 3316df11..f78ddd59 100644 --- a/api/SharpHoundCommonLib.OutputTypes.GPLink.html +++ b/api/SharpHoundCommonLib.OutputTypes.GPLink.html @@ -132,10 +132,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source @@ -162,10 +162,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source @@ -194,10 +194,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source @@ -241,10 +241,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source @@ -290,10 +290,10 @@
Overrides
System.Object.Equals(System.Object)
| - Improve this Doc + Improve this Doc - View Source + View Source diff --git a/api/SharpHoundCommonLib.OutputTypes.Group.html b/api/SharpHoundCommonLib.OutputTypes.Group.html index 331cf785..aba8162f 100644 --- a/api/SharpHoundCommonLib.OutputTypes.Group.html +++ b/api/SharpHoundCommonLib.OutputTypes.Group.html @@ -157,10 +157,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Members

diff --git a/api/SharpHoundCommonLib.OutputTypes.IntRegistryAPIResult.html b/api/SharpHoundCommonLib.OutputTypes.IntRegistryAPIResult.html index 8f72293e..93ef6faa 100644 --- a/api/SharpHoundCommonLib.OutputTypes.IntRegistryAPIResult.html +++ b/api/SharpHoundCommonLib.OutputTypes.IntRegistryAPIResult.html @@ -145,10 +145,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Value

diff --git a/api/SharpHoundCommonLib.OutputTypes.IssuancePolicy.html b/api/SharpHoundCommonLib.OutputTypes.IssuancePolicy.html index aabb2bd2..a12820b4 100644 --- a/api/SharpHoundCommonLib.OutputTypes.IssuancePolicy.html +++ b/api/SharpHoundCommonLib.OutputTypes.IssuancePolicy.html @@ -157,10 +157,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source diff --git a/api/SharpHoundCommonLib.OutputTypes.LSAPrivilegeAPIResult.html b/api/SharpHoundCommonLib.OutputTypes.LSAPrivilegeAPIResult.html index 7c93c62a..35c1959a 100644 --- a/api/SharpHoundCommonLib.OutputTypes.LSAPrivilegeAPIResult.html +++ b/api/SharpHoundCommonLib.OutputTypes.LSAPrivilegeAPIResult.html @@ -145,10 +145,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Results

diff --git a/api/SharpHoundCommonLib.OutputTypes.LocalGroup.html b/api/SharpHoundCommonLib.OutputTypes.LocalGroup.html index 4ba2c12a..24f381b1 100644 --- a/api/SharpHoundCommonLib.OutputTypes.LocalGroup.html +++ b/api/SharpHoundCommonLib.OutputTypes.LocalGroup.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Name

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectID

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Rid

diff --git a/api/SharpHoundCommonLib.OutputTypes.LocalGroupAPIResult.html b/api/SharpHoundCommonLib.OutputTypes.LocalGroupAPIResult.html index 15020306..34996a3d 100644 --- a/api/SharpHoundCommonLib.OutputTypes.LocalGroupAPIResult.html +++ b/api/SharpHoundCommonLib.OutputTypes.LocalGroupAPIResult.html @@ -142,10 +142,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

LocalNames

@@ -172,10 +172,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Name

@@ -202,10 +202,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectIdentifier

@@ -232,10 +232,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Results

@@ -264,10 +264,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ToString()

diff --git a/api/SharpHoundCommonLib.OutputTypes.MetaTag.html b/api/SharpHoundCommonLib.OutputTypes.MetaTag.html index 650246dc..d6fd1708 100644 --- a/api/SharpHoundCommonLib.OutputTypes.MetaTag.html +++ b/api/SharpHoundCommonLib.OutputTypes.MetaTag.html @@ -139,10 +139,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

CollectionMethods

@@ -170,10 +170,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Count

@@ -201,10 +201,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DataType

@@ -232,10 +232,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Version

diff --git a/api/SharpHoundCommonLib.OutputTypes.NTAuthStore.html b/api/SharpHoundCommonLib.OutputTypes.NTAuthStore.html index 5a7bf0d4..7825b36d 100644 --- a/api/SharpHoundCommonLib.OutputTypes.NTAuthStore.html +++ b/api/SharpHoundCommonLib.OutputTypes.NTAuthStore.html @@ -157,10 +157,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

DomainSID

diff --git a/api/SharpHoundCommonLib.OutputTypes.NamedPrincipal.html b/api/SharpHoundCommonLib.OutputTypes.NamedPrincipal.html index 24f26f83..cbe3b324 100644 --- a/api/SharpHoundCommonLib.OutputTypes.NamedPrincipal.html +++ b/api/SharpHoundCommonLib.OutputTypes.NamedPrincipal.html @@ -135,10 +135,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

NamedPrincipal()

@@ -150,10 +150,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

NamedPrincipal(String, String)

@@ -189,10 +189,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectId

@@ -219,10 +219,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PrincipalName

@@ -251,10 +251,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ToString()

diff --git a/api/SharpHoundCommonLib.OutputTypes.OU.html b/api/SharpHoundCommonLib.OutputTypes.OU.html index b5822e2f..dfa374c7 100644 --- a/api/SharpHoundCommonLib.OutputTypes.OU.html +++ b/api/SharpHoundCommonLib.OutputTypes.OU.html @@ -157,10 +157,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

GPOChanges

@@ -188,10 +188,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ChildObjects

@@ -218,10 +218,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source diff --git a/api/SharpHoundCommonLib.OutputTypes.OutputBase.html b/api/SharpHoundCommonLib.OutputTypes.OutputBase.html index 68858b41..c2e1dc83 100644 --- a/api/SharpHoundCommonLib.OutputTypes.OutputBase.html +++ b/api/SharpHoundCommonLib.OutputTypes.OutputBase.html @@ -152,10 +152,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

Properties

@@ -183,10 +183,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Aces

@@ -213,10 +213,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ContainedBy

@@ -243,10 +243,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsACLProtected

@@ -273,10 +273,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsDeleted

@@ -303,10 +303,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectIdentifier

diff --git a/api/SharpHoundCommonLib.OutputTypes.OutputWrapper-1.html b/api/SharpHoundCommonLib.OutputTypes.OutputWrapper-1.html index 9b0476ee..8ad7697a 100644 --- a/api/SharpHoundCommonLib.OutputTypes.OutputWrapper-1.html +++ b/api/SharpHoundCommonLib.OutputTypes.OutputWrapper-1.html @@ -154,10 +154,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Data

@@ -185,10 +185,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Meta

diff --git a/api/SharpHoundCommonLib.OutputTypes.ResultingGPOChanges.html b/api/SharpHoundCommonLib.OutputTypes.ResultingGPOChanges.html index 40390c31..bbb0d2c2 100644 --- a/api/SharpHoundCommonLib.OutputTypes.ResultingGPOChanges.html +++ b/api/SharpHoundCommonLib.OutputTypes.ResultingGPOChanges.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

AffectedComputers

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DcomUsers

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LocalAdmins

@@ -228,10 +228,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PSRemoteUsers

@@ -258,10 +258,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RemoteDesktopUsers

diff --git a/api/SharpHoundCommonLib.OutputTypes.RootCA.html b/api/SharpHoundCommonLib.OutputTypes.RootCA.html index 4c478128..e8070c06 100644 --- a/api/SharpHoundCommonLib.OutputTypes.RootCA.html +++ b/api/SharpHoundCommonLib.OutputTypes.RootCA.html @@ -157,10 +157,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

DomainSID

diff --git a/api/SharpHoundCommonLib.OutputTypes.SPNPrivilege.html b/api/SharpHoundCommonLib.OutputTypes.SPNPrivilege.html index 2a08a91c..f149a96a 100644 --- a/api/SharpHoundCommonLib.OutputTypes.SPNPrivilege.html +++ b/api/SharpHoundCommonLib.OutputTypes.SPNPrivilege.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerSID

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Port

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Service

diff --git a/api/SharpHoundCommonLib.OutputTypes.Session.html b/api/SharpHoundCommonLib.OutputTypes.Session.html index 77fe54c2..a0dd909b 100644 --- a/api/SharpHoundCommonLib.OutputTypes.Session.html +++ b/api/SharpHoundCommonLib.OutputTypes.Session.html @@ -132,10 +132,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerSID

@@ -162,10 +162,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

UserSID

@@ -194,10 +194,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Equals(Session)

@@ -241,10 +241,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Equals(Object)

@@ -290,10 +290,10 @@
Overrides
System.Object.Equals(System.Object)
| - Improve this Doc + Improve this Doc - View Source + View Source

GetHashCode()

diff --git a/api/SharpHoundCommonLib.OutputTypes.SessionAPIResult.html b/api/SharpHoundCommonLib.OutputTypes.SessionAPIResult.html index 66dfec90..2da95898 100644 --- a/api/SharpHoundCommonLib.OutputTypes.SessionAPIResult.html +++ b/api/SharpHoundCommonLib.OutputTypes.SessionAPIResult.html @@ -145,10 +145,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Results

diff --git a/api/SharpHoundCommonLib.OutputTypes.TypedPrincipal.html b/api/SharpHoundCommonLib.OutputTypes.TypedPrincipal.html index 29617758..b4b8e147 100644 --- a/api/SharpHoundCommonLib.OutputTypes.TypedPrincipal.html +++ b/api/SharpHoundCommonLib.OutputTypes.TypedPrincipal.html @@ -129,10 +129,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

TypedPrincipal()

@@ -144,10 +144,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

TypedPrincipal(String, Label)

@@ -183,10 +183,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectIdentifier

@@ -213,10 +213,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectType

@@ -245,10 +245,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Equals(TypedPrincipal)

@@ -292,10 +292,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Equals(Object)

@@ -341,10 +341,10 @@
Overrides
System.Object.Equals(System.Object)
| - Improve this Doc + Improve this Doc - View Source + View Source

GetHashCode()

@@ -373,10 +373,10 @@
Overrides
System.Object.GetHashCode()
| - Improve this Doc + Improve this Doc - View Source + View Source

ToString()

diff --git a/api/SharpHoundCommonLib.OutputTypes.User.html b/api/SharpHoundCommonLib.OutputTypes.User.html index 6a3e0ad8..5115848b 100644 --- a/api/SharpHoundCommonLib.OutputTypes.User.html +++ b/api/SharpHoundCommonLib.OutputTypes.User.html @@ -157,10 +157,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

AllowedToDelegate

@@ -187,10 +187,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

HasSIDHistory

@@ -217,10 +217,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PrimaryGroupSID

@@ -247,10 +247,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SPNTargets

diff --git a/api/SharpHoundCommonLib.OutputTypes.UserRightsAssignmentAPIResult.html b/api/SharpHoundCommonLib.OutputTypes.UserRightsAssignmentAPIResult.html index f987dd0f..19bbdc19 100644 --- a/api/SharpHoundCommonLib.OutputTypes.UserRightsAssignmentAPIResult.html +++ b/api/SharpHoundCommonLib.OutputTypes.UserRightsAssignmentAPIResult.html @@ -142,10 +142,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

LocalNames

@@ -172,10 +172,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Privilege

@@ -202,10 +202,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Results

@@ -234,10 +234,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ToString()

diff --git a/api/SharpHoundCommonLib.ParsedGPLink.html b/api/SharpHoundCommonLib.ParsedGPLink.html index bbb09ddd..b17de24e 100644 --- a/api/SharpHoundCommonLib.ParsedGPLink.html +++ b/api/SharpHoundCommonLib.ParsedGPLink.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source @@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source diff --git a/api/SharpHoundCommonLib.Processors.ACEGuids.html b/api/SharpHoundCommonLib.Processors.ACEGuids.html index d2098f01..92574dc7 100644 --- a/api/SharpHoundCommonLib.Processors.ACEGuids.html +++ b/api/SharpHoundCommonLib.Processors.ACEGuids.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AddKeyPrincipal

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

AllGuid

@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

AutoEnroll

@@ -225,10 +225,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DSReplicationGetChanges

@@ -254,10 +254,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DSReplicationGetChangesAll

@@ -283,10 +283,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DSReplicationGetChangesInFilteredSet

@@ -312,10 +312,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Enroll

@@ -341,10 +341,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PKIEnrollmentFlag

@@ -370,10 +370,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PKINameFlag

@@ -399,10 +399,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

UserAccountRestrictions

@@ -428,10 +428,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

UserForceChangePassword

@@ -457,10 +457,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

WriteAllowedToAct

@@ -486,10 +486,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

WriteMember

@@ -515,10 +515,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

WriteSPN

diff --git a/api/SharpHoundCommonLib.Processors.ACLProcessor.html b/api/SharpHoundCommonLib.Processors.ACLProcessor.html index ea8586fb..afec8cae 100644 --- a/api/SharpHoundCommonLib.Processors.ACLProcessor.html +++ b/api/SharpHoundCommonLib.Processors.ACLProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

ACLProcessor(ILDAPUtils, Boolean, ILogger, String)

+

ACLProcessor(ILdapUtils, ILogger)

Declaration
-
public ACLProcessor(ILDAPUtils utils, bool noGuidCache = false, ILogger log = null, string domain = null)
+
public ACLProcessor(ILdapUtils utils, ILogger log = null)
Parameters
@@ -162,35 +162,25 @@
Parameters
- + - - - - - - - - - -
ILDAPUtilsILdapUtils utils
System.BooleannoGuidCache
ILogger log
System.Stringdomain

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

IsACLProtected(ISearchResultEntry)

@@ -235,10 +225,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsACLProtected(Byte[])

@@ -283,10 +273,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ProcessACL(ResolvedSearchResult, ISearchResultEntry)

@@ -295,7 +285,7 @@

Declaration
-
public IEnumerable<ACE> ProcessACL(ResolvedSearchResult result, ISearchResultEntry searchResult)
+
public IAsyncEnumerable<ACE> ProcessACL(ResolvedSearchResult result, ISearchResultEntry searchResult)
Parameters
@@ -329,17 +319,17 @@
Returns
- +
System.Collections.Generic.IEnumerable<ACE>IAsyncEnumerable<ACE>
| - Improve this Doc + Improve this Doc - View Source + View Source

ProcessACL(Byte[], String, Label, Boolean, String)

@@ -349,7 +339,7 @@

Declaration
-
public IEnumerable<ACE> ProcessACL(byte[] ntSecurityDescriptor, string objectDomain, Label objectType, bool hasLaps, string objectName = "")
+
public IAsyncEnumerable<ACE> ProcessACL(byte[] ntSecurityDescriptor, string objectDomain, Label objectType, bool hasLaps, string objectName = "")
Parameters
@@ -398,17 +388,17 @@
Returns
- +
System.Collections.Generic.IEnumerable<ACE>IAsyncEnumerable<ACE>
| - Improve this Doc + Improve this Doc - View Source + View Source

ProcessGMSAReaders(ResolvedSearchResult, ISearchResultEntry)

@@ -417,7 +407,7 @@

Declaration
-
public IEnumerable<ACE> ProcessGMSAReaders(ResolvedSearchResult resolvedSearchResult, ISearchResultEntry searchResultEntry)
+
public IAsyncEnumerable<ACE> ProcessGMSAReaders(ResolvedSearchResult resolvedSearchResult, ISearchResultEntry searchResultEntry)
Parameters
@@ -451,17 +441,17 @@
Returns
- +
System.Collections.Generic.IEnumerable<ACE>IAsyncEnumerable<ACE>
| - Improve this Doc + Improve this Doc - View Source + View Source

ProcessGMSAReaders(Byte[], String)

@@ -470,7 +460,7 @@

Declaration
-
public IEnumerable<ACE> ProcessGMSAReaders(byte[] groupMSAMembership, string objectDomain)
+
public IAsyncEnumerable<ACE> ProcessGMSAReaders(byte[] groupMSAMembership, string objectDomain)
Parameters
@@ -504,17 +494,17 @@
Returns
- +
System.Collections.Generic.IEnumerable<ACE>IAsyncEnumerable<ACE>
| - Improve this Doc + Improve this Doc - View Source + View Source

ProcessGMSAReaders(Byte[], String, String)

@@ -524,7 +514,7 @@

Declaration
-
public IEnumerable<ACE> ProcessGMSAReaders(byte[] groupMSAMembership, string objectName, string objectDomain)
+
public IAsyncEnumerable<ACE> ProcessGMSAReaders(byte[] groupMSAMembership, string objectName, string objectDomain)
Parameters
@@ -563,7 +553,7 @@
Returns
- + diff --git a/api/SharpHoundCommonLib.Processors.CertAbuseProcessor.html b/api/SharpHoundCommonLib.Processors.CertAbuseProcessor.html index 89708c92..0b498f67 100644 --- a/api/SharpHoundCommonLib.Processors.CertAbuseProcessor.html +++ b/api/SharpHoundCommonLib.Processors.CertAbuseProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

CertAbuseProcessor(ILDAPUtils, ILogger)

+

CertAbuseProcessor(ILdapUtils, ILogger)

Declaration
-
public CertAbuseProcessor(ILDAPUtils utils, ILogger log = null)
+
public CertAbuseProcessor(ILdapUtils utils, ILogger log = null)
Parameters
System.Collections.Generic.IEnumerable<ACE>IAsyncEnumerable<ACE>
@@ -162,7 +162,7 @@
Parameters
- + @@ -173,45 +173,14 @@
Parameters
ILDAPUtilsILdapUtils utils
-

Fields -

- - | - Improve this Doc - - - View Source - -

_utils

-
-
-
Declaration
-
-
public readonly ILDAPUtils _utils
-
-
Field Value
- - - - - - - - - - - - - -
TypeDescription
ILDAPUtils

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetRegistryPrincipal(SecurityIdentifier, String, String, Boolean, String, SecurityIdentifier)

@@ -219,7 +188,7 @@

Declaration
-
public TypedPrincipal GetRegistryPrincipal(SecurityIdentifier sid, string computerDomain, string computerName, bool isDomainController, string computerObjectId, SecurityIdentifier machineSid)
+
public Task<(bool Success, TypedPrincipal Principal)> GetRegistryPrincipal(SecurityIdentifier sid, string computerDomain, string computerName, bool isDomainController, string computerObjectId, SecurityIdentifier machineSid)
Parameters
@@ -273,17 +242,17 @@
Returns
- +
TypedPrincipalSystem.Threading.Tasks.Task<System.ValueTuple<System.Boolean, TypedPrincipal>>
| - Improve this Doc + Improve this Doc - View Source + View Source

IsUserSpecifiesSanEnabled(String, String)

@@ -352,10 +321,10 @@
Exceptions
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenSamServer(String)

@@ -399,18 +368,18 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source -

ProcessCertTemplates(String[], String)

+

ProcessCertTemplates(IEnumerable<String>, String)

Declaration
-
public (IEnumerable<TypedPrincipal> resolvedTemplates, IEnumerable<string> unresolvedTemplates) ProcessCertTemplates(string[] templates, string domainName)
+
public Task<(IEnumerable<TypedPrincipal> resolvedTemplates, IEnumerable<string> unresolvedTemplates)> ProcessCertTemplates(IEnumerable<string> templates, string domainName)
Parameters
@@ -423,7 +392,7 @@
Parameters
- + @@ -444,17 +413,17 @@
Returns
- +
System.String[]System.Collections.Generic.IEnumerable<System.String> templates
System.ValueTuple<System.Collections.Generic.IEnumerable<TypedPrincipal>, System.Collections.Generic.IEnumerable<System.String>>System.Threading.Tasks.Task<System.ValueTuple<System.Collections.Generic.IEnumerable<TypedPrincipal>, System.Collections.Generic.IEnumerable<System.String>>>
| - Improve this Doc + Improve this Doc - View Source + View Source

ProcessEAPermissions(String, String, String, String)

@@ -515,10 +484,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ProcessRegistryEnrollmentPermissions(String, String, String, String)

@@ -579,10 +548,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

RoleSeparationEnabled(String, String)

@@ -653,10 +622,10 @@

Events

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerStatusEvent

diff --git a/api/SharpHoundCommonLib.Processors.CertRegistryResult.html b/api/SharpHoundCommonLib.Processors.CertRegistryResult.html index 39bcc628..0ca54800 100644 --- a/api/SharpHoundCommonLib.Processors.CertRegistryResult.html +++ b/api/SharpHoundCommonLib.Processors.CertRegistryResult.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Collected

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

FailureReason

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Value

diff --git a/api/SharpHoundCommonLib.Processors.ComputerAvailability.html b/api/SharpHoundCommonLib.Processors.ComputerAvailability.html index b39c1c48..8249e24f 100644 --- a/api/SharpHoundCommonLib.Processors.ComputerAvailability.html +++ b/api/SharpHoundCommonLib.Processors.ComputerAvailability.html @@ -138,10 +138,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerAvailability(PortScanner, Int32, Int32, Boolean, Boolean, ILogger)

@@ -195,10 +195,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerAvailability(Int32, Int32, Boolean, Boolean, ILogger)

@@ -249,10 +249,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

IsComputerAvailable(ResolvedSearchResult, ISearchResultEntry)

@@ -302,10 +302,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsComputerAvailable(String, String, String)

@@ -369,10 +369,10 @@

Events

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerStatusEvent

diff --git a/api/SharpHoundCommonLib.Processors.ComputerProperties.html b/api/SharpHoundCommonLib.Processors.ComputerProperties.html index 62c8ae82..8953547f 100644 --- a/api/SharpHoundCommonLib.Processors.ComputerProperties.html +++ b/api/SharpHoundCommonLib.Processors.ComputerProperties.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

AllowedToAct

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

AllowedToDelegate

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DumpSMSAPassword

@@ -228,10 +228,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Props

@@ -258,10 +258,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SidHistory

diff --git a/api/SharpHoundCommonLib.Processors.ComputerSessionProcessor.html b/api/SharpHoundCommonLib.Processors.ComputerSessionProcessor.html index 5ce0ec41..ed02ab05 100644 --- a/api/SharpHoundCommonLib.Processors.ComputerSessionProcessor.html +++ b/api/SharpHoundCommonLib.Processors.ComputerSessionProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

ComputerSessionProcessor(ILDAPUtils, String, NativeMethods, ILogger, Boolean, String, String)

+

ComputerSessionProcessor(ILdapUtils, String, NativeMethods, ILogger, Boolean, String, String)

Declaration
-
public ComputerSessionProcessor(ILDAPUtils utils, string currentUserName = null, NativeMethods nativeMethods = null, ILogger log = null, bool doLocalAdminSessionEnum = false, string localAdminUsername = null, string localAdminPassword = null)
+
public ComputerSessionProcessor(ILdapUtils utils, string currentUserName = null, NativeMethods nativeMethods = null, ILogger log = null, bool doLocalAdminSessionEnum = false, string localAdminUsername = null, string localAdminPassword = null)
Parameters
@@ -162,7 +162,7 @@
Parameters
- + @@ -202,10 +202,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ReadUserSessions(String, String, String)

@@ -261,10 +261,10 @@
Returns
ILDAPUtilsILdapUtils utils
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadUserSessionsPrivileged(String, String, String)

@@ -320,10 +320,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadUserSessionsRegistry(String, String, String)

@@ -379,10 +379,10 @@

Events

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerStatusEvent

diff --git a/api/SharpHoundCommonLib.Processors.ContainerProcessor.html b/api/SharpHoundCommonLib.Processors.ContainerProcessor.html index 22708e8a..d6c1e943 100644 --- a/api/SharpHoundCommonLib.Processors.ContainerProcessor.html +++ b/api/SharpHoundCommonLib.Processors.ContainerProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

ContainerProcessor(ILDAPUtils, ILogger)

+

ContainerProcessor(ILdapUtils, ILogger)

Declaration
-
public ContainerProcessor(ILDAPUtils utils, ILogger log = null)
+
public ContainerProcessor(ILdapUtils utils, ILogger log = null)
Parameters
@@ -162,7 +162,7 @@
Parameters
- + @@ -177,10 +177,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetContainerChildObjects(ResolvedSearchResult, ISearchResultEntry)

@@ -189,7 +189,7 @@

Declaration
-
public IEnumerable<TypedPrincipal> GetContainerChildObjects(ResolvedSearchResult result, ISearchResultEntry entry)
+
public IAsyncEnumerable<TypedPrincipal> GetContainerChildObjects(ResolvedSearchResult result, ISearchResultEntry entry)
Parameters
ILDAPUtilsILdapUtils utils
@@ -223,17 +223,17 @@
Returns
- +
System.Collections.Generic.IEnumerable<TypedPrincipal>IAsyncEnumerable<TypedPrincipal>
| - Improve this Doc + Improve this Doc - View Source + View Source

GetContainerChildObjects(String, String)

@@ -242,7 +242,7 @@

Declaration
-
public IEnumerable<TypedPrincipal> GetContainerChildObjects(string distinguishedName, string containerName = "")
+
public IAsyncEnumerable<TypedPrincipal> GetContainerChildObjects(string distinguishedName, string containerName = "")
Parameters
@@ -276,17 +276,17 @@
Returns
- +
System.Collections.Generic.IEnumerable<TypedPrincipal>IAsyncEnumerable<TypedPrincipal>
| - Improve this Doc + Improve this Doc - View Source + View Source

GetContainingObject(ISearchResultEntry)

@@ -295,7 +295,7 @@

Declaration
-
public TypedPrincipal GetContainingObject(ISearchResultEntry entry)
+
public Task<(bool Success, TypedPrincipal principal)> GetContainingObject(ISearchResultEntry entry)
Parameters
@@ -324,17 +324,17 @@
Returns
- +
TypedPrincipalSystem.Threading.Tasks.Task<System.ValueTuple<System.Boolean, TypedPrincipal>>
| - Improve this Doc + Improve this Doc - View Source + View Source

GetContainingObject(String)

@@ -344,7 +344,7 @@

Declaration
-
public TypedPrincipal GetContainingObject(string distinguishedName)
+
public Task<(bool Success, TypedPrincipal Principal)> GetContainingObject(string distinguishedName)
Parameters
@@ -373,17 +373,17 @@
Returns
- +
TypedPrincipalSystem.Threading.Tasks.Task<System.ValueTuple<System.Boolean, TypedPrincipal>>
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadBlocksInheritance(String)

@@ -428,10 +428,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source @@ -439,7 +439,7 @@
Declaration
-
public IEnumerable<GPLink> ReadContainerGPLinks(ResolvedSearchResult result, ISearchResultEntry entry)
+
public IAsyncEnumerable<GPLink> ReadContainerGPLinks(ResolvedSearchResult result, ISearchResultEntry entry)
Parameters
@@ -473,17 +473,17 @@
Returns
- +
System.Collections.Generic.IEnumerable<GPLink>IAsyncEnumerable<GPLink>
| - Improve this Doc + Improve this Doc - View Source + View Source @@ -492,7 +492,7 @@
Declaration
-
public IEnumerable<GPLink> ReadContainerGPLinks(string gpLink)
+
public IAsyncEnumerable<GPLink> ReadContainerGPLinks(string gpLink)
Parameters
@@ -521,7 +521,7 @@
Returns
- + diff --git a/api/SharpHoundCommonLib.Processors.DCRegistryProcessor.html b/api/SharpHoundCommonLib.Processors.DCRegistryProcessor.html index 2b6361d8..46c0bd73 100644 --- a/api/SharpHoundCommonLib.Processors.DCRegistryProcessor.html +++ b/api/SharpHoundCommonLib.Processors.DCRegistryProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

DCRegistryProcessor(ILDAPUtils, ILogger)

+

DCRegistryProcessor(ILdapUtils, ILogger)

Declaration
-
public DCRegistryProcessor(ILDAPUtils utils, ILogger log = null)
+
public DCRegistryProcessor(ILdapUtils utils, ILogger log = null)
Parameters
System.Collections.Generic.IEnumerable<GPLink>IAsyncEnumerable<GPLink>
@@ -162,7 +162,7 @@
Parameters
- + @@ -177,17 +177,17 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

_utils

Declaration
-
public readonly ILDAPUtils _utils
+
public readonly ILdapUtils _utils
Field Value
ILDAPUtilsILdapUtils utils
@@ -199,7 +199,7 @@
Field Value
- + @@ -208,10 +208,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetCertificateMappingMethods(String)

@@ -275,10 +275,10 @@
Exceptions
ILDAPUtilsILdapUtils
| - Improve this Doc + Improve this Doc - View Source + View Source

GetStrongCertificateBindingEnforcement(String)

diff --git a/api/SharpHoundCommonLib.Processors.DomainTrustProcessor.html b/api/SharpHoundCommonLib.Processors.DomainTrustProcessor.html index 7605c422..c9848040 100644 --- a/api/SharpHoundCommonLib.Processors.DomainTrustProcessor.html +++ b/api/SharpHoundCommonLib.Processors.DomainTrustProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

DomainTrustProcessor(ILDAPUtils, ILogger)

+

DomainTrustProcessor(ILdapUtils, ILogger)

Declaration
-
public DomainTrustProcessor(ILDAPUtils utils, ILogger log = null)
+
public DomainTrustProcessor(ILdapUtils utils, ILogger log = null)
Parameters
@@ -162,7 +162,7 @@
Parameters
- + @@ -177,10 +177,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

EnumerateDomainTrusts(String)

@@ -189,7 +189,7 @@

Declaration
-
public IEnumerable<DomainTrust> EnumerateDomainTrusts(string domain)
+
public IAsyncEnumerable<DomainTrust> EnumerateDomainTrusts(string domain)
Parameters
ILDAPUtilsILdapUtils utils
@@ -218,17 +218,17 @@
Returns
- +
System.Collections.Generic.IEnumerable<DomainTrust>IAsyncEnumerable<DomainTrust>
| - Improve this Doc + Improve this Doc - View Source + View Source

TrustAttributesToType(TrustAttributes)

diff --git a/api/SharpHoundCommonLib.Processors.EnrollmentAgentRestriction.html b/api/SharpHoundCommonLib.Processors.EnrollmentAgentRestriction.html index cd99302b..ba49c495 100644 --- a/api/SharpHoundCommonLib.Processors.EnrollmentAgentRestriction.html +++ b/api/SharpHoundCommonLib.Processors.EnrollmentAgentRestriction.html @@ -134,83 +134,14 @@
Syntax
public class EnrollmentAgentRestriction
-

Constructors -

- - | - Improve this Doc - - - View Source - - -

EnrollmentAgentRestriction(QualifiedAce, String, String, CertAbuseProcessor, String, Boolean, String, SecurityIdentifier)

-
-
-
Declaration
-
-
public EnrollmentAgentRestriction(QualifiedAce ace, string computerDomain, string certTemplatesLocation, CertAbuseProcessor certAbuseProcessor, string computerName, bool isDomainController, string computerObjectId, SecurityIdentifier machineSid)
-
-
Parameters
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescription
System.Security.AccessControl.QualifiedAceace
System.StringcomputerDomain
System.StringcertTemplatesLocation
CertAbuseProcessorcertAbuseProcessor
System.StringcomputerName
System.BooleanisDomainController
System.StringcomputerObjectId
System.Security.Principal.SecurityIdentifiermachineSid

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

AccessType

@@ -237,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Agent

@@ -267,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

AllTemplates

@@ -297,10 +228,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Targets

@@ -327,10 +258,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Template

diff --git a/api/SharpHoundCommonLib.Processors.GPOLocalGroupProcessor.GroupResults.html b/api/SharpHoundCommonLib.Processors.GPOLocalGroupProcessor.GroupResults.html index 9f71e936..86497fc6 100644 --- a/api/SharpHoundCommonLib.Processors.GPOLocalGroupProcessor.GroupResults.html +++ b/api/SharpHoundCommonLib.Processors.GPOLocalGroupProcessor.GroupResults.html @@ -139,10 +139,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

LocalGroups

@@ -168,10 +168,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RestrictedMember

@@ -197,10 +197,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RestrictedMemberOf

diff --git a/api/SharpHoundCommonLib.Processors.GPOLocalGroupProcessor.html b/api/SharpHoundCommonLib.Processors.GPOLocalGroupProcessor.html index 4d7086a9..b7182cd6 100644 --- a/api/SharpHoundCommonLib.Processors.GPOLocalGroupProcessor.html +++ b/api/SharpHoundCommonLib.Processors.GPOLocalGroupProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

GPOLocalGroupProcessor(ILDAPUtils, ILogger)

+

GPOLocalGroupProcessor(ILdapUtils, ILogger)

Declaration
-
public GPOLocalGroupProcessor(ILDAPUtils utils, ILogger log = null)
+
public GPOLocalGroupProcessor(ILdapUtils utils, ILogger log = null)
Parameters
@@ -162,7 +162,7 @@
Parameters
- + @@ -177,10 +177,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ReadGPOLocalGroups(ISearchResultEntry)

@@ -224,10 +224,10 @@
Returns
ILDAPUtilsILdapUtils utils
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadGPOLocalGroups(String, String)

diff --git a/api/SharpHoundCommonLib.Processors.GroupProcessor.html b/api/SharpHoundCommonLib.Processors.GroupProcessor.html index 72eabb0b..2180668a 100644 --- a/api/SharpHoundCommonLib.Processors.GroupProcessor.html +++ b/api/SharpHoundCommonLib.Processors.GroupProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

GroupProcessor(ILDAPUtils, ILogger)

+

GroupProcessor(ILdapUtils, ILogger)

Declaration
-
public GroupProcessor(ILDAPUtils utils, ILogger log = null)
+
public GroupProcessor(ILdapUtils utils, ILogger log = null)
Parameters
@@ -162,7 +162,7 @@
Parameters
- + @@ -177,10 +177,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetPrimaryGroupInfo(String, String)

@@ -230,10 +230,10 @@
Returns
ILDAPUtilsILdapUtils utils
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadGroupMembers(ResolvedSearchResult, ISearchResultEntry)

@@ -241,7 +241,7 @@

Declaration
-
public IEnumerable<TypedPrincipal> ReadGroupMembers(ResolvedSearchResult result, ISearchResultEntry entry)
+
public IAsyncEnumerable<TypedPrincipal> ReadGroupMembers(ResolvedSearchResult result, ISearchResultEntry entry)
Parameters
@@ -275,17 +275,17 @@
Returns
- +
System.Collections.Generic.IEnumerable<TypedPrincipal>IAsyncEnumerable<TypedPrincipal>
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadGroupMembers(String, String[], String)

@@ -294,7 +294,7 @@

Declaration
-
public IEnumerable<TypedPrincipal> ReadGroupMembers(string distinguishedName, string[] members, string objectName = "")
+
public IAsyncEnumerable<TypedPrincipal> ReadGroupMembers(string distinguishedName, string[] members, string objectName = "")
Parameters
@@ -333,7 +333,7 @@
Returns
- + diff --git a/api/SharpHoundCommonLib.Processors.IssuancePolicyProperties.html b/api/SharpHoundCommonLib.Processors.IssuancePolicyProperties.html index 02f819e6..5a235348 100644 --- a/api/SharpHoundCommonLib.Processors.IssuancePolicyProperties.html +++ b/api/SharpHoundCommonLib.Processors.IssuancePolicyProperties.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source @@ -168,10 +168,10 @@
Property Value
System.Collections.Generic.IEnumerable<TypedPrincipal>IAsyncEnumerable<TypedPrincipal>
| - Improve this Doc + Improve this Doc - View Source + View Source

Props

diff --git a/api/SharpHoundCommonLib.Processors.LDAPPropertyProcessor.html b/api/SharpHoundCommonLib.Processors.LDAPPropertyProcessor.html index e39156ca..868eee9e 100644 --- a/api/SharpHoundCommonLib.Processors.LDAPPropertyProcessor.html +++ b/api/SharpHoundCommonLib.Processors.LDAPPropertyProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

LDAPPropertyProcessor(ILDAPUtils)

+

LDAPPropertyProcessor(ILdapUtils)

Declaration
-
public LDAPPropertyProcessor(ILDAPUtils utils)
+
public LDAPPropertyProcessor(ILdapUtils utils)
Parameters
@@ -162,7 +162,7 @@
Parameters
- + @@ -172,10 +172,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

FunctionalLevelToString(Int32)

@@ -220,10 +220,10 @@
Returns
ILDAPUtilsILdapUtils utils
| - Improve this Doc + Improve this Doc - View Source + View Source

ParseAllProperties(ISearchResultEntry)

@@ -269,10 +269,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadAIACAProperties(ISearchResultEntry)

@@ -318,10 +318,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadCertTemplateProperties(ISearchResultEntry)

@@ -367,10 +367,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadComputerProperties(ISearchResultEntry)

@@ -415,10 +415,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadContainerProperties(ISearchResultEntry)

@@ -463,10 +463,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadDomainProperties(ISearchResultEntry)

@@ -511,10 +511,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadEnterpriseCAProperties(ISearchResultEntry)

@@ -558,10 +558,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadGPOProperties(ISearchResultEntry)

@@ -606,10 +606,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadGroupProperties(ISearchResultEntry)

@@ -654,10 +654,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadIssuancePolicyProperties(ISearchResultEntry)

@@ -665,7 +665,7 @@

Declaration
-
public IssuancePolicyProperties ReadIssuancePolicyProperties(ISearchResultEntry entry)
+
public Task<IssuancePolicyProperties> ReadIssuancePolicyProperties(ISearchResultEntry entry)
Parameters
@@ -694,17 +694,17 @@
Returns
- +
IssuancePolicyPropertiesSystem.Threading.Tasks.Task<IssuancePolicyProperties>
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadNTAuthStoreProperties(ISearchResultEntry)

@@ -750,10 +750,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadOUProperties(ISearchResultEntry)

@@ -798,10 +798,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadRootCAProperties(ISearchResultEntry)

@@ -847,10 +847,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadUserProperties(ISearchResultEntry)

diff --git a/api/SharpHoundCommonLib.Processors.LocalGroupProcessor.html b/api/SharpHoundCommonLib.Processors.LocalGroupProcessor.html index 9bba6259..9899ff32 100644 --- a/api/SharpHoundCommonLib.Processors.LocalGroupProcessor.html +++ b/api/SharpHoundCommonLib.Processors.LocalGroupProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

LocalGroupProcessor(ILDAPUtils, ILogger)

+

LocalGroupProcessor(ILdapUtils, ILogger)

Declaration
-
public LocalGroupProcessor(ILDAPUtils utils, ILogger log = null)
+
public LocalGroupProcessor(ILdapUtils utils, ILogger log = null)
Parameters
@@ -162,7 +162,7 @@
Parameters
- + @@ -177,10 +177,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetLocalGroups(ResolvedSearchResult)

@@ -224,10 +224,10 @@
Returns
ILDAPUtilsILdapUtils utils
| - Improve this Doc + Improve this Doc - View Source + View Source

GetLocalGroups(String, String, String, Boolean)

@@ -290,10 +290,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenSamServer(String)

@@ -339,10 +339,10 @@

Events

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerStatusEvent

diff --git a/api/SharpHoundCommonLib.Processors.ParsedCertificate.html b/api/SharpHoundCommonLib.Processors.ParsedCertificate.html index 541fec3f..9926f71e 100644 --- a/api/SharpHoundCommonLib.Processors.ParsedCertificate.html +++ b/api/SharpHoundCommonLib.Processors.ParsedCertificate.html @@ -138,10 +138,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

ParsedCertificate(Byte[])

@@ -172,10 +172,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

BasicConstraintPathLength

@@ -202,10 +202,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Chain

@@ -232,10 +232,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

HasBasicConstraints

@@ -262,10 +262,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Name

@@ -292,10 +292,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Thumbprint

diff --git a/api/SharpHoundCommonLib.Processors.PortScanner.html b/api/SharpHoundCommonLib.Processors.PortScanner.html index 9f8b22ea..c22e390b 100644 --- a/api/SharpHoundCommonLib.Processors.PortScanner.html +++ b/api/SharpHoundCommonLib.Processors.PortScanner.html @@ -138,10 +138,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

PortScanner()

@@ -153,10 +153,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

PortScanner(ILogger)

@@ -187,10 +187,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

CheckPort(String, Int32, Int32)

@@ -247,10 +247,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ClearCache()

diff --git a/api/SharpHoundCommonLib.Processors.RegistryResult.html b/api/SharpHoundCommonLib.Processors.RegistryResult.html index 124c45e4..f7d22d76 100644 --- a/api/SharpHoundCommonLib.Processors.RegistryResult.html +++ b/api/SharpHoundCommonLib.Processors.RegistryResult.html @@ -145,10 +145,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Value

diff --git a/api/SharpHoundCommonLib.Processors.SPNProcessors.html b/api/SharpHoundCommonLib.Processors.SPNProcessors.html index 80540dc4..328947b6 100644 --- a/api/SharpHoundCommonLib.Processors.SPNProcessors.html +++ b/api/SharpHoundCommonLib.Processors.SPNProcessors.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

SPNProcessors(ILDAPUtils, ILogger)

+

SPNProcessors(ILdapUtils, ILogger)

Declaration
-
public SPNProcessors(ILDAPUtils utils, ILogger log = null)
+
public SPNProcessors(ILdapUtils utils, ILogger log = null)
Parameters
@@ -162,7 +162,7 @@
Parameters
- + @@ -177,10 +177,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ReadSPNTargets(ResolvedSearchResult, ISearchResultEntry)

@@ -229,10 +229,10 @@
Returns
ILDAPUtilsILdapUtils utils
| - Improve this Doc + Improve this Doc - View Source + View Source

ReadSPNTargets(String[], String, String)

diff --git a/api/SharpHoundCommonLib.Processors.UserProperties.html b/api/SharpHoundCommonLib.Processors.UserProperties.html index f553d652..9bdbd787 100644 --- a/api/SharpHoundCommonLib.Processors.UserProperties.html +++ b/api/SharpHoundCommonLib.Processors.UserProperties.html @@ -138,10 +138,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

AllowedToDelegate

@@ -168,10 +168,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Props

@@ -198,10 +198,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SidHistory

diff --git a/api/SharpHoundCommonLib.Processors.UserRightsAssignmentProcessor.html b/api/SharpHoundCommonLib.Processors.UserRightsAssignmentProcessor.html index 72a6aafb..0e09a011 100644 --- a/api/SharpHoundCommonLib.Processors.UserRightsAssignmentProcessor.html +++ b/api/SharpHoundCommonLib.Processors.UserRightsAssignmentProcessor.html @@ -138,18 +138,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

UserRightsAssignmentProcessor(ILDAPUtils, ILogger)

+

UserRightsAssignmentProcessor(ILdapUtils, ILogger)

Declaration
-
public UserRightsAssignmentProcessor(ILDAPUtils utils, ILogger log = null)
+
public UserRightsAssignmentProcessor(ILdapUtils utils, ILogger log = null)
Parameters
@@ -162,7 +162,7 @@
Parameters
- + @@ -177,10 +177,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetUserRightsAssignments(ResolvedSearchResult, String[])

@@ -229,10 +229,10 @@
Returns
ILDAPUtilsILdapUtils utils
| - Improve this Doc + Improve this Doc - View Source + View Source

GetUserRightsAssignments(String, String, String, Boolean, String[])

@@ -299,10 +299,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenLSAPolicy(String)

@@ -348,10 +348,10 @@

Events

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerStatusEvent

diff --git a/api/SharpHoundCommonLib.ResolvedSearchResult.html b/api/SharpHoundCommonLib.ResolvedSearchResult.html index 40039ef4..60aec9a4 100644 --- a/api/SharpHoundCommonLib.ResolvedSearchResult.html +++ b/api/SharpHoundCommonLib.ResolvedSearchResult.html @@ -135,10 +135,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Deleted

@@ -165,10 +165,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DisplayName

@@ -195,10 +195,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Domain

@@ -225,10 +225,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainSid

@@ -255,10 +255,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsDomainController

@@ -285,10 +285,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectId

@@ -315,10 +315,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectType

@@ -347,10 +347,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ToString()

diff --git a/api/SharpHoundCommonLib.Result-1.html b/api/SharpHoundCommonLib.Result-1.html new file mode 100644 index 00000000..9882a5e6 --- /dev/null +++ b/api/SharpHoundCommonLib.Result-1.html @@ -0,0 +1,384 @@ + + + + + + + + + Class Result<T> + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + Sharphound.Common + + +
+ +
+ +
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.LDAPUtils.LdapConnectionTestResult.html b/api/SharpHoundCommonLib.Result.html similarity index 60% rename from api/SharpHoundCommonLib.LDAPUtils.LdapConnectionTestResult.html rename to api/SharpHoundCommonLib.Result.html index de46ae7d..a0ef4168 100644 --- a/api/SharpHoundCommonLib.LDAPUtils.LdapConnectionTestResult.html +++ b/api/SharpHoundCommonLib.Result.html @@ -6,10 +6,10 @@ - Class LDAPUtils.LdapConnectionTestResult + <title>Class Result - @@ -92,17 +92,18 @@ -
+
-

Class LDAPUtils.LdapConnectionTestResult +

Class Result

Inheritance
System.Object
-
LDAPUtils.LdapConnectionTestResult
+
Result
+
Inherited Members
@@ -130,26 +131,26 @@
Inherited Members
Namespace: SharpHoundCommonLib
Assembly: SharpHoundCommonLib.dll
-
Syntax
+
Syntax
-
public class LdapConnectionTestResult
+
public class Result

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source - -

LdapConnectionTestResult(Boolean, LdapException, DomainInfo, String)

+ +

Result(Boolean, String)

Declaration
-
public LdapConnectionTestResult(bool success, LdapException e, DomainInfo info, string server)
+
protected Result(bool success, string error)
Parameters
@@ -166,19 +167,9 @@
Parameters
- - - - - - - - - - - + @@ -187,18 +178,18 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source - -

DomainInfo

+ +

Error

Declaration
-
public DomainInfo DomainInfo { get; set; }
+
public string Error { get; set; }
Property Value
success
System.DirectoryServices.Protocols.LdapExceptione
DomainInfoinfo
System.Stringservererror
@@ -210,25 +201,25 @@
Property Value
- +
DomainInfoSystem.String
| - Improve this Doc + Improve this Doc - View Source + View Source - -

Exception

+ +

IsSuccess

Declaration
-
public LdapException Exception { get; set; }
+
public bool IsSuccess { get; }
Property Value
@@ -240,57 +231,76 @@
Property Value
- +
System.DirectoryServices.Protocols.LdapExceptionSystem.Boolean
+

Methods +

| - Improve this Doc + Improve this Doc - View Source + View Source - -

ServerName

+ +

Fail(String)

Declaration
-
public string ServerName { get; set; }
+
public static Result Fail(string message)
-
Property Value
+
Parameters
+ + + + + +
TypeName Description
System.Stringmessage
+
Returns
+ + + + + + + + + +
TypeDescription
Result
| - Improve this Doc + Improve this Doc - View Source + View Source - -

Success

+ +

Ok()

Declaration
-
public bool Success { get; set; }
+
public static Result Ok()
-
Property Value
+
Returns
@@ -300,7 +310,7 @@
Property Value
- + diff --git a/api/SharpHoundCommonLib.SHRegistryKey.html b/api/SharpHoundCommonLib.SHRegistryKey.html index 3086e08d..b9f0c388 100644 --- a/api/SharpHoundCommonLib.SHRegistryKey.html +++ b/api/SharpHoundCommonLib.SHRegistryKey.html @@ -142,10 +142,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

SHRegistryKey(RegistryHive, String)

@@ -181,10 +181,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetValue(String, String)

diff --git a/api/SharpHoundCommonLib.SearchResultEntryExtensions.html b/api/SharpHoundCommonLib.SearchResultEntryExtensions.html new file mode 100644 index 00000000..8c40e119 --- /dev/null +++ b/api/SharpHoundCommonLib.SearchResultEntryExtensions.html @@ -0,0 +1,788 @@ + + + + + + + + + Class SearchResultEntryExtensions + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +
System.BooleanResult
+ + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.String

The string representation of the object's GUID if possible, otherwise null

+
+ + | + Improve this Doc + + + View Source + + +

GetLabel(SearchResultEntry, out Label)

+

Extension method to determine the BloodHound type of a SearchResultEntry using LDAP properties +Requires ldap properties objectsid, samaccounttype, objectclass

+
+
+
Declaration
+
+
public static bool GetLabel(this SearchResultEntry entry, out Label type)
+
+
Parameters
+ + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
Labeltype
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Boolean
+ + | + Improve this Doc + + + View Source + + +

GetObjectIdentifier(SearchResultEntry)

+

Attempts to get the unique object identifier as used by BloodHound for the Search Result Entry. Tries to get +objectsid first, and then objectguid next.

+
+
+
Declaration
+
+
public static string GetObjectIdentifier(this SearchResultEntry entry)
+
+
Parameters
+ + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.String

String representation of the entry's object identifier or null

+
+ + | + Improve this Doc + + + View Source + + +

GetProperty(SearchResultEntry, String)

+

Gets the specified property as a string from the SearchResultEntry

+
+
+
Declaration
+
+
public static string GetProperty(this SearchResultEntry entry, string property)
+
+
Parameters
+ + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
System.Stringproperty

The LDAP name of the property you want to get

+
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.String

The string value of the property if it exists or null

+
+ + | + Improve this Doc + + + View Source + + +

GetPropertyAsArray(SearchResultEntry, String)

+

Gets the specified property as a string array from the SearchResultEntry

+
+
+
Declaration
+
+
public static string[] GetPropertyAsArray(this SearchResultEntry entry, string property)
+
+
Parameters
+ + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
System.Stringproperty

The LDAP name of the property you want to get

+
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.String[]

The specified property as an array of strings if possible, else an empty array

+
+ + | + Improve this Doc + + + View Source + + +

GetPropertyAsArrayOfBytes(SearchResultEntry, String)

+

Gets the specified property as an array of byte arrays from the SearchResultEntry +Used for SIDHistory

+
+
+
Declaration
+
+
public static byte[][] GetPropertyAsArrayOfBytes(this SearchResultEntry entry, string property)
+
+
Parameters
+ + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
System.Stringproperty

The LDAP name of the property you want to get

+
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Byte[][]

The specified property as an array of bytes if possible, else an empty array

+
+ + | + Improve this Doc + + + View Source + + +

GetPropertyAsArrayOfCertificates(SearchResultEntry, String)

+

Gets the specified property as an array of X509 certificates.

+
+
+
Declaration
+
+
public static X509Certificate2[] GetPropertyAsArrayOfCertificates(this SearchResultEntry searchResultEntry, string property)
+
+
Parameters
+ + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntrysearchResultEntry
System.Stringproperty
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Security.Cryptography.X509Certificates.X509Certificate2[]
+ + | + Improve this Doc + + + View Source + + +

GetPropertyAsBytes(SearchResultEntry, String)

+

Gets the specified property as a byte array

+
+
+
Declaration
+
+
public static byte[] GetPropertyAsBytes(this SearchResultEntry searchResultEntry, string property)
+
+
Parameters
+ + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntrysearchResultEntry
System.Stringproperty

The LDAP name of the property you want to get

+
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Byte[]

An array of bytes if possible, else null

+
+ + | + Improve this Doc + + + View Source + + +

GetPropertyAsInt(SearchResultEntry, String, out Int32)

+

Gets the specified property as an int

+
+
+
Declaration
+
+
public static bool GetPropertyAsInt(this SearchResultEntry entry, string property, out int value)
+
+
Parameters
+ + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
System.Stringproperty
System.Int32value
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Boolean
+ + | + Improve this Doc + + + View Source + + +

GetSid(SearchResultEntry)

+

Gets the "objectsid" property as a string from the SearchResultEntry

+
+
+
Declaration
+
+
public static string GetSid(this SearchResultEntry entry)
+
+
Parameters
+ + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.String

The string representation of the object's SID if possible, otherwise null

+
+ + | + Improve this Doc + + + View Source + + +

IsDeleted(SearchResultEntry)

+

Checks the isDeleted LDAP property to determine if an entry has been deleted from the directory

+
+
+
Declaration
+
+
public static bool IsDeleted(this SearchResultEntry entry)
+
+
Parameters
+ + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntryentry
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.Boolean
+ + | + Improve this Doc + + + View Source + + +

PrintEntry(SearchResultEntry)

+

Helper function to print attributes of a SearchResultEntry

+
+
+
Declaration
+
+
public static string PrintEntry(this SearchResultEntry searchResultEntry)
+
+
Parameters
+ + + + + + + + + + + + + + + +
TypeNameDescription
System.DirectoryServices.Protocols.SearchResultEntrysearchResultEntry
+
Returns
+ + + + + + + + + + + + + +
TypeDescription
System.String
+
+ + + + + + + + + + + + + + + + + + + diff --git a/api/SharpHoundCommonLib.SearchResultEntryWrapper.html b/api/SharpHoundCommonLib.SearchResultEntryWrapper.html index d806f8de..3db549d5 100644 --- a/api/SharpHoundCommonLib.SearchResultEntryWrapper.html +++ b/api/SharpHoundCommonLib.SearchResultEntryWrapper.html @@ -142,18 +142,18 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source -

SearchResultEntryWrapper(SearchResultEntry, ILDAPUtils, ILogger)

+

SearchResultEntryWrapper(SearchResultEntry, ILdapUtils, ILogger)

Declaration
-
public SearchResultEntryWrapper(SearchResultEntry entry, ILDAPUtils utils = null, ILogger log = null)
+
public SearchResultEntryWrapper(SearchResultEntry entry, ILdapUtils utils = null, ILogger log = null)
Parameters
@@ -171,7 +171,7 @@
Parameters
- + @@ -186,10 +186,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

DistinguishedName

@@ -218,10 +218,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetArrayProperty(String)

@@ -265,10 +265,10 @@
Returns
ILDAPUtilsILdapUtils utils
| - Improve this Doc + Improve this Doc - View Source + View Source

GetByteArrayProperty(String)

@@ -312,10 +312,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetByteProperty(String)

@@ -359,10 +359,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetCertificateArrayProperty(String)

@@ -406,10 +406,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetEntry()

@@ -436,10 +436,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetGuid()

@@ -466,10 +466,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetIntProperty(String, out Int32)

@@ -518,10 +518,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetLabel()

@@ -548,10 +548,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetObjectIdentifier()

@@ -578,10 +578,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetProperty(String)

@@ -625,10 +625,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetSid()

@@ -655,10 +655,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

HasLAPS()

@@ -685,10 +685,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsDeleted()

@@ -715,10 +715,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsGMSA()

@@ -745,10 +745,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

IsMSA()

@@ -775,10 +775,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

PropCount(String)

@@ -822,10 +822,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

PropertyNames()

@@ -852,10 +852,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

ResolveBloodHoundInfo()

@@ -863,7 +863,7 @@

Declaration
-
public ResolvedSearchResult ResolveBloodHoundInfo()
+
public Task<ResolvedSearchResult> ResolveBloodHoundInfo()
Returns
@@ -875,7 +875,7 @@
Returns
- + diff --git a/api/SharpHoundCommonLib.WellKnownPrincipal.html b/api/SharpHoundCommonLib.WellKnownPrincipal.html index 4a7c9638..fb4102e6 100644 --- a/api/SharpHoundCommonLib.WellKnownPrincipal.html +++ b/api/SharpHoundCommonLib.WellKnownPrincipal.html @@ -138,10 +138,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetWellKnownPrincipal(String, out TypedPrincipal)

diff --git a/api/SharpHoundCommonLib.html b/api/SharpHoundCommonLib.html index 64e66c23..04af5f95 100644 --- a/api/SharpHoundCommonLib.html +++ b/api/SharpHoundCommonLib.html @@ -109,11 +109,11 @@

Cache

CommonLib

-

CSVComputerStatus

+

ConnectionPoolManager

-

DomainInfo

+

CSVComputerStatus

-

EdgeNames

+

DirectoryEntryExtensions

Extensions

@@ -121,15 +121,19 @@

Helpers

LDAPConfig

-

LDAPConnectionCacheKey

+

LdapConnectionPool

LdapConnectionWrapper

LDAPProperties

-

LDAPUtils

+

LdapQueryParameters

+
+

LdapQuerySetupResult

-

LDAPUtils.LdapConnectionTestResult

+

LdapResult<T>

+
+

LdapUtils

MockRegistryKey

@@ -142,20 +146,21 @@

ParsedGPLink

ResolvedSearchResult

+

Result

+
+

Result<T>

+
+

SearchResultEntryExtensions

+

SearchResultEntryWrapper

SHRegistryKey

WellKnownPrincipal

-

Structs -

-

LDAPQueryOptions

-

Struct representing options to create an LDAP query

-

Interfaces

-

ILDAPUtils

+

ILdapUtils

IRegistryKey

diff --git a/api/SharpHoundRPC.Extensions.html b/api/SharpHoundRPC.Extensions.html index 3531ce9f..bd770dfc 100644 --- a/api/SharpHoundRPC.Extensions.html +++ b/api/SharpHoundRPC.Extensions.html @@ -138,10 +138,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetBytes(SecurityIdentifier)

@@ -185,10 +185,10 @@
Returns
ResolvedSearchResultSystem.Threading.Tasks.Task<ResolvedSearchResult>
| - Improve this Doc + Improve this Doc - View Source + View Source

IsError(NtStatus)

@@ -232,10 +232,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Rid(SecurityIdentifier)

diff --git a/api/SharpHoundRPC.Handles.BasePointer.html b/api/SharpHoundRPC.Handles.BasePointer.html index 902d8ef3..e31b49c2 100644 --- a/api/SharpHoundRPC.Handles.BasePointer.html +++ b/api/SharpHoundRPC.Handles.BasePointer.html @@ -184,10 +184,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

BasePointer()

@@ -199,10 +199,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

BasePointer(Boolean)

@@ -231,10 +231,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

BasePointer(IntPtr)

@@ -263,10 +263,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

BasePointer(IntPtr, Boolean)

@@ -302,10 +302,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetData<T>()

@@ -347,10 +347,10 @@
Type Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

GetEnumerable<T>(Int32)

diff --git a/api/SharpHoundRPC.Handles.LSAHandle.html b/api/SharpHoundRPC.Handles.LSAHandle.html index 1fd367e6..35aa4ba4 100644 --- a/api/SharpHoundRPC.Handles.LSAHandle.html +++ b/api/SharpHoundRPC.Handles.LSAHandle.html @@ -178,10 +178,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

LSAHandle()

@@ -193,10 +193,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

LSAHandle(Boolean)

@@ -225,10 +225,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

LSAHandle(IntPtr, Boolean)

@@ -264,10 +264,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Finalize()

@@ -279,10 +279,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

ReleaseHandle()

diff --git a/api/SharpHoundRPC.Handles.LSAPointer.html b/api/SharpHoundRPC.Handles.LSAPointer.html index caeb2615..1eeb4fc3 100644 --- a/api/SharpHoundRPC.Handles.LSAPointer.html +++ b/api/SharpHoundRPC.Handles.LSAPointer.html @@ -185,10 +185,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

LSAPointer()

@@ -200,10 +200,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

LSAPointer(IntPtr)

@@ -232,10 +232,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

LSAPointer(IntPtr, Boolean)

@@ -271,10 +271,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ReleaseHandle()

diff --git a/api/SharpHoundRPC.Handles.NetAPIPointer.html b/api/SharpHoundRPC.Handles.NetAPIPointer.html index b7c1dfea..dd40f8ea 100644 --- a/api/SharpHoundRPC.Handles.NetAPIPointer.html +++ b/api/SharpHoundRPC.Handles.NetAPIPointer.html @@ -185,10 +185,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

NetAPIPointer()

@@ -200,10 +200,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

NetAPIPointer(IntPtr)

@@ -232,10 +232,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

NetAPIPointer(IntPtr, Boolean)

@@ -271,10 +271,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ReleaseHandle()

diff --git a/api/SharpHoundRPC.Handles.SAMHandle.html b/api/SharpHoundRPC.Handles.SAMHandle.html index 5ca213f0..42e01566 100644 --- a/api/SharpHoundRPC.Handles.SAMHandle.html +++ b/api/SharpHoundRPC.Handles.SAMHandle.html @@ -178,10 +178,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

SAMHandle()

@@ -193,10 +193,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

SAMHandle(IntPtr)

@@ -225,10 +225,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

SAMHandle(IntPtr, Boolean)

@@ -264,10 +264,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Finalize()

@@ -279,10 +279,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

ReleaseHandle()

diff --git a/api/SharpHoundRPC.Handles.SAMPointer.html b/api/SharpHoundRPC.Handles.SAMPointer.html index 5de8d7b1..80323142 100644 --- a/api/SharpHoundRPC.Handles.SAMPointer.html +++ b/api/SharpHoundRPC.Handles.SAMPointer.html @@ -186,10 +186,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

SAMPointer()

@@ -201,10 +201,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

SAMPointer(IntPtr)

@@ -233,10 +233,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

SAMPointer(IntPtr, Boolean)

@@ -272,10 +272,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ReleaseHandle()

diff --git a/api/SharpHoundRPC.Handles.SAMSidArray.html b/api/SharpHoundRPC.Handles.SAMSidArray.html index bcb66a0f..f17150f7 100644 --- a/api/SharpHoundRPC.Handles.SAMSidArray.html +++ b/api/SharpHoundRPC.Handles.SAMSidArray.html @@ -189,10 +189,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

SAMSidArray()

@@ -204,10 +204,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

SAMSidArray(IntPtr)

@@ -236,10 +236,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

SAMSidArray(IntPtr, Boolean)

@@ -275,10 +275,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetData(Int32)

diff --git a/api/SharpHoundRPC.LSANative.LSAStructs.LSAReferencedDomains.html b/api/SharpHoundRPC.LSANative.LSAStructs.LSAReferencedDomains.html index cc353572..af0ceaca 100644 --- a/api/SharpHoundRPC.LSANative.LSAStructs.LSAReferencedDomains.html +++ b/api/SharpHoundRPC.LSANative.LSAStructs.LSAReferencedDomains.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

Domains

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Entries

diff --git a/api/SharpHoundRPC.LSANative.LSAStructs.LSATranslatedNames.html b/api/SharpHoundRPC.LSANative.LSAStructs.LSATranslatedNames.html index beafcf4b..609881aa 100644 --- a/api/SharpHoundRPC.LSANative.LSAStructs.LSATranslatedNames.html +++ b/api/SharpHoundRPC.LSANative.LSAStructs.LSATranslatedNames.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

DomainIndex

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Name

@@ -188,10 +188,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Use

diff --git a/api/SharpHoundRPC.LSANative.LSAStructs.LSATrustInformation.html b/api/SharpHoundRPC.LSANative.LSAStructs.LSATrustInformation.html index 4ceb21c8..632d9ebc 100644 --- a/api/SharpHoundRPC.LSANative.LSAStructs.LSATrustInformation.html +++ b/api/SharpHoundRPC.LSANative.LSAStructs.LSATrustInformation.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

Name

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Sid

diff --git a/api/SharpHoundRPC.LSANative.LSAStructs.ObjectAttributes.html b/api/SharpHoundRPC.LSANative.LSAStructs.ObjectAttributes.html index 7d26bf49..3d7f3f90 100644 --- a/api/SharpHoundRPC.LSANative.LSAStructs.ObjectAttributes.html +++ b/api/SharpHoundRPC.LSANative.LSAStructs.ObjectAttributes.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

Attributes

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Length

@@ -188,10 +188,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectName

@@ -217,10 +217,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RootDirectory

@@ -246,10 +246,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SecurityDescriptor

@@ -275,10 +275,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SecurityQualityOfService

@@ -306,10 +306,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Dispose()

diff --git a/api/SharpHoundRPC.LSANative.LSAStructs.PolicyAccountDomainInfo.html b/api/SharpHoundRPC.LSANative.LSAStructs.PolicyAccountDomainInfo.html index 631525ef..260c708e 100644 --- a/api/SharpHoundRPC.LSANative.LSAStructs.PolicyAccountDomainInfo.html +++ b/api/SharpHoundRPC.LSANative.LSAStructs.PolicyAccountDomainInfo.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

DomainName

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainSid

diff --git a/api/SharpHoundRPC.LSANative.UserRights.html b/api/SharpHoundRPC.LSANative.UserRights.html index ffff5344..911a9189 100644 --- a/api/SharpHoundRPC.LSANative.UserRights.html +++ b/api/SharpHoundRPC.LSANative.UserRights.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AllPrivileges

@@ -167,10 +167,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

AssignPrimaryToken

@@ -196,10 +196,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Audit

@@ -225,10 +225,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Backup

@@ -254,10 +254,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

BatchLogon

@@ -283,10 +283,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ChangeNotify

@@ -312,10 +312,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CreateGlobal

@@ -341,10 +341,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CreatePagefile

@@ -370,10 +370,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CreatePermanent

@@ -399,10 +399,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source
@@ -428,10 +428,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

CreateToken

@@ -457,10 +457,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Debug

@@ -486,10 +486,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyBatchLogon

@@ -515,10 +515,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyInteractiveLogon

@@ -544,10 +544,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyNetworkLogon

@@ -573,10 +573,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyRemoteInteractiveLogon

@@ -602,10 +602,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DenyServiceLogon

@@ -631,10 +631,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnableDelegation

@@ -660,10 +660,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Impersonate

@@ -689,10 +689,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IncreaseBasePriority

@@ -718,10 +718,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IncreaseQuota

@@ -747,10 +747,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IncreaseWorkingSet

@@ -776,10 +776,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

InteractiveLogon

@@ -805,10 +805,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LoadDriver

@@ -834,10 +834,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LockMemory

@@ -863,10 +863,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

MachineAccount

@@ -892,10 +892,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ManageVolume

@@ -921,10 +921,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

NetworkLogon

@@ -950,10 +950,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ProfileSingleProcess

@@ -979,10 +979,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Relabel

@@ -1008,10 +1008,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RemoteInteractiveLogon

@@ -1037,10 +1037,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RemoteShutdown

@@ -1066,10 +1066,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Restore

@@ -1095,10 +1095,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Security

@@ -1124,10 +1124,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ServiceLogon

@@ -1153,10 +1153,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Shutdown

@@ -1182,10 +1182,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SyncAgent

@@ -1211,10 +1211,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SystemEnvironment

@@ -1240,10 +1240,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SystemProfile

@@ -1269,10 +1269,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SystemTime

@@ -1298,10 +1298,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TakeOwnership

@@ -1327,10 +1327,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Tcb

@@ -1356,10 +1356,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TimeZone

@@ -1385,10 +1385,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

TrustedCredManAccess

@@ -1414,10 +1414,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Undock

diff --git a/api/SharpHoundRPC.NetAPINative.NetAPIMethods.html b/api/SharpHoundRPC.NetAPINative.NetAPIMethods.html index d29aa82f..f4e6261d 100644 --- a/api/SharpHoundRPC.NetAPINative.NetAPIMethods.html +++ b/api/SharpHoundRPC.NetAPINative.NetAPIMethods.html @@ -138,18 +138,18 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source -

DsGetDcName(String, String)

+

DsGetDcName(String, String, UInt32)

Declaration
-
public static NetAPIResult<NetAPIStructs.DomainControllerInfo> DsGetDcName(string computerName, string domainName)
+
public static NetAPIResult<NetAPIStructs.DomainControllerInfo> DsGetDcName(string computerName, string domainName, uint flags)
Parameters
@@ -171,6 +171,11 @@
Parameters
+ + + + +
domainName
System.UInt32flags
Returns
@@ -190,10 +195,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

NetSessionEnum(String)

@@ -237,10 +242,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

NetWkstaGetInfo(String)

@@ -284,10 +289,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

NetWkstaUserEnum(String)

diff --git a/api/SharpHoundRPC.NetAPINative.NetAPIResult-1.html b/api/SharpHoundRPC.NetAPINative.NetAPIResult-1.html index a6bf6e5d..ea968665 100644 --- a/api/SharpHoundRPC.NetAPINative.NetAPIResult-1.html +++ b/api/SharpHoundRPC.NetAPINative.NetAPIResult-1.html @@ -153,10 +153,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Error

@@ -183,10 +183,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsFailed

@@ -213,10 +213,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsSuccess

@@ -243,10 +243,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Status

@@ -273,10 +273,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Value

@@ -305,10 +305,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Fail(NetAPIEnums.NetAPIStatus)

@@ -352,10 +352,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Fail(String)

@@ -399,10 +399,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Ok(T)

@@ -448,10 +448,10 @@

Operators

| - Improve this Doc + Improve this Doc - View Source + View Source

Implicit(T to NetAPIResult<T>)

@@ -495,10 +495,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Implicit(NetAPIEnums.NetAPIStatus to NetAPIResult<T>)

@@ -542,10 +542,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Implicit(String to NetAPIResult<T>)

diff --git a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.DomainControllerInfo.html b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.DomainControllerInfo.html index 6c1e4216..55ef701b 100644 --- a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.DomainControllerInfo.html +++ b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.DomainControllerInfo.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

ClientSiteName

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DcSiteName

@@ -188,10 +188,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DnsForestName

@@ -217,10 +217,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainControllerAddress

@@ -246,10 +246,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainControllerAddressType

@@ -275,10 +275,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainControllerName

@@ -304,10 +304,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainGuid

@@ -333,10 +333,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainName

@@ -362,10 +362,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Flags

diff --git a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.GuidClass.html b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.GuidClass.html index 4843d90e..7e482f40 100644 --- a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.GuidClass.html +++ b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.GuidClass.html @@ -138,10 +138,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

TheGuid

diff --git a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.SessionInfo10.html b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.SessionInfo10.html index fbec7eb6..77ea55d4 100644 --- a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.SessionInfo10.html +++ b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.SessionInfo10.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

CName

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IdleTIme

@@ -188,10 +188,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Time

@@ -217,10 +217,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Username

diff --git a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.WkstaUserInfo1.html b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.WkstaUserInfo1.html index 33e22cbd..e9ff57a1 100644 --- a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.WkstaUserInfo1.html +++ b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.WkstaUserInfo1.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

LogonDomain

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LogonServer

@@ -188,10 +188,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

OtherDomains

@@ -217,10 +217,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Username

diff --git a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.WorkstationInfo100.html b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.WorkstationInfo100.html index 33ff48bf..c5845ea2 100644 --- a/api/SharpHoundRPC.NetAPINative.NetAPIStructs.WorkstationInfo100.html +++ b/api/SharpHoundRPC.NetAPINative.NetAPIStructs.WorkstationInfo100.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerName

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LanGroup

@@ -188,10 +188,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

MajorVersion

@@ -217,10 +217,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

MinorVersion

@@ -246,10 +246,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

PlatformId

diff --git a/api/SharpHoundRPC.NetAPINative.NetSessionEnumResults.html b/api/SharpHoundRPC.NetAPINative.NetSessionEnumResults.html index 0571b0e6..32e6912a 100644 --- a/api/SharpHoundRPC.NetAPINative.NetSessionEnumResults.html +++ b/api/SharpHoundRPC.NetAPINative.NetSessionEnumResults.html @@ -138,10 +138,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

NetSessionEnumResults(String, String)

@@ -177,10 +177,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerName

@@ -207,10 +207,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Username

diff --git a/api/SharpHoundRPC.NetAPINative.NetWkstaUserEnumResults.html b/api/SharpHoundRPC.NetAPINative.NetWkstaUserEnumResults.html index d78b18a0..95d0d02e 100644 --- a/api/SharpHoundRPC.NetAPINative.NetWkstaUserEnumResults.html +++ b/api/SharpHoundRPC.NetAPINative.NetWkstaUserEnumResults.html @@ -138,10 +138,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

NetWkstaUserEnumResults(String, String)

@@ -177,10 +177,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

LogonDomain

@@ -207,10 +207,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Username

diff --git a/api/SharpHoundRPC.RPCException.html b/api/SharpHoundRPC.RPCException.html index 23ec0c64..cb14d380 100644 --- a/api/SharpHoundRPC.RPCException.html +++ b/api/SharpHoundRPC.RPCException.html @@ -174,10 +174,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

RPCException(String, NtStatus)

@@ -211,10 +211,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

RPCException(String, String)

@@ -250,10 +250,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

AliasNotFound

@@ -279,10 +279,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Connect

@@ -308,10 +308,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

DomainNotFound

@@ -337,10 +337,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnumerateAliases

@@ -366,10 +366,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

EnumerateDomains

@@ -395,10 +395,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GetAliasMembers

@@ -424,10 +424,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

GetMachineSid

@@ -453,10 +453,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupDomain

@@ -482,10 +482,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupIds

@@ -511,10 +511,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenAlias

@@ -540,10 +540,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenDomain

@@ -569,10 +569,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ServerNotInitialized

@@ -600,10 +600,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

ToString()

diff --git a/api/SharpHoundRPC.Result-1.html b/api/SharpHoundRPC.Result-1.html index eeb94550..161e7018 100644 --- a/api/SharpHoundRPC.Result-1.html +++ b/api/SharpHoundRPC.Result-1.html @@ -153,10 +153,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Error

@@ -183,10 +183,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsFailed

@@ -213,10 +213,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

IsSuccess

@@ -243,10 +243,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SError

@@ -273,10 +273,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Status

@@ -303,10 +303,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Value

@@ -335,10 +335,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Fail(NtStatus)

@@ -382,10 +382,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Fail(String)

@@ -429,10 +429,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Ok(T)

@@ -478,10 +478,10 @@

Operators

| - Improve this Doc + Improve this Doc - View Source + View Source

Implicit(T to Result<T>)

@@ -525,10 +525,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Implicit(NtStatus to Result<T>)

@@ -572,10 +572,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

Implicit(String to Result<T>)

diff --git a/api/SharpHoundRPC.SAMRPCNative.SAMStructs.ObjectAttributes.html b/api/SharpHoundRPC.SAMRPCNative.SAMStructs.ObjectAttributes.html index dd53de4d..347ccaa8 100644 --- a/api/SharpHoundRPC.SAMRPCNative.SAMStructs.ObjectAttributes.html +++ b/api/SharpHoundRPC.SAMRPCNative.SAMStructs.ObjectAttributes.html @@ -134,10 +134,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

Attributes

@@ -163,10 +163,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Length

@@ -192,10 +192,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

ObjectName

@@ -221,10 +221,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Qos

@@ -250,10 +250,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

RootDirectory

@@ -279,10 +279,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

SID

@@ -310,10 +310,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Dispose()

diff --git a/api/SharpHoundRPC.SAMRPCNative.SAMStructs.SamRidEnumeration.html b/api/SharpHoundRPC.SAMRPCNative.SAMStructs.SamRidEnumeration.html index 80680a47..1758577a 100644 --- a/api/SharpHoundRPC.SAMRPCNative.SAMStructs.SamRidEnumeration.html +++ b/api/SharpHoundRPC.SAMRPCNative.SAMStructs.SamRidEnumeration.html @@ -130,10 +130,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

Name

@@ -159,10 +159,10 @@
Field Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Rid

diff --git a/api/SharpHoundRPC.Shared.SharedStructs.UnicodeString.html b/api/SharpHoundRPC.Shared.SharedStructs.UnicodeString.html index dae0c061..7c1a107c 100644 --- a/api/SharpHoundRPC.Shared.SharedStructs.UnicodeString.html +++ b/api/SharpHoundRPC.Shared.SharedStructs.UnicodeString.html @@ -131,10 +131,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

UnicodeString(String)

@@ -165,10 +165,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Dispose()

@@ -180,10 +180,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

ToString()

diff --git a/api/SharpHoundRPC.Wrappers.ILSAPolicy.html b/api/SharpHoundRPC.Wrappers.ILSAPolicy.html index 5d6d8139..4bc27f9e 100644 --- a/api/SharpHoundRPC.Wrappers.ILSAPolicy.html +++ b/api/SharpHoundRPC.Wrappers.ILSAPolicy.html @@ -109,10 +109,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetLocalDomainInformation()

@@ -139,10 +139,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetPrincipalsWithPrivilege(String)

@@ -186,10 +186,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetResolvedPrincipalsWithPrivilege(String)

@@ -233,10 +233,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupSid(SecurityIdentifier)

@@ -280,10 +280,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupSids(SecurityIdentifier[])

diff --git a/api/SharpHoundRPC.Wrappers.ISAMAlias.html b/api/SharpHoundRPC.Wrappers.ISAMAlias.html index e3eaef92..a1785ca5 100644 --- a/api/SharpHoundRPC.Wrappers.ISAMAlias.html +++ b/api/SharpHoundRPC.Wrappers.ISAMAlias.html @@ -109,10 +109,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetMembers()

diff --git a/api/SharpHoundRPC.Wrappers.ISAMDomain.html b/api/SharpHoundRPC.Wrappers.ISAMDomain.html index 3550c038..42f5ad4e 100644 --- a/api/SharpHoundRPC.Wrappers.ISAMDomain.html +++ b/api/SharpHoundRPC.Wrappers.ISAMDomain.html @@ -109,10 +109,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetAliases()

@@ -139,10 +139,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupPrincipalByRid(Int32)

@@ -186,10 +186,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenAlias(Int32, SAMEnums.AliasOpenFlags)

@@ -238,10 +238,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenAlias(String)

diff --git a/api/SharpHoundRPC.Wrappers.ISAMServer.html b/api/SharpHoundRPC.Wrappers.ISAMServer.html index 33b9a847..e73ac5cb 100644 --- a/api/SharpHoundRPC.Wrappers.ISAMServer.html +++ b/api/SharpHoundRPC.Wrappers.ISAMServer.html @@ -109,10 +109,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetDomains()

@@ -139,10 +139,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetMachineSid(String)

@@ -186,10 +186,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupDomain(String)

@@ -233,10 +233,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupPrincipalBySid(SecurityIdentifier)

@@ -280,10 +280,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenDomain(SecurityIdentifier, SAMEnums.DomainAccessMask)

@@ -332,10 +332,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenDomain(String, SAMEnums.DomainAccessMask)

diff --git a/api/SharpHoundRPC.Wrappers.LSABase.html b/api/SharpHoundRPC.Wrappers.LSABase.html index b1b31d73..300f7a46 100644 --- a/api/SharpHoundRPC.Wrappers.LSABase.html +++ b/api/SharpHoundRPC.Wrappers.LSABase.html @@ -143,10 +143,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

LSABase(LSAHandle)

@@ -177,10 +177,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

Handle

@@ -208,10 +208,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Dispose()

@@ -223,10 +223,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

Dispose(Boolean)

@@ -255,10 +255,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

ReleaseHandle()

diff --git a/api/SharpHoundRPC.Wrappers.LSAPolicy.html b/api/SharpHoundRPC.Wrappers.LSAPolicy.html index 8b1808ae..191f9fbd 100644 --- a/api/SharpHoundRPC.Wrappers.LSAPolicy.html +++ b/api/SharpHoundRPC.Wrappers.LSAPolicy.html @@ -156,10 +156,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

LSAPolicy(String, LSAHandle)

@@ -195,10 +195,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetLocalDomainInformation()

@@ -225,10 +225,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetPrincipalsWithPrivilege(String)

@@ -272,10 +272,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetResolvedPrincipalsWithPrivilege(String)

diff --git a/api/SharpHoundRPC.Wrappers.SAMAlias.html b/api/SharpHoundRPC.Wrappers.SAMAlias.html index af5fc7f3..750d2c97 100644 --- a/api/SharpHoundRPC.Wrappers.SAMAlias.html +++ b/api/SharpHoundRPC.Wrappers.SAMAlias.html @@ -156,10 +156,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

SAMAlias(SAMHandle)

@@ -190,10 +190,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

Name

@@ -220,10 +220,10 @@
Property Value
| - Improve this Doc + Improve this Doc - View Source + View Source

Rid

@@ -252,10 +252,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetMembers()

diff --git a/api/SharpHoundRPC.Wrappers.SAMBase.html b/api/SharpHoundRPC.Wrappers.SAMBase.html index 41c9110f..f3f5fe8d 100644 --- a/api/SharpHoundRPC.Wrappers.SAMBase.html +++ b/api/SharpHoundRPC.Wrappers.SAMBase.html @@ -145,10 +145,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

SAMBase(SAMHandle)

@@ -179,10 +179,10 @@

Fields

| - Improve this Doc + Improve this Doc - View Source + View Source

Handle

@@ -210,10 +210,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Dispose()

@@ -225,10 +225,10 @@
Declaration
| - Improve this Doc + Improve this Doc - View Source + View Source

Dispose(Boolean)

@@ -257,10 +257,10 @@
Parameters
| - Improve this Doc + Improve this Doc - View Source + View Source

ReleaseHandle()

diff --git a/api/SharpHoundRPC.Wrappers.SAMDomain.html b/api/SharpHoundRPC.Wrappers.SAMDomain.html index 053eb753..f6f2bde1 100644 --- a/api/SharpHoundRPC.Wrappers.SAMDomain.html +++ b/api/SharpHoundRPC.Wrappers.SAMDomain.html @@ -156,10 +156,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

SAMDomain(SAMHandle)

@@ -190,10 +190,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

GetAliases()

@@ -220,10 +220,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupPrincipalByRid(Int32)

@@ -267,10 +267,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenAlias(Int32, SAMEnums.AliasOpenFlags)

@@ -319,10 +319,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenAlias(String)

diff --git a/api/SharpHoundRPC.Wrappers.SAMServer.html b/api/SharpHoundRPC.Wrappers.SAMServer.html index 3799ed9d..d920d2db 100644 --- a/api/SharpHoundRPC.Wrappers.SAMServer.html +++ b/api/SharpHoundRPC.Wrappers.SAMServer.html @@ -153,10 +153,10 @@

Constructors

| - Improve this Doc + Improve this Doc - View Source + View Source

SAMServer(SAMHandle, String)

@@ -192,10 +192,10 @@

Properties

| - Improve this Doc + Improve this Doc - View Source + View Source

ComputerName

@@ -224,10 +224,10 @@

Methods

| - Improve this Doc + Improve this Doc - View Source + View Source

Dispose(Boolean)

@@ -258,10 +258,10 @@
Overrides
SAMBase.Dispose(Boolean)
| - Improve this Doc + Improve this Doc - View Source + View Source

GetDomains()

@@ -288,10 +288,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

GetMachineSid(String)

@@ -335,10 +335,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupDomain(String)

@@ -382,10 +382,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

LookupPrincipalBySid(SecurityIdentifier)

@@ -429,10 +429,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenDomain(SecurityIdentifier, SAMEnums.DomainAccessMask)

@@ -481,10 +481,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenDomain(String, SAMEnums.DomainAccessMask)

@@ -533,10 +533,10 @@
Returns
| - Improve this Doc + Improve this Doc - View Source + View Source

OpenServer(String, SAMEnums.SamAccessMasks)

diff --git a/api/toc.html b/api/toc.html index 03385fc8..fcf4032b 100644 --- a/api/toc.html +++ b/api/toc.html @@ -59,15 +59,15 @@
  • - CSVComputerStatus + ConnectionPoolManager
  • - DomainInfo + CSVComputerStatus
  • - EdgeNames + DirectoryEntryExtensions
  • @@ -79,7 +79,7 @@
  • - ILDAPUtils + ILdapUtils
  • @@ -95,7 +95,7 @@
  • - LDAPConnectionCacheKey + LdapConnectionPool
  • @@ -107,15 +107,19 @@
  • - LDAPQueryOptions + LdapQueryParameters + +
  • +
  • + LdapQuerySetupResult
  • - LDAPUtils + LdapResult<T>
  • - LDAPUtils.LdapConnectionTestResult + LdapUtils
  • @@ -137,6 +141,18 @@
  • ResolvedSearchResult +
  • +
  • + Result + +
  • +
  • + Result<T> + +
  • +
  • + SearchResultEntryExtensions +
  • SearchResultEntryWrapper @@ -181,6 +197,10 @@
  • DirectoryPaths +
  • +
  • + EdgeNames +
  • Label @@ -189,10 +209,18 @@
  • LdapErrorCodes +
  • +
  • + LdapFailureReason +
  • LSAPrivileges +
  • +
  • + NamingContext +
  • PKICertificateAuthorityFlags diff --git a/coverage/report/SharpHoundCommonLib_ACE.html b/coverage/report/SharpHoundCommonLib_ACE.html index 3fa5f9ca..e8cd685f 100644 --- a/coverage/report/SharpHoundCommonLib_ACE.html +++ b/coverage/report/SharpHoundCommonLib_ACE.html @@ -17,21 +17,21 @@

    < Summary

    Class:SharpHoundCommonLib.OutputTypes.ACE Assembly:SharpHoundCommonLib File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\OutputTypes\ACE.cs -Covered lines:7 -Uncovered lines:18 +Covered lines:0 +Uncovered lines:25 Coverable lines:25 Total lines:43 -Line coverage:28% (7 of 25) -Covered branches:1 +Line coverage:0% (0 of 25) +Covered branches:0 Total branches:18 -Branch coverage:5.5% (1 of 18) +Branch coverage:0% (0 of 18)

    Metrics

    - + @@ -48,15 +48,15 @@

    D:\a\Sha

    - - - - + + + + - - - + + + @@ -87,15 +87,15 @@

    D:\a\Sha

    MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
    ToString()50%20100%
    ToString()0%200%
    Equals(...)0%600%
    Equals(...)0%600%
    GetHashCode()0%400%
     4{
     5    public class ACE
     6    {
     617        public string PrincipalSID { get; set; }
     598        public Label PrincipalType { get; set; }
     689        public string RightName { get; set; }
     5910        public bool IsInherited { get; set; }
     07        public string PrincipalSID { get; set; }
     08        public Label PrincipalType { get; set; }
     09        public string RightName { get; set; }
     010        public bool IsInherited { get; set; }
     11
     12        public override string ToString()
     113        {
     114            return $"{PrincipalType} {PrincipalSID} - {RightName} {(IsInherited ? "" : "Not")} Inherited";
     115        }
     013        {
     014            return $"{PrincipalType} {PrincipalSID} - {RightName} {(IsInherited ? "" : "Not")} Inherited";
     015        }
     16
     17        protected bool Equals(ACE other)
     018        {
     43}
    - +

    Methods/Properties

    -PrincipalSID()
    -PrincipalType()
    -RightName()
    -IsInherited()
    -ToString()
    +PrincipalSID()
    +PrincipalType()
    +RightName()
    +IsInherited()
    +ToString()
    Equals(SharpHoundCommonLib.OutputTypes.ACE)
    Equals(System.Object)
    GetHashCode()
    diff --git a/coverage/report/SharpHoundCommonLib_ACLProcessor.html b/coverage/report/SharpHoundCommonLib_ACLProcessor.html index e6bd4ba3..fbfbba55 100644 --- a/coverage/report/SharpHoundCommonLib_ACLProcessor.html +++ b/coverage/report/SharpHoundCommonLib_ACLProcessor.html @@ -17,30 +17,30 @@

    < Summary

    Class:SharpHoundCommonLib.Processors.ACLProcessor Assembly:SharpHoundCommonLib File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\Processors\ACLProcessor.cs -Covered lines:282 -Uncovered lines:152 -Coverable lines:434 -Total lines:596 -Line coverage:64.9% (282 of 434) -Covered branches:154 -Total branches:197 -Branch coverage:78.1% (154 of 197) +Covered lines:0 +Uncovered lines:436 +Coverable lines:436 +Total lines:590 +Line coverage:0% (0 of 436) +Covered branches:0 +Total branches:363 +Branch coverage:0% (0 of 363)

    Metrics

    - - - - - - - - - - + + + + + + + + + +
    MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
    .cctor()100%10100%
    .ctor(...)100%40100%
    BuildGUIDCache(...)30%10033.33%
    IsACLProtected(...)100%100%
    IsACLProtected(...)100%20100%
    ProcessACL(...)100%100%
    ProcessACL()78.44%167063.89%
    ProcessGMSAReaders(...)100%100%
    ProcessGMSAReaders(...)100%10100%
    ProcessGMSAReaders()100%14088.09%
    .cctor()100%100%
    .ctor(...)0%200%
    BuildGuidCache()0%2200%
    IsACLProtected(...)100%100%
    IsACLProtected(...)0%200%
    ProcessACL(...)100%100%
    ProcessACL()0%30900%
    ProcessGMSAReaders(...)100%100%
    ProcessGMSAReaders(...)100%100%
    ProcessGMSAReaders()0%2800%

    File(s)

    @@ -54,612 +54,606 @@

     4using System.DirectoryServices;  5using System.Security.AccessControl;  6using System.Security.Principal;7using Microsoft.Extensions.Logging;8using SharpHoundCommonLib.Enums;9using SharpHoundCommonLib.OutputTypes;10using SearchScope = System.DirectoryServices.Protocols.SearchScope;1112namespace SharpHoundCommonLib.Processors13{14    public class ACLProcessor15    {16        private static readonly Dictionary<Label, string> BaseGuids; - 117        private static readonly ConcurrentDictionary<string, string> GuidMap = new();18        private static bool _isCacheBuilt;7using System.Threading.Tasks;8using Microsoft.Extensions.Logging;9using SharpHoundCommonLib.Enums;10using SharpHoundCommonLib.OutputTypes;11using SearchScope = System.DirectoryServices.Protocols.SearchScope;1213namespace SharpHoundCommonLib.Processors14{15    public class ACLProcessor16    {17        private static readonly Dictionary<Label, string> BaseGuids; + 018        private static readonly ConcurrentDictionary<string, string> GuidMap = new();  19        private readonly ILogger _log;20        private readonly ILDAPUtils _utils;2122        static ACLProcessor() - 123        {24            //Create a dictionary with the base GUIDs of each object type - 125            BaseGuids = new Dictionary<Label, string> - 126            { - 127                {Label.User, "bf967aba-0de6-11d0-a285-00aa003049e2"}, - 128                {Label.Computer, "bf967a86-0de6-11d0-a285-00aa003049e2"}, - 129                {Label.Group, "bf967a9c-0de6-11d0-a285-00aa003049e2"}, - 130                {Label.Domain, "19195a5a-6da0-11d0-afd3-00c04fd930c9"}, - 131                {Label.GPO, "f30e3bc2-9ff0-11d1-b603-0000f80367c1"}, - 132                {Label.OU, "bf967aa5-0de6-11d0-a285-00aa003049e2"}, - 133                {Label.Container, "bf967a8b-0de6-11d0-a285-00aa003049e2"}, - 134                {Label.Configuration, "bf967a87-0de6-11d0-a285-00aa003049e2"}, - 135                {Label.RootCA, "3fdfee50-47f4-11d1-a9c3-0000f80367c1"}, - 136                {Label.AIACA, "3fdfee50-47f4-11d1-a9c3-0000f80367c1"}, - 137                {Label.EnterpriseCA, "ee4aa692-3bba-11d2-90cc-00c04fd91ab1"}, - 138                {Label.NTAuthStore, "3fdfee50-47f4-11d1-a9c3-0000f80367c1"}, - 139                {Label.CertTemplate, "e5209ca2-3bba-11d2-90cc-00c04fd91ab1"}, - 140                {Label.IssuancePolicy, "37cfd85c-6719-4ad8-8f9e-8678ba627563"} - 141            }; - 142        }43 - 6844        public ACLProcessor(ILDAPUtils utils, bool noGuidCache = false, ILogger log = null, string domain = null) - 6845        { - 6846            _utils = utils; - 6847            _log = log ?? Logging.LogProvider.CreateLogger("ACLProc"); - 6848            if (!noGuidCache) - 3549                BuildGUIDCache(domain); - 6850        }5152        /// <summary>53        ///     Builds a mapping of GUID -> Name for LDAP rights. Used for rights that are created using an extended sch54        ///     LAPS55        /// </summary>56        private void BuildGUIDCache(string domain) - 3557        { - 3558            if (_isCacheBuilt) - 059                return;60 - 3561            var forest = _utils.GetForest(domain); - 3562            if (forest == null) - 3563            { - 3564                _log.LogError("BuildGUIDCache - Unable to resolve forest"); - 3565                return;66            }67 - 068            var schema = forest.Schema.Name; - 069            if (string.IsNullOrEmpty(schema)) - 070            { - 071                _log.LogError("BuildGUIDCache - Schema string is null or empty"); - 072                return;73            }74 - 075            _log.LogTrace("Requesting schema from {Schema}", schema);76 - 077            foreach (var entry in _utils.QueryLDAP("(schemaIDGUID=*)", SearchScope.Subtree, - 078                         new[] {LDAPProperties.SchemaIDGUID, LDAPProperties.Name}, adsPath: schema)) - 079            { - 080                var name = entry.GetProperty(LDAPProperties.Name)?.ToLower(); - 081                var guid = new Guid(entry.GetByteProperty(LDAPProperties.SchemaIDGUID)).ToString(); - 082                GuidMap.TryAdd(guid, name); - 083            }84 - 085            _log.LogTrace("BuildGUIDCache - Successfully grabbed schema");86 - 087            _isCacheBuilt = true; - 3588        }8990        /// <summary>91        ///     Helper function to use commonlib types in IsACLProtected92        /// </summary>93        /// <param name="entry"></param>94        /// <returns></returns>95        public bool IsACLProtected(ISearchResultEntry entry) - 096        { - 097            var ntsd = entry.GetByteProperty(LDAPProperties.SecurityDescriptor); - 098            return IsACLProtected(ntsd); - 099        }100101        /// <summary>102        ///     Gets the protection state of the access control list103        /// </summary>104        /// <param name="ntSecurityDescriptor"></param>105        /// <returns></returns>106        public bool IsACLProtected(byte[] ntSecurityDescriptor) - 3107        { - 3108            if (ntSecurityDescriptor == null) - 1109                return false;110 - 2111            var descriptor = _utils.MakeSecurityDescriptor(); - 2112            descriptor.SetSecurityDescriptorBinaryForm(ntSecurityDescriptor);113 - 2114            return descriptor.AreAccessRulesProtected(); - 3115        }116117        /// <summary>118        ///     Helper function to use common lib types and pass appropriate vars to ProcessACL119        /// </summary>120        /// <param name="result"></param>121        /// <param name="searchResult"></param>122        /// <returns></returns>123        public IEnumerable<ACE> ProcessACL(ResolvedSearchResult result, ISearchResultEntry searchResult) - 0124        { - 0125            var descriptor = searchResult.GetByteProperty(LDAPProperties.SecurityDescriptor); - 0126            var domain = result.Domain; - 0127            var type = result.ObjectType; - 0128            var hasLaps = searchResult.HasLAPS(); - 0129            var name = result.DisplayName;130 - 0131            return ProcessACL(descriptor, domain, type, hasLaps, name); - 0132        }133134        /// <summary>135        ///     Read's the ntSecurityDescriptor from a SearchResultEntry and processes the ACEs in the ACL, filtering ou136        ///     BloodHound is not interested in137        /// </summary>138        /// <param name="ntSecurityDescriptor"></param>139        /// <param name="objectDomain"></param>140        /// <param name="objectName"></param>141        /// <param name="objectType"></param>142        /// <param name="hasLaps"></param>143        /// <returns></returns>144        public IEnumerable<ACE> ProcessACL(byte[] ntSecurityDescriptor, string objectDomain,145            Label objectType,146            bool hasLaps, string objectName = "") - 28147        { - 28148            if (ntSecurityDescriptor == null) - 1149            { - 1150                _log.LogDebug("Security Descriptor is null for {Name}", objectName); - 1151                yield break;152            }153 - 27154            var descriptor = _utils.MakeSecurityDescriptor();155            try - 27156            { - 27157                descriptor.SetSecurityDescriptorBinaryForm(ntSecurityDescriptor); - 27158            } - 0159            catch (OverflowException) - 0160            { - 0161                _log.LogWarning( - 0162                    "Security descriptor on object {Name} exceeds maximum allowable length. Unable to process", - 0163                    objectName); - 0164                yield break;165            }166 - 27167            var ownerSid = Helpers.PreProcessSID(descriptor.GetOwner(typeof(SecurityIdentifier)));168 - 27169            if (ownerSid != null) - 4170            { - 4171                var resolvedOwner = _utils.ResolveIDAndType(ownerSid, objectDomain); - 4172                if (resolvedOwner != null) - 4173                    yield return new ACE - 4174                    { - 4175                        PrincipalType = resolvedOwner.ObjectType, - 4176                        PrincipalSID = resolvedOwner.ObjectIdentifier, - 4177                        RightName = EdgeNames.Owns, - 4178                        IsInherited = false - 4179                    }; - 4180            }181            else - 23182            { - 23183                _log.LogDebug("Owner is null for {Name}", objectName); - 23184            }185 - 199186            foreach (var ace in descriptor.GetAccessRules(true, true, typeof(SecurityIdentifier))) - 60187            { - 60188                if (ace == null) - 1189                { - 1190                    _log.LogTrace("Skipping null ACE for {Name}", objectName); - 1191                    continue;192                }193 - 59194                if (ace.AccessControlType() == AccessControlType.Deny) - 1195                { - 1196                    _log.LogTrace("Skipping deny ACE for {Name}", objectName); - 1197                    continue;198                }20        private readonly ILdapUtils _utils; + 021        private static readonly HashSet<string> BuiltDomainCaches = new(StringComparer.OrdinalIgnoreCase);2223        static ACLProcessor() + 024        {25            //Create a dictionary with the base GUIDs of each object type + 026            BaseGuids = new Dictionary<Label, string> + 027            { + 028                {Label.User, "bf967aba-0de6-11d0-a285-00aa003049e2"}, + 029                {Label.Computer, "bf967a86-0de6-11d0-a285-00aa003049e2"}, + 030                {Label.Group, "bf967a9c-0de6-11d0-a285-00aa003049e2"}, + 031                {Label.Domain, "19195a5a-6da0-11d0-afd3-00c04fd930c9"}, + 032                {Label.GPO, "f30e3bc2-9ff0-11d1-b603-0000f80367c1"}, + 033                {Label.OU, "bf967aa5-0de6-11d0-a285-00aa003049e2"}, + 034                {Label.Container, "bf967a8b-0de6-11d0-a285-00aa003049e2"}, + 035                {Label.Configuration, "bf967a87-0de6-11d0-a285-00aa003049e2"}, + 036                {Label.RootCA, "3fdfee50-47f4-11d1-a9c3-0000f80367c1"}, + 037                {Label.AIACA, "3fdfee50-47f4-11d1-a9c3-0000f80367c1"}, + 038                {Label.EnterpriseCA, "ee4aa692-3bba-11d2-90cc-00c04fd91ab1"}, + 039                {Label.NTAuthStore, "3fdfee50-47f4-11d1-a9c3-0000f80367c1"}, + 040                {Label.CertTemplate, "e5209ca2-3bba-11d2-90cc-00c04fd91ab1"}, + 041                {Label.IssuancePolicy, "37cfd85c-6719-4ad8-8f9e-8678ba627563"} + 042            }; + 043        }44 + 045        public ACLProcessor(ILdapUtils utils, ILogger log = null) + 046        { + 047            _utils = utils; + 048            _log = log ?? Logging.LogProvider.CreateLogger("ACLProc"); + 049        }5051        /// <summary>52        ///     Builds a mapping of GUID -> Name for LDAP rights. Used for rights that are created using an extended sch53        ///     LAPS54        /// </summary> + 055        private async Task BuildGuidCache(string domain) { + 056            BuiltDomainCaches.Add(domain); + 057            await foreach (var result in _utils.Query(new LdapQueryParameters() { + 058                DomainName = domain, + 059                LDAPFilter = "(schemaIDGUID=*)", + 060                NamingContext = NamingContext.Schema, + 061                Attributes = new[] {LDAPProperties.SchemaIDGUID, LDAPProperties.Name}, + 062            })) + 063            { + 064                if (result.IsSuccess) { + 065                    var name = result.Value.GetProperty(LDAPProperties.Name)?.ToLower(); + 066                    var guid = result.Value.GetGuid(); + 067                    if (name == null || guid == null) { + 068                        continue;69                    }70 + 071                    if (name is LDAPProperties.LAPSPassword or LDAPProperties.LegacyLAPSPassword) { + 072                        GuidMap.TryAdd(guid, name); + 073                    } + 074                } + 075            } + 076        }7778        /// <summary>79        ///     Helper function to use commonlib types in IsACLProtected80        /// </summary>81        /// <param name="entry"></param>82        /// <returns></returns>83        public bool IsACLProtected(ISearchResultEntry entry) + 084        { + 085            var ntsd = entry.GetByteProperty(LDAPProperties.SecurityDescriptor); + 086            return IsACLProtected(ntsd); + 087        }8889        /// <summary>90        ///     Gets the protection state of the access control list91        /// </summary>92        /// <param name="ntSecurityDescriptor"></param>93        /// <returns></returns>94        public bool IsACLProtected(byte[] ntSecurityDescriptor) + 095        { + 096            if (ntSecurityDescriptor == null) + 097                return false;98 + 099            var descriptor = _utils.MakeSecurityDescriptor(); + 0100            descriptor.SetSecurityDescriptorBinaryForm(ntSecurityDescriptor);101 + 0102            return descriptor.AreAccessRulesProtected(); + 0103        }104105        /// <summary>106        ///     Helper function to use common lib types and pass appropriate vars to ProcessACL107        /// </summary>108        /// <param name="result"></param>109        /// <param name="searchResult"></param>110        /// <returns></returns>111        public IAsyncEnumerable<ACE> ProcessACL(ResolvedSearchResult result, ISearchResultEntry searchResult) + 0112        { + 0113            var descriptor = searchResult.GetByteProperty(LDAPProperties.SecurityDescriptor); + 0114            var domain = result.Domain; + 0115            var type = result.ObjectType; + 0116            var hasLaps = searchResult.HasLAPS(); + 0117            var name = result.DisplayName;118 + 0119            return ProcessACL(descriptor, domain, type, hasLaps, name); + 0120        }121122        /// <summary>123        ///     Read's the ntSecurityDescriptor from a SearchResultEntry and processes the ACEs in the ACL, filtering ou124        ///     BloodHound is not interested in125        /// </summary>126        /// <param name="ntSecurityDescriptor"></param>127        /// <param name="objectDomain"></param>128        /// <param name="objectName"></param>129        /// <param name="objectType"></param>130        /// <param name="hasLaps"></param>131        /// <returns></returns>132        public async IAsyncEnumerable<ACE> ProcessACL(byte[] ntSecurityDescriptor, string objectDomain,133            Label objectType,134            bool hasLaps, string objectName = "") + 0135        { + 0136            if (!BuiltDomainCaches.Contains(objectDomain)) { + 0137                await BuildGuidCache(objectDomain); + 0138            } + 0139            if (ntSecurityDescriptor == null) + 0140            { + 0141                _log.LogDebug("Security Descriptor is null for {Name}", objectName); + 0142                yield break;143            }144 + 0145            var descriptor = _utils.MakeSecurityDescriptor();146            try + 0147            { + 0148                descriptor.SetSecurityDescriptorBinaryForm(ntSecurityDescriptor); + 0149            } + 0150            catch (OverflowException) + 0151            { + 0152                _log.LogWarning( + 0153                    "Security descriptor on object {Name} exceeds maximum allowable length. Unable to process", + 0154                    objectName); + 0155                yield break;156            }157 + 0158            var ownerSid = Helpers.PreProcessSID(descriptor.GetOwner(typeof(SecurityIdentifier)));159 + 0160            if (ownerSid != null) + 0161            { + 0162                if (await _utils.ResolveIDAndType(ownerSid, objectDomain) is (true, var resolvedOwner)) { + 0163                    yield return new ACE + 0164                    { + 0165                        PrincipalType = resolvedOwner.ObjectType, + 0166                        PrincipalSID = resolvedOwner.ObjectIdentifier, + 0167                        RightName = EdgeNames.Owns, + 0168                        IsInherited = false + 0169                    }; + 0170                } + 0171            }172            else + 0173            { + 0174                _log.LogDebug("Owner is null for {Name}", objectName); + 0175            }176 + 0177            foreach (var ace in descriptor.GetAccessRules(true, true, typeof(SecurityIdentifier))) + 0178            { + 0179                if (ace == null) + 0180                { + 0181                    _log.LogTrace("Skipping null ACE for {Name}", objectName); + 0182                    continue;183                }184 + 0185                if (ace.AccessControlType() == AccessControlType.Deny) + 0186                { + 0187                    _log.LogTrace("Skipping deny ACE for {Name}", objectName); + 0188                    continue;189                }190 + 0191                if (!ace.IsAceInheritedFrom(BaseGuids[objectType])) + 0192                { + 0193                    _log.LogTrace("Skipping ACE with unmatched GUID/inheritance for {Name}", objectName); + 0194                    continue;195                }196 + 0197                var ir = ace.IdentityReference(); + 0198                var principalSid = Helpers.PreProcessSID(ir);  199 - 58200                if (!ace.IsAceInheritedFrom(BaseGuids[objectType])) - 6201                { - 6202                    _log.LogTrace("Skipping ACE with unmatched GUID/inheritance for {Name}", objectName); - 6203                    continue; + 0200                if (principalSid == null) + 0201                { + 0202                    _log.LogTrace("Pre-Process excluded SID {SID} on {Name}", ir ?? "null", objectName); + 0203                    continue;  204                }  205 - 52206                var ir = ace.IdentityReference(); - 52207                var principalSid = Helpers.PreProcessSID(ir);208 - 52209                if (principalSid == null) - 9210                { - 9211                    _log.LogTrace("Pre-Process excluded SID {SID} on {Name}", ir ?? "null", objectName); - 9212                    continue;213                }214 - 43215                var resolvedPrincipal = _utils.ResolveIDAndType(principalSid, objectDomain);216 - 43217                var aceRights = ace.ActiveDirectoryRights();218                //Lowercase this just in case. As far as I know it should always come back that way anyways, but better  - 43219                var aceType = ace.ObjectType().ToString().ToLower(); - 43220                var inherited = ace.IsInherited();221 - 43222                GuidMap.TryGetValue(aceType, out var mappedGuid);223 - 43224                _log.LogTrace("Processing ACE with rights {Rights} and guid {GUID} on object {Name}", aceRights, - 43225                    aceType, objectName);226227                //GenericAll applies to every object - 43228                if (aceRights.HasFlag(ActiveDirectoryRights.GenericAll)) - 9229                { - 9230                    if (aceType is ACEGuids.AllGuid or "") - 8231                        yield return new ACE - 8232                        { - 8233                            PrincipalType = resolvedPrincipal.ObjectType, - 8234                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 8235                            IsInherited = inherited, - 8236                            RightName = EdgeNames.GenericAll - 8237                        };238                    //This is a special case. If we don't continue here, every other ACE will match because GenericAll i - 9239                    continue;240                }241242                //WriteDACL and WriteOwner are always useful no matter what the object type is as well because they enab - 34243                if (aceRights.HasFlag(ActiveDirectoryRights.WriteDacl)) - 2244                    yield return new ACE - 2245                    { - 2246                        PrincipalType = resolvedPrincipal.ObjectType, - 2247                        PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 2248                        IsInherited = inherited, - 2249                        RightName = EdgeNames.WriteDacl - 2250                    };251 - 34252                if (aceRights.HasFlag(ActiveDirectoryRights.WriteOwner)) - 2253                    yield return new ACE - 2254                    { - 2255                        PrincipalType = resolvedPrincipal.ObjectType, - 2256                        PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 2257                        IsInherited = inherited, - 2258                        RightName = EdgeNames.WriteOwner - 2259                    };260261                //Cool ACE courtesy of @rookuu. Allows a principal to add itself to a group and no one else - 34262                if (aceRights.HasFlag(ActiveDirectoryRights.Self) && - 34263                    !aceRights.HasFlag(ActiveDirectoryRights.WriteProperty) && - 34264                    !aceRights.HasFlag(ActiveDirectoryRights.GenericWrite) && objectType == Label.Group && - 34265                    aceType == ACEGuids.WriteMember) - 3266                    yield return new ACE - 3267                    { - 3268                        PrincipalType = resolvedPrincipal.ObjectType, - 3269                        PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 3270                        IsInherited = inherited, - 3271                        RightName = EdgeNames.AddSelf - 3272                    };273274                //Process object type specific ACEs. Extended rights apply to users, domains, computers, and cert templa - 33275                if (aceRights.HasFlag(ActiveDirectoryRights.ExtendedRight)) - 13276                { - 13277                    if (objectType == Label.Domain) - 4278                    { - 4279                        if (aceType == ACEGuids.DSReplicationGetChanges) - 1280                            yield return new ACE - 1281                            { - 1282                                PrincipalType = resolvedPrincipal.ObjectType, - 1283                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 1284                                IsInherited = inherited, - 1285                                RightName = EdgeNames.GetChanges - 1286                            }; - 3287                        else if (aceType == ACEGuids.DSReplicationGetChangesAll) - 1288                            yield return new ACE - 1289                            { - 1290                                PrincipalType = resolvedPrincipal.ObjectType, - 1291                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 1292                                IsInherited = inherited, - 1293                                RightName = EdgeNames.GetChangesAll - 1294                            }; - 2295                        else if (aceType == ACEGuids.DSReplicationGetChangesInFilteredSet) - 0296                            yield return new ACE - 0297                            { - 0298                                PrincipalType = resolvedPrincipal.ObjectType, - 0299                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0300                                IsInherited = inherited, - 0301                                RightName = EdgeNames.GetChangesInFilteredSet - 0302                            }; - 2303                        else if (aceType is ACEGuids.AllGuid or "") - 1304                            yield return new ACE - 1305                            { - 1306                                PrincipalType = resolvedPrincipal.ObjectType, - 1307                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 1308                                IsInherited = inherited, - 1309                                RightName = EdgeNames.AllExtendedRights - 1310                            }; - 4311                    } - 9312                    else if (objectType == Label.User) - 3313                    { - 3314                        if (aceType == ACEGuids.UserForceChangePassword) - 1315                            yield return new ACE - 1316                            { - 1317                                PrincipalType = resolvedPrincipal.ObjectType, - 1318                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 1319                                IsInherited = inherited, - 1320                                RightName = EdgeNames.ForceChangePassword - 1321                            }; - 2322                        else if (aceType is ACEGuids.AllGuid or "") - 1323                            yield return new ACE - 1324                            { - 1325                                PrincipalType = resolvedPrincipal.ObjectType, - 1326                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 1327                                IsInherited = inherited, - 1328                                RightName = EdgeNames.AllExtendedRights - 1329                            }; - 3330                    } - 6331                    else if (objectType == Label.Computer) - 2332                    {333                        //ReadLAPSPassword is only applicable if the computer actually has LAPS. Check the world readabl - 2334                        if (hasLaps) - 1335                        { - 1336                            if (aceType is ACEGuids.AllGuid or "") - 1337                                yield return new ACE - 1338                                { - 1339                                    PrincipalType = resolvedPrincipal.ObjectType, - 1340                                    PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 1341                                    IsInherited = inherited, - 1342                                    RightName = EdgeNames.AllExtendedRights - 1343                                }; - 0344                            else if (mappedGuid is "ms-mcs-admpwd") - 0345                                yield return new ACE - 0346                                { - 0347                                    PrincipalType = resolvedPrincipal.ObjectType, - 0348                                    PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0349                                    IsInherited = inherited, - 0350                                    RightName = EdgeNames.ReadLAPSPassword - 0351                                }; - 1352                        } - 2353                    } - 4354                    else if (objectType == Label.CertTemplate) - 0355                    { - 0356                        if (aceType is ACEGuids.AllGuid or "") - 0357                            yield return new ACE - 0358                            { - 0359                                PrincipalType = resolvedPrincipal.ObjectType, - 0360                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0361                                IsInherited = inherited, - 0362                                RightName = EdgeNames.AllExtendedRights - 0363                            }; - 0364                        else if (aceType is ACEGuids.Enroll) - 0365                            yield return new ACE - 0366                            { - 0367                                PrincipalType = resolvedPrincipal.ObjectType, - 0368                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0369                                IsInherited = inherited, - 0370                                RightName = EdgeNames.Enroll - 0371                            }; - 0372                    } - 13373                }374375                //GenericWrite encapsulates WriteProperty, so process them in tandem to avoid duplicate edges - 33376                if (aceRights.HasFlag(ActiveDirectoryRights.GenericWrite) || - 33377                    aceRights.HasFlag(ActiveDirectoryRights.WriteProperty)) - 8378                { - 8379                    if (objectType is Label.User - 8380                        or Label.Group - 8381                        or Label.Computer - 8382                        or Label.GPO - 8383                        or Label.CertTemplate - 8384                        or Label.RootCA - 8385                        or Label.EnterpriseCA - 8386                        or Label.AIACA - 8387                        or Label.NTAuthStore - 8388                        or Label.IssuancePolicy) - 7389                        if (aceType is ACEGuids.AllGuid or "") - 2390                            yield return new ACE - 2391                            { - 2392                                PrincipalType = resolvedPrincipal.ObjectType, - 2393                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 2394                                IsInherited = inherited, - 2395                                RightName = EdgeNames.GenericWrite - 2396                            };397 - 8398                    if (objectType == Label.User && aceType == ACEGuids.WriteSPN) - 0399                        yield return new ACE - 0400                        { - 0401                            PrincipalType = resolvedPrincipal.ObjectType, - 0402                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0403                            IsInherited = inherited, - 0404                            RightName = EdgeNames.WriteSPN - 0405                        }; - 8406                    else if (objectType == Label.Computer && aceType == ACEGuids.WriteAllowedToAct) - 1407                        yield return new ACE - 1408                        { - 1409                            PrincipalType = resolvedPrincipal.ObjectType, - 1410                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 1411                            IsInherited = inherited, - 1412                            RightName = EdgeNames.AddAllowedToAct - 1413                        }; - 7414                    else if (objectType == Label.Computer && aceType == ACEGuids.UserAccountRestrictions) - 0415                        yield return new ACE - 0416                        { - 0417                            PrincipalType = resolvedPrincipal.ObjectType, - 0418                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0419                            IsInherited = inherited, - 0420                            RightName = EdgeNames.WriteAccountRestrictions - 0421                        }; - 7422                    else if (objectType == Label.Group && aceType == ACEGuids.WriteMember) - 4423                        yield return new ACE - 4424                        { - 4425                            PrincipalType = resolvedPrincipal.ObjectType, - 4426                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 4427                            IsInherited = inherited, - 4428                            RightName = EdgeNames.AddMember - 4429                        }; - 3430                    else if (objectType is Label.User or Label.Computer && aceType == ACEGuids.AddKeyPrincipal) - 0431                        yield return new ACE - 0432                        { - 0433                            PrincipalType = resolvedPrincipal.ObjectType, - 0434                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0435                            IsInherited = inherited, - 0436                            RightName = EdgeNames.AddKeyCredentialLink - 0437                        }; - 3438                    else if (objectType is Label.CertTemplate) - 0439                    { - 0440                        if (aceType == ACEGuids.PKIEnrollmentFlag) - 0441                            yield return new ACE - 0442                            { - 0443                                PrincipalType = resolvedPrincipal.ObjectType, - 0444                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0445                                IsInherited = inherited, - 0446                                RightName = EdgeNames.WritePKIEnrollmentFlag - 0447                            }; - 0448                        else if (aceType == ACEGuids.PKINameFlag) - 0449                            yield return new ACE - 0450                            { - 0451                                PrincipalType = resolvedPrincipal.ObjectType, - 0452                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0453                                IsInherited = inherited, - 0454                                RightName = EdgeNames.WritePKINameFlag - 0455                            }; - 0456                    } - 7457                }458459                // EnterpriseCA rights - 32460                if (objectType == Label.EnterpriseCA) - 0461                { - 0462                    if (aceType is ACEGuids.Enroll) - 0463                        yield return new ACE - 0464                        { - 0465                            PrincipalType = resolvedPrincipal.ObjectType, - 0466                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0467                            IsInherited = inherited, - 0468                            RightName = EdgeNames.Enroll - 0469                        };470 - 0471                    var cARights = (CertificationAuthorityRights)aceRights;472473                    // TODO: These if statements are also present in ProcessRegistryEnrollmentPermissions. Move to share - 0474                    if ((cARights & CertificationAuthorityRights.ManageCA) != 0) - 0475                        yield return new ACE - 0476                        { - 0477                            PrincipalType = resolvedPrincipal.ObjectType, - 0478                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0479                            IsInherited = inherited, - 0480                            RightName = EdgeNames.ManageCA - 0481                        }; - 0482                    if ((cARights & CertificationAuthorityRights.ManageCertificates) != 0) - 0483                        yield return new ACE - 0484                        { - 0485                            PrincipalType = resolvedPrincipal.ObjectType, - 0486                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0487                            IsInherited = inherited, - 0488                            RightName = EdgeNames.ManageCertificates - 0489                        };490 - 0491                    if ((cARights & CertificationAuthorityRights.Enroll) != 0) - 0492                        yield return new ACE - 0493                        { - 0494                            PrincipalType = resolvedPrincipal.ObjectType, - 0495                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 0496                            IsInherited = inherited, - 0497                            RightName = EdgeNames.Enroll - 0498                        }; - 0499                } - 32500            } - 25501        }502503        /// <summary>504        ///     Helper function to use commonlib types and pass to ProcessGMSAReaders505        /// </summary>506        /// <param name="resolvedSearchResult"></param>507        /// <param name="searchResultEntry"></param>508        /// <returns></returns>509        public IEnumerable<ACE> ProcessGMSAReaders(ResolvedSearchResult resolvedSearchResult,510            ISearchResultEntry searchResultEntry) - 0511        { - 0512            var descriptor = searchResultEntry.GetByteProperty(LDAPProperties.GroupMSAMembership); - 0513            var domain = resolvedSearchResult.Domain; - 0514            var name = resolvedSearchResult.DisplayName;515 - 0516            return ProcessGMSAReaders(descriptor, name, domain); - 0517        }518519        /// <summary>520        ///     ProcessGMSAMembership with no account name521        /// </summary>522        /// <param name="groupMSAMembership"></param>523        /// <param name="objectDomain"></param>524        /// <returns></returns>525        public IEnumerable<ACE> ProcessGMSAReaders(byte[] groupMSAMembership, string objectDomain) - 5526        { - 5527            return ProcessGMSAReaders(groupMSAMembership, "", objectDomain); - 5528        }529530        /// <summary>531        ///     Processes the msds-groupmsamembership property and returns ACEs representing principals that can read th532        ///     password from an object533        /// </summary>534        /// <param name="groupMSAMembership"></param>535        /// <param name="objectName"></param>536        /// <param name="objectDomain"></param>537        /// <returns></returns>538        public IEnumerable<ACE> ProcessGMSAReaders(byte[] groupMSAMembership, string objectName, string objectDomain) - 5539        { - 5540            if (groupMSAMembership == null) - 1541            { - 1542                _log.LogDebug("GMSA bytes are null for {Name}", objectName); - 1543                yield break;544            }545 - 4546            var descriptor = _utils.MakeSecurityDescriptor();547            try - 4548            { - 4549                descriptor.SetSecurityDescriptorBinaryForm(groupMSAMembership); - 4550            } - 0551            catch (OverflowException) - 0552            { - 0553                _log.LogWarning("GMSA ACL length on object {Name} exceeds allowable length. Unable to process", - 0554                    objectName); - 0555            }556557 - 20558            foreach (var ace in descriptor.GetAccessRules(true, true, typeof(SecurityIdentifier))) - 4559            { - 4560                if (ace == null) - 1561                { - 1562                    _log.LogTrace("Skipping null GMSA ACE for {Name}", objectName); - 1563                    continue; + 0206                var (success, resolvedPrincipal) = await _utils.ResolveIDAndType(principalSid, objectDomain); + 0207                if (!success) { + 0208                    _log.LogDebug("Failed to resolve type for principal {Sid}", principalSid); + 0209                }210 + 0211                var aceRights = ace.ActiveDirectoryRights();212                //Lowercase this just in case. As far as I know it should always come back that way anyways, but better  + 0213                var aceType = ace.ObjectType().ToString().ToLower(); + 0214                var inherited = ace.IsInherited();215 + 0216                GuidMap.TryGetValue(aceType, out var mappedGuid);217 + 0218                _log.LogTrace("Processing ACE with rights {Rights} and guid {GUID} on object {Name}", aceRights, + 0219                    aceType, objectName);220221                //GenericAll applies to every object + 0222                if (aceRights.HasFlag(ActiveDirectoryRights.GenericAll)) + 0223                { + 0224                    if (aceType is ACEGuids.AllGuid or "") + 0225                        yield return new ACE + 0226                        { + 0227                            PrincipalType = resolvedPrincipal.ObjectType, + 0228                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0229                            IsInherited = inherited, + 0230                            RightName = EdgeNames.GenericAll + 0231                        };232                    //This is a special case. If we don't continue here, every other ACE will match because GenericAll i + 0233                    continue;234                }235236                //WriteDACL and WriteOwner are always useful no matter what the object type is as well because they enab + 0237                if (aceRights.HasFlag(ActiveDirectoryRights.WriteDacl)) + 0238                    yield return new ACE + 0239                    { + 0240                        PrincipalType = resolvedPrincipal.ObjectType, + 0241                        PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0242                        IsInherited = inherited, + 0243                        RightName = EdgeNames.WriteDacl + 0244                    };245 + 0246                if (aceRights.HasFlag(ActiveDirectoryRights.WriteOwner)) + 0247                    yield return new ACE + 0248                    { + 0249                        PrincipalType = resolvedPrincipal.ObjectType, + 0250                        PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0251                        IsInherited = inherited, + 0252                        RightName = EdgeNames.WriteOwner + 0253                    };254255                //Cool ACE courtesy of @rookuu. Allows a principal to add itself to a group and no one else + 0256                if (aceRights.HasFlag(ActiveDirectoryRights.Self) && + 0257                    !aceRights.HasFlag(ActiveDirectoryRights.WriteProperty) && + 0258                    !aceRights.HasFlag(ActiveDirectoryRights.GenericWrite) && objectType == Label.Group && + 0259                    aceType == ACEGuids.WriteMember) + 0260                    yield return new ACE + 0261                    { + 0262                        PrincipalType = resolvedPrincipal.ObjectType, + 0263                        PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0264                        IsInherited = inherited, + 0265                        RightName = EdgeNames.AddSelf + 0266                    };267268                //Process object type specific ACEs. Extended rights apply to users, domains, computers, and cert templa + 0269                if (aceRights.HasFlag(ActiveDirectoryRights.ExtendedRight)) + 0270                { + 0271                    if (objectType == Label.Domain) + 0272                    { + 0273                        if (aceType == ACEGuids.DSReplicationGetChanges) + 0274                            yield return new ACE + 0275                            { + 0276                                PrincipalType = resolvedPrincipal.ObjectType, + 0277                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0278                                IsInherited = inherited, + 0279                                RightName = EdgeNames.GetChanges + 0280                            }; + 0281                        else if (aceType == ACEGuids.DSReplicationGetChangesAll) + 0282                            yield return new ACE + 0283                            { + 0284                                PrincipalType = resolvedPrincipal.ObjectType, + 0285                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0286                                IsInherited = inherited, + 0287                                RightName = EdgeNames.GetChangesAll + 0288                            }; + 0289                        else if (aceType == ACEGuids.DSReplicationGetChangesInFilteredSet) + 0290                            yield return new ACE + 0291                            { + 0292                                PrincipalType = resolvedPrincipal.ObjectType, + 0293                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0294                                IsInherited = inherited, + 0295                                RightName = EdgeNames.GetChangesInFilteredSet + 0296                            }; + 0297                        else if (aceType is ACEGuids.AllGuid or "") + 0298                            yield return new ACE + 0299                            { + 0300                                PrincipalType = resolvedPrincipal.ObjectType, + 0301                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0302                                IsInherited = inherited, + 0303                                RightName = EdgeNames.AllExtendedRights + 0304                            }; + 0305                    } + 0306                    else if (objectType == Label.User) + 0307                    { + 0308                        if (aceType == ACEGuids.UserForceChangePassword) + 0309                            yield return new ACE + 0310                            { + 0311                                PrincipalType = resolvedPrincipal.ObjectType, + 0312                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0313                                IsInherited = inherited, + 0314                                RightName = EdgeNames.ForceChangePassword + 0315                            }; + 0316                        else if (aceType is ACEGuids.AllGuid or "") + 0317                            yield return new ACE + 0318                            { + 0319                                PrincipalType = resolvedPrincipal.ObjectType, + 0320                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0321                                IsInherited = inherited, + 0322                                RightName = EdgeNames.AllExtendedRights + 0323                            }; + 0324                    } + 0325                    else if (objectType == Label.Computer) + 0326                    {327                        //ReadLAPSPassword is only applicable if the computer actually has LAPS. Check the world readabl + 0328                        if (hasLaps) + 0329                        { + 0330                            if (aceType is ACEGuids.AllGuid or "") + 0331                                yield return new ACE + 0332                                { + 0333                                    PrincipalType = resolvedPrincipal.ObjectType, + 0334                                    PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0335                                    IsInherited = inherited, + 0336                                    RightName = EdgeNames.AllExtendedRights + 0337                                }; + 0338                            else if (mappedGuid is LDAPProperties.LegacyLAPSPassword or LDAPProperties.LAPSPassword) + 0339                                yield return new ACE + 0340                                { + 0341                                    PrincipalType = resolvedPrincipal.ObjectType, + 0342                                    PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0343                                    IsInherited = inherited, + 0344                                    RightName = EdgeNames.ReadLAPSPassword + 0345                                }; + 0346                        } + 0347                    } + 0348                    else if (objectType == Label.CertTemplate) + 0349                    { + 0350                        if (aceType is ACEGuids.AllGuid or "") + 0351                            yield return new ACE + 0352                            { + 0353                                PrincipalType = resolvedPrincipal.ObjectType, + 0354                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0355                                IsInherited = inherited, + 0356                                RightName = EdgeNames.AllExtendedRights + 0357                            }; + 0358                        else if (aceType is ACEGuids.Enroll) + 0359                            yield return new ACE + 0360                            { + 0361                                PrincipalType = resolvedPrincipal.ObjectType, + 0362                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0363                                IsInherited = inherited, + 0364                                RightName = EdgeNames.Enroll + 0365                            }; + 0366                    } + 0367                }368369                //GenericWrite encapsulates WriteProperty, so process them in tandem to avoid duplicate edges + 0370                if (aceRights.HasFlag(ActiveDirectoryRights.GenericWrite) || + 0371                    aceRights.HasFlag(ActiveDirectoryRights.WriteProperty)) + 0372                { + 0373                    if (objectType is Label.User + 0374                        or Label.Group + 0375                        or Label.Computer + 0376                        or Label.GPO + 0377                        or Label.CertTemplate + 0378                        or Label.RootCA + 0379                        or Label.EnterpriseCA + 0380                        or Label.AIACA + 0381                        or Label.NTAuthStore + 0382                        or Label.IssuancePolicy) + 0383                        if (aceType is ACEGuids.AllGuid or "") + 0384                            yield return new ACE + 0385                            { + 0386                                PrincipalType = resolvedPrincipal.ObjectType, + 0387                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0388                                IsInherited = inherited, + 0389                                RightName = EdgeNames.GenericWrite + 0390                            };391 + 0392                    if (objectType == Label.User && aceType == ACEGuids.WriteSPN) + 0393                        yield return new ACE + 0394                        { + 0395                            PrincipalType = resolvedPrincipal.ObjectType, + 0396                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0397                            IsInherited = inherited, + 0398                            RightName = EdgeNames.WriteSPN + 0399                        }; + 0400                    else if (objectType == Label.Computer && aceType == ACEGuids.WriteAllowedToAct) + 0401                        yield return new ACE + 0402                        { + 0403                            PrincipalType = resolvedPrincipal.ObjectType, + 0404                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0405                            IsInherited = inherited, + 0406                            RightName = EdgeNames.AddAllowedToAct + 0407                        }; + 0408                    else if (objectType == Label.Computer && aceType == ACEGuids.UserAccountRestrictions) + 0409                        yield return new ACE + 0410                        { + 0411                            PrincipalType = resolvedPrincipal.ObjectType, + 0412                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0413                            IsInherited = inherited, + 0414                            RightName = EdgeNames.WriteAccountRestrictions + 0415                        }; + 0416                    else if (objectType == Label.Group && aceType == ACEGuids.WriteMember) + 0417                        yield return new ACE + 0418                        { + 0419                            PrincipalType = resolvedPrincipal.ObjectType, + 0420                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0421                            IsInherited = inherited, + 0422                            RightName = EdgeNames.AddMember + 0423                        }; + 0424                    else if (objectType is Label.User or Label.Computer && aceType == ACEGuids.AddKeyPrincipal) + 0425                        yield return new ACE + 0426                        { + 0427                            PrincipalType = resolvedPrincipal.ObjectType, + 0428                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0429                            IsInherited = inherited, + 0430                            RightName = EdgeNames.AddKeyCredentialLink + 0431                        }; + 0432                    else if (objectType is Label.CertTemplate) + 0433                    { + 0434                        if (aceType == ACEGuids.PKIEnrollmentFlag) + 0435                            yield return new ACE + 0436                            { + 0437                                PrincipalType = resolvedPrincipal.ObjectType, + 0438                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0439                                IsInherited = inherited, + 0440                                RightName = EdgeNames.WritePKIEnrollmentFlag + 0441                            }; + 0442                        else if (aceType == ACEGuids.PKINameFlag) + 0443                            yield return new ACE + 0444                            { + 0445                                PrincipalType = resolvedPrincipal.ObjectType, + 0446                                PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0447                                IsInherited = inherited, + 0448                                RightName = EdgeNames.WritePKINameFlag + 0449                            }; + 0450                    } + 0451                }452453                // EnterpriseCA rights + 0454                if (objectType == Label.EnterpriseCA) + 0455                { + 0456                    if (aceType is ACEGuids.Enroll) + 0457                        yield return new ACE + 0458                        { + 0459                            PrincipalType = resolvedPrincipal.ObjectType, + 0460                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0461                            IsInherited = inherited, + 0462                            RightName = EdgeNames.Enroll + 0463                        };464 + 0465                    var cARights = (CertificationAuthorityRights)aceRights;466467                    // TODO: These if statements are also present in ProcessRegistryEnrollmentPermissions. Move to share + 0468                    if ((cARights & CertificationAuthorityRights.ManageCA) != 0) + 0469                        yield return new ACE + 0470                        { + 0471                            PrincipalType = resolvedPrincipal.ObjectType, + 0472                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0473                            IsInherited = inherited, + 0474                            RightName = EdgeNames.ManageCA + 0475                        }; + 0476                    if ((cARights & CertificationAuthorityRights.ManageCertificates) != 0) + 0477                        yield return new ACE + 0478                        { + 0479                            PrincipalType = resolvedPrincipal.ObjectType, + 0480                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0481                            IsInherited = inherited, + 0482                            RightName = EdgeNames.ManageCertificates + 0483                        };484 + 0485                    if ((cARights & CertificationAuthorityRights.Enroll) != 0) + 0486                        yield return new ACE + 0487                        { + 0488                            PrincipalType = resolvedPrincipal.ObjectType, + 0489                            PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0490                            IsInherited = inherited, + 0491                            RightName = EdgeNames.Enroll + 0492                        }; + 0493                } + 0494            } + 0495        }496497        /// <summary>498        ///     Helper function to use commonlib types and pass to ProcessGMSAReaders499        /// </summary>500        /// <param name="resolvedSearchResult"></param>501        /// <param name="searchResultEntry"></param>502        /// <returns></returns>503        public IAsyncEnumerable<ACE> ProcessGMSAReaders(ResolvedSearchResult resolvedSearchResult,504            ISearchResultEntry searchResultEntry) + 0505        { + 0506            var descriptor = searchResultEntry.GetByteProperty(LDAPProperties.GroupMSAMembership); + 0507            var domain = resolvedSearchResult.Domain; + 0508            var name = resolvedSearchResult.DisplayName;509 + 0510            return ProcessGMSAReaders(descriptor, name, domain); + 0511        }512513        /// <summary>514        ///     ProcessGMSAMembership with no account name515        /// </summary>516        /// <param name="groupMSAMembership"></param>517        /// <param name="objectDomain"></param>518        /// <returns></returns>519        public IAsyncEnumerable<ACE> ProcessGMSAReaders(byte[] groupMSAMembership, string objectDomain) + 0520        { + 0521            return ProcessGMSAReaders(groupMSAMembership, "", objectDomain); + 0522        }523524        /// <summary>525        ///     Processes the msds-groupmsamembership property and returns ACEs representing principals that can read th526        ///     password from an object527        /// </summary>528        /// <param name="groupMSAMembership"></param>529        /// <param name="objectName"></param>530        /// <param name="objectDomain"></param>531        /// <returns></returns>532        public async IAsyncEnumerable<ACE> ProcessGMSAReaders(byte[] groupMSAMembership, string objectName, string objec + 0533        { + 0534            if (groupMSAMembership == null) + 0535            { + 0536                _log.LogDebug("GMSA bytes are null for {Name}", objectName); + 0537                yield break;538            }539 + 0540            var descriptor = _utils.MakeSecurityDescriptor();541            try + 0542            { + 0543                descriptor.SetSecurityDescriptorBinaryForm(groupMSAMembership); + 0544            } + 0545            catch (OverflowException) + 0546            { + 0547                _log.LogWarning("GMSA ACL length on object {Name} exceeds allowable length. Unable to process", + 0548                    objectName); + 0549            }550551 + 0552            foreach (var ace in descriptor.GetAccessRules(true, true, typeof(SecurityIdentifier))) + 0553            { + 0554                if (ace == null) + 0555                { + 0556                    _log.LogTrace("Skipping null GMSA ACE for {Name}", objectName); + 0557                    continue;558                }559 + 0560                if (ace.AccessControlType() == AccessControlType.Deny) + 0561                { + 0562                    _log.LogTrace("Skipping deny GMSA ACE for {Name}", objectName); + 0563                    continue;  564                }  565 - 3566                if (ace.AccessControlType() == AccessControlType.Deny) - 1567                { - 1568                    _log.LogTrace("Skipping deny GMSA ACE for {Name}", objectName); - 1569                    continue;570                }571 - 2572                var ir = ace.IdentityReference(); - 2573                var principalSid = Helpers.PreProcessSID(ir); + 0566                var ir = ace.IdentityReference(); + 0567                var principalSid = Helpers.PreProcessSID(ir);568 + 0569                if (principalSid == null) + 0570                { + 0571                    _log.LogTrace("Pre-Process excluded SID {SID} on {Name}", ir ?? "null", objectName); + 0572                    continue;573                }  574 - 2575                if (principalSid == null) - 1576                { - 1577                    _log.LogTrace("Pre-Process excluded SID {SID} on {Name}", ir ?? "null", objectName); - 1578                    continue;579                }580 - 1581                _log.LogTrace("Processing GMSA ACE with principal {Principal}", principalSid);582 - 1583                var resolvedPrincipal = _utils.ResolveIDAndType(principalSid, objectDomain);584 - 1585                if (resolvedPrincipal != null) - 1586                    yield return new ACE - 1587                    { - 1588                        RightName = EdgeNames.ReadGMSAPassword, - 1589                        PrincipalType = resolvedPrincipal.ObjectType, - 1590                        PrincipalSID = resolvedPrincipal.ObjectIdentifier, - 1591                        IsInherited = ace.IsInherited() - 1592                    }; - 1593            } - 4594        }595    }596} + 0575                _log.LogTrace("Processing GMSA ACE with principal {Principal}", principalSid);576 + 0577                var (success, resolvedPrincipal) = await _utils.ResolveIDAndType(principalSid, objectDomain); + 0578                if (success) { + 0579                    yield return new ACE + 0580                    { + 0581                        RightName = EdgeNames.ReadGMSAPassword, + 0582                        PrincipalType = resolvedPrincipal.ObjectType, + 0583                        PrincipalSID = resolvedPrincipal.ObjectIdentifier, + 0584                        IsInherited = ace.IsInherited() + 0585                    }; + 0586                } + 0587            } + 0588        }589    }590} -

    +
    + \ No newline at end of file diff --git a/coverage/report/SharpHoundCommonLib_Container.html b/coverage/report/SharpHoundCommonLib_Container.html index 85101efc..1158db1e 100644 --- a/coverage/report/SharpHoundCommonLib_Container.html +++ b/coverage/report/SharpHoundCommonLib_Container.html @@ -42,7 +42,7 @@

    D:  9} - +

    Methods/Properties

    diff --git a/coverage/report/SharpHoundCommonLib_ContainerProcessor.html b/coverage/report/SharpHoundCommonLib_ContainerProcessor.html index 3b105b4e..4985d482 100644 --- a/coverage/report/SharpHoundCommonLib_ContainerProcessor.html +++ b/coverage/report/SharpHoundCommonLib_ContainerProcessor.html @@ -17,29 +17,29 @@

    < Summary

    Class:SharpHoundCommonLib.Processors.ContainerProcessor Assembly:SharpHoundCommonLib File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\Processors\ContainerProcessor.cs -Covered lines:69 -Uncovered lines:12 -Coverable lines:81 -Total lines:167 -Line coverage:85.1% (69 of 81) -Covered branches:24 -Total branches:24 -Branch coverage:100% (24 of 24) +Covered lines:0 +Uncovered lines:84 +Coverable lines:84 +Total lines:170 +Line coverage:0% (0 of 84) +Covered branches:0 +Total branches:68 +Branch coverage:0% (0 of 68)

    Metrics

    - - - - - - - - - + + + + + + + + +
    MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
    .ctor(...)100%20100%
    IsDistinguishedNameFiltered(...)100%40100%
    GetContainingObject(...)100%100%
    GetContainingObject(...)100%40100%
    GetContainerChildObjects(...)100%100%
    GetContainerChildObjects()100%80100%
    ReadContainerGPLinks(...)100%100%
    ReadContainerGPLinks()100%60100%
    ReadBlocksInheritance(...)100%10100%
    .ctor(...)0%200%
    IsDistinguishedNameFiltered(...)0%400%
    GetContainingObject()0%200%
    GetContainingObject()0%800%
    GetContainerChildObjects(...)100%100%
    GetContainerChildObjects()0%3200%
    ReadContainerGPLinks(...)100%100%
    ReadContainerGPLinks()0%2000%
    ReadBlocksInheritance(...)100%100%

    File(s)

    @@ -50,185 +50,188 @@

     1using System;  2using System.Collections.Generic;  3using System.DirectoryServices.Protocols;4using Microsoft.Extensions.Logging;5using SharpHoundCommonLib.Enums;6using SharpHoundCommonLib.LDAPQueries;7using SharpHoundCommonLib.OutputTypes;89namespace SharpHoundCommonLib.Processors10{11    public class ContainerProcessor12    {13        private readonly ILogger _log;14        private readonly ILDAPUtils _utils;15 - 616        public ContainerProcessor(ILDAPUtils utils, ILogger log = null) - 617        { - 618            _utils = utils; - 619            _log = log ?? Logging.LogProvider.CreateLogger("ContainerProc"); - 620        }2122        private static bool IsDistinguishedNameFiltered(string distinguishedName) - 723        { - 724            var dn = distinguishedName.ToUpper(); - 825            if (dn.Contains("CN=PROGRAM DATA,DC=")) return true;26 - 927            if (dn.Contains("CN=SYSTEM,DC=")) return true;28 - 329            return false; - 730        }3132        /// <summary>33        /// Helper function to pass commonlib types to GetContainingObject34        /// </summary>35        /// <param name="entry"></param>36        /// <returns></returns>37        public TypedPrincipal GetContainingObject(ISearchResultEntry entry) - 038        { - 039            return GetContainingObject(entry.DistinguishedName); - 040        }4142        /// <summary>43        /// Uses the distinguishedname of an object to get its containing object by stripping the first part and using t44        /// Saves lots of LDAP calls compared to enumerating container info directly45        /// </summary>46        /// <param name="distinguishedName"></param>47        /// <returns></returns>48        public TypedPrincipal GetContainingObject(string distinguishedName) - 449        { - 450            var containerDn = Helpers.RemoveDistinguishedNamePrefix(distinguishedName);51 - 452            if (containerDn.StartsWith("CN=BUILTIN", StringComparison.OrdinalIgnoreCase)) - 153            { - 154                var domain = Helpers.DistinguishedNameToDomain(distinguishedName); - 155                var domainSid = _utils.GetSidFromDomainName(domain); - 156                return new TypedPrincipal(domainSid, Label.Domain);57            }58 - 359            if (string.IsNullOrEmpty(containerDn)) - 160                return null;61 - 262            return _utils.ResolveDistinguishedName(containerDn); - 463        }6465        /// <summary>66        ///     Helper function using commonlib types to pass to GetContainerChildObjects67        /// </summary>68        /// <param name="result"></param>69        /// <param name="entry"></param>70        /// <returns></returns>71        public IEnumerable<TypedPrincipal> GetContainerChildObjects(ResolvedSearchResult result,72            ISearchResultEntry entry) - 073        { - 074            var name = result.DisplayName; - 075            var dn = entry.DistinguishedName;76 - 077            return GetContainerChildObjects(dn, name); - 078        }7980        /// <summary>81        ///     Finds all immediate child objects of a container.82        /// </summary>83        /// <param name="distinguishedName"></param>84        /// <param name="containerName"></param>85        /// <returns></returns>86        public IEnumerable<TypedPrincipal> GetContainerChildObjects(string distinguishedName, string containerName = "") - 187        { - 188            var filter = new LDAPFilter().AddComputers().AddUsers().AddGroups().AddOUs().AddContainers(); - 189            filter.AddCertificateAuthorities().AddCertificateTemplates().AddEnterpriseCertificationAuthorities(); - 1790            foreach (var childEntry in _utils.QueryLDAP(filter.GetFilter(), SearchScope.OneLevel, - 191                         CommonProperties.ObjectID, Helpers.DistinguishedNameToDomain(distinguishedName), - 192                         adsPath: distinguishedName)) - 793            { - 794                var dn = childEntry.DistinguishedName; - 795                if (IsDistinguishedNameFiltered(dn)) - 496                { - 497                    _log.LogTrace("Skipping filtered child {Child} for {Container}", dn, containerName); - 498                    continue;99                }100 - 3101                var id = childEntry.GetObjectIdentifier(); - 3102                if (id == null) - 1103                { - 1104                    _log.LogTrace("Got null ID for {ChildDN} under {Container}", childEntry.DistinguishedName, - 1105                        containerName); - 1106                    continue;107                }108 - 2109                var res = _utils.ResolveIDAndType(id, Helpers.DistinguishedNameToDomain(dn)); - 2110                if (res == null) - 1111                { - 1112                    _log.LogTrace("Failed to resolve principal for {ID}", id); - 1113                    continue;114                }115 - 1116                yield return res; - 1117            } - 1118        }4using System.Threading.Tasks;5using Microsoft.Extensions.Logging;6using SharpHoundCommonLib.Enums;7using SharpHoundCommonLib.LDAPQueries;8using SharpHoundCommonLib.OutputTypes;910namespace SharpHoundCommonLib.Processors11{12    public class ContainerProcessor13    {14        private readonly ILogger _log;15        private readonly ILdapUtils _utils;16 + 017        public ContainerProcessor(ILdapUtils utils, ILogger log = null) + 018        { + 019            _utils = utils; + 020            _log = log ?? Logging.LogProvider.CreateLogger("ContainerProc"); + 021        }2223        private static bool IsDistinguishedNameFiltered(string distinguishedName) + 024        { + 025            var dn = distinguishedName.ToUpper(); + 026            if (dn.Contains("CN=PROGRAM DATA,DC=")) return true;27 + 028            if (dn.Contains("CN=SYSTEM,DC=")) return true;29 + 030            return false; + 031        }3233        /// <summary>34        /// Helper function to pass commonlib types to GetContainingObject35        /// </summary>36        /// <param name="entry"></param>37        /// <returns></returns>38        public async Task<(bool Success, TypedPrincipal principal)> GetContainingObject(ISearchResultEntry entry) + 039        { + 040            return await GetContainingObject(entry.DistinguishedName); + 041        }4243        /// <summary>44        /// Uses the distinguishedname of an object to get its containing object by stripping the first part and using t45        /// Saves lots of LDAP calls compared to enumerating container info directly46        /// </summary>47        /// <param name="distinguishedName"></param>48        /// <returns></returns>49        public async Task<(bool Success, TypedPrincipal Principal)> GetContainingObject(string distinguishedName) + 050        { + 051            var containerDn = Helpers.RemoveDistinguishedNamePrefix(distinguishedName);52 + 053            if (containerDn.StartsWith("CN=BUILTIN", StringComparison.OrdinalIgnoreCase)) + 054            { + 055                var domain = Helpers.DistinguishedNameToDomain(distinguishedName); + 056                var (success, domainSid) = await _utils.GetDomainSidFromDomainName(domain); + 057                if (success) { + 058                    return (true, new TypedPrincipal(domainSid, Label.Domain));59                }60 + 061                return (false, default);62            }63 + 064            return await _utils.ResolveDistinguishedName(containerDn); + 065        }6667        /// <summary>68        ///     Helper function using commonlib types to pass to GetContainerChildObjects69        /// </summary>70        /// <param name="result"></param>71        /// <param name="entry"></param>72        /// <returns></returns>73        public IAsyncEnumerable<TypedPrincipal> GetContainerChildObjects(ResolvedSearchResult result,74            ISearchResultEntry entry) + 075        { + 076            var name = result.DisplayName; + 077            var dn = entry.DistinguishedName;78 + 079            return GetContainerChildObjects(dn, name); + 080        }8182        /// <summary>83        ///     Finds all immediate child objects of a container.84        /// </summary>85        /// <param name="distinguishedName"></param>86        /// <param name="containerName"></param>87        /// <returns></returns>88        public async IAsyncEnumerable<TypedPrincipal> GetContainerChildObjects(string distinguishedName, string containe + 089        { + 090            var filter = new LDAPFilter().AddComputers().AddUsers().AddGroups().AddOUs().AddContainers(); + 091            filter.AddCertificateAuthorities().AddCertificateTemplates().AddEnterpriseCertificationAuthorities(); + 092            await foreach (var childEntryResult in _utils.Query(new LdapQueryParameters { + 093                               DomainName = Helpers.DistinguishedNameToDomain(distinguishedName), + 094                               SearchScope = SearchScope.OneLevel, + 095                               Attributes = CommonProperties.ObjectID, + 096                               LDAPFilter = filter.GetFilter(), + 097                               SearchBase = distinguishedName + 098                           })) { + 099                if (!childEntryResult.IsSuccess) { + 0100                    _log.LogWarning("Error while getting container child objects for {DistinguishedName}: {Reason}", dis + 0101                    yield break;102                }103 + 0104                var childEntry = childEntryResult.Value; + 0105                var dn = childEntry.DistinguishedName; + 0106                if (IsDistinguishedNameFiltered(dn)) + 0107                { + 0108                    _log.LogTrace("Skipping filtered child {Child} for {Container}", dn, containerName); + 0109                    continue;110                }111 + 0112                var id = childEntry.GetObjectIdentifier(); + 0113                if (id == null) + 0114                { + 0115                    _log.LogTrace("Got null ID for {ChildDN} under {Container}", childEntry.DistinguishedName, + 0116                        containerName); + 0117                    continue;118                }  119120        public IEnumerable<GPLink> ReadContainerGPLinks(ResolvedSearchResult result, ISearchResultEntry entry) - 0121        { - 0122            var links = entry.GetProperty(LDAPProperties.GPLink);123 - 0124            return ReadContainerGPLinks(links); + 0120                var res = await _utils.ResolveIDAndType(id, Helpers.DistinguishedNameToDomain(dn)); + 0121                if (res.Success) { + 0122                    yield return res.Principal; + 0123                } + 0124            }  0125        }  126127        /// <summary>128        ///     Reads the "gplink" property from a SearchResult and converts the links into the acceptable SharpHound fo129        /// </summary>130        /// <param name="gpLink"></param>131        /// <returns></returns>132        public IEnumerable<GPLink> ReadContainerGPLinks(string gpLink) - 3133        { - 3134            if (gpLink == null) - 1135                yield break;136 - 14137            foreach (var link in Helpers.SplitGPLinkProperty(gpLink)) - 4138            { - 4139                var enforced = link.Status.Equals("2");140 - 4141                var res = _utils.ResolveDistinguishedName(link.DistinguishedName);142 - 4143                if (res == null) - 1144                { - 1145                    _log.LogTrace("Failed to resolve DN {DN}", link.DistinguishedName); - 1146                    continue;147                }148 - 3149                yield return new GPLink - 3150                { - 3151                    GUID = res.ObjectIdentifier, - 3152                    IsEnforced = enforced - 3153                }; - 3154            } - 2155        }156157        /// <summary>158        ///     Checks if a container blocks privilege inheritance159        /// </summary>160        /// <param name="gpOptions"></param>161        /// <returns></returns>162        public static bool ReadBlocksInheritance(string gpOptions) - 3163        { - 3164            return gpOptions is "1"; - 3165        }166    }167}127        public IAsyncEnumerable<GPLink> ReadContainerGPLinks(ResolvedSearchResult result, ISearchResultEntry entry) + 0128        { + 0129            var links = entry.GetProperty(LDAPProperties.GPLink);130 + 0131            return ReadContainerGPLinks(links); + 0132        }133134        /// <summary>135        ///     Reads the "gplink" property from a SearchResult and converts the links into the acceptable SharpHound fo136        /// </summary>137        /// <param name="gpLink"></param>138        /// <returns></returns>139        public async IAsyncEnumerable<GPLink> ReadContainerGPLinks(string gpLink) + 0140        { + 0141            if (gpLink == null) + 0142                yield break;143 + 0144            foreach (var link in Helpers.SplitGPLinkProperty(gpLink)) + 0145            { + 0146                var enforced = link.Status.Equals("2");147 + 0148                var res = await _utils.ResolveDistinguishedName(link.DistinguishedName);149 + 0150                if (res.Success) { + 0151                    yield return new GPLink + 0152                    { + 0153                        GUID = res.Principal.ObjectIdentifier, + 0154                        IsEnforced = enforced + 0155                    }; + 0156                } + 0157            } + 0158        }159160        /// <summary>161        ///     Checks if a container blocks privilege inheritance162        /// </summary>163        /// <param name="gpOptions"></param>164        /// <returns></returns>165        public static bool ReadBlocksInheritance(string gpOptions) + 0166        { + 0167            return gpOptions is "1"; + 0168        }169    }170} -

    +
    + \ No newline at end of file diff --git a/coverage/report/SharpHoundCommonLib_Domain.html b/coverage/report/SharpHoundCommonLib_Domain.html index 9ebd65c4..99d852b0 100644 --- a/coverage/report/SharpHoundCommonLib_Domain.html +++ b/coverage/report/SharpHoundCommonLib_Domain.html @@ -52,7 +52,7 @@

    D:\a\  12} - +

    Methods/Properties

    diff --git a/coverage/report/SharpHoundCommonLib_DomainInfo.html b/coverage/report/SharpHoundCommonLib_DomainInfo.html deleted file mode 100644 index 7f8a7c81..00000000 --- a/coverage/report/SharpHoundCommonLib_DomainInfo.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - -SharpHoundCommonLib.DomainInfo - Coverage Report - -
    -

    < Summary

    - ---- - - - - - - - - - - - - -
    Class:SharpHoundCommonLib.DomainInfo
    Assembly:SharpHoundCommonLib
    File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\DomainInfo.cs
    Covered lines:0
    Uncovered lines:8
    Coverable lines:8
    Total lines:20
    Line coverage:0% (0 of 8)
    Covered branches:0
    Total branches:0
    -

    Metrics

    - - - - - -
    MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
    ToString()100%100%
    -

    File(s)

    -

    D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\DomainInfo.cs

    - - - - - - - - - - - - - - - - - - - - - - - - -
    #LineLine coverage
     1using System.Collections.Concurrent;
     2using System.Collections.Generic;
     3using System.DirectoryServices.Protocols;
     4
     5namespace SharpHoundCommonLib
     6{
     7    public class DomainInfo
     8    {
     09        public string DomainSID { get; set; }
     010        public string DomainFQDN { get; set; }
     011        public string DomainSearchBase { get; set; }
     012        public string DomainConfigurationPath { get; set; }
     013        public string DomainNetbiosName { get; set; }
     14
     15        public override string ToString()
     016        {
     017            return $"{nameof(DomainSID)}: {DomainSID}, {nameof(DomainFQDN)}: {DomainFQDN}, {nameof(DomainSearchBase)}: {
     018        }
     19    }
     20}
    -
    -
    - - \ No newline at end of file diff --git a/coverage/report/SharpHoundCommonLib_DomainTrust.html b/coverage/report/SharpHoundCommonLib_DomainTrust.html index 7813a247..b81446c2 100644 --- a/coverage/report/SharpHoundCommonLib_DomainTrust.html +++ b/coverage/report/SharpHoundCommonLib_DomainTrust.html @@ -17,11 +17,11 @@

    < Summary

    Class:SharpHoundCommonLib.OutputTypes.DomainTrust Assembly:SharpHoundCommonLib File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\OutputTypes\DomainTrust.cs -Covered lines:6 -Uncovered lines:0 +Covered lines:0 +Uncovered lines:6 Coverable lines:6 Total lines:14 -Line coverage:100% (6 of 6) +Line coverage:0% (0 of 6) Covered branches:0 Total branches:0 @@ -37,26 +37,26 @@

     4{  5    public class DomainTrust  6    { - 27        public string TargetDomainSid { get; set; } - 28        public string TargetDomainName { get; set; } - 29        public bool IsTransitive { get; set; } - 210        public bool SidFilteringEnabled { get; set; } - 211        public TrustDirection TrustDirection { get; set; } - 212        public TrustType TrustType { get; set; } + 07        public string TargetDomainSid { get; set; } + 08        public string TargetDomainName { get; set; } + 09        public bool IsTransitive { get; set; } + 010        public bool SidFilteringEnabled { get; set; } + 011        public TrustDirection TrustDirection { get; set; } + 012        public TrustType TrustType { get; set; }  13    }  14} -

    +
    + \ No newline at end of file diff --git a/coverage/report/SharpHoundCommonLib_LdapConnectionWrapper.html b/coverage/report/SharpHoundCommonLib_LdapConnectionWrapper.html new file mode 100644 index 00000000..b841bfab --- /dev/null +++ b/coverage/report/SharpHoundCommonLib_LdapConnectionWrapper.html @@ -0,0 +1,208 @@ + + + + + + +SharpHoundCommonLib.LdapConnectionWrapper - Coverage Report + +
    +

    < Summary

    + ++++ + + + + + + + + + + + + + +
    Class:SharpHoundCommonLib.LdapConnectionWrapper
    Assembly:SharpHoundCommonLib
    File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\LdapConnectionWrapper.cs
    Covered lines:0
    Uncovered lines:62
    Coverable lines:62
    Total lines:97
    Line coverage:0% (0 of 62)
    Covered branches:0
    Total branches:26
    Branch coverage:0% (0 of 26)
    +

    Metrics

    + + + + + + + + + + + + +
    MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
    .ctor(...)100%100%
    GetServer()0%200%
    GetSearchBase(...)0%800%
    GetSavedContext(...)0%400%
    SaveContext(...)0%400%
    Equals(...)100%100%
    Equals(...)0%600%
    GetHashCode()0%200%
    +

    File(s)

    +

    D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\LdapConnectionWrapper.cs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #LineLine coverage
     1using System;
     2using System.DirectoryServices.Protocols;
     3using SharpHoundCommonLib.Enums;
     4
     5namespace SharpHoundCommonLib {
     6    public class LdapConnectionWrapper {
     07        public LdapConnection Connection { get; private set; }
     8        private readonly ISearchResultEntry _searchResultEntry;
     9        private string _domainSearchBase;
     10        private string _configurationSearchBase;
     11        private string _schemaSearchBase;
     12        private string _server;
     013        private string Guid { get; set; }
     14        public readonly bool GlobalCatalog;
     15        public readonly string PoolIdentifier;
     16
     017        public LdapConnectionWrapper(LdapConnection connection, ISearchResultEntry entry, bool globalCatalog,
     018            string poolIdentifier) {
     019            Connection = connection;
     020            _searchResultEntry = entry;
     021            Guid = new Guid().ToString();
     022            GlobalCatalog = globalCatalog;
     023            PoolIdentifier = poolIdentifier;
     024        }
     25
     026        public string GetServer() {
     027            if (_server != null) {
     028                return _server;
     29            }
     30
     031            _server = _searchResultEntry.GetProperty(LDAPProperties.DNSHostName);
     032            return _server;
     033        }
     34
     035        public bool GetSearchBase(NamingContext context, out string searchBase) {
     036            searchBase = GetSavedContext(context);
     037            if (searchBase != null) {
     038                return true;
     39            }
     40
     041            searchBase = context switch {
     042                NamingContext.Default => _searchResultEntry.GetProperty(LDAPProperties.DefaultNamingContext),
     043                NamingContext.Configuration =>
     044                    _searchResultEntry.GetProperty(LDAPProperties.ConfigurationNamingContext),
     045                NamingContext.Schema => _searchResultEntry.GetProperty(LDAPProperties.SchemaNamingContext),
     046                _ => throw new ArgumentOutOfRangeException(nameof(context), context, null)
     047            };
     48
     049            if (searchBase != null) {
     050                SaveContext(context, searchBase);
     051                return true;
     52            }
     53
     054            return false;
     055        }
     56
     057        private string GetSavedContext(NamingContext context) {
     058            return context switch {
     059                NamingContext.Configuration => _configurationSearchBase,
     060                NamingContext.Default => _domainSearchBase,
     061                NamingContext.Schema => _schemaSearchBase,
     062                _ => throw new ArgumentOutOfRangeException(nameof(context), context, null)
     063            };
     064        }
     65
     066        public void SaveContext(NamingContext context, string searchBase) {
     067            switch (context) {
     68                case NamingContext.Default:
     069                    _domainSearchBase = searchBase;
     070                    break;
     71                case NamingContext.Configuration:
     072                    _configurationSearchBase = searchBase;
     073                    break;
     74                case NamingContext.Schema:
     075                    _schemaSearchBase = searchBase;
     076                    break;
     77                default:
     078                    throw new ArgumentOutOfRangeException(nameof(context), context, null);
     79            }
     080        }
     81
     082        protected bool Equals(LdapConnectionWrapper other) {
     083            return Guid == other.Guid;
     084        }
     85
     086        public override bool Equals(object obj) {
     087            if (ReferenceEquals(null, obj)) return false;
     088            if (ReferenceEquals(this, obj)) return true;
     089            if (obj.GetType() != this.GetType()) return false;
     090            return Equals((LdapConnectionWrapper)obj);
     091        }
     92
     093        public override int GetHashCode() {
     094            return (Guid != null ? Guid.GetHashCode() : 0);
     095        }
     96    }
     97}
    +
    +
    + + \ No newline at end of file diff --git a/coverage/report/SharpHoundCommonLib_LdapQueryParameters.html b/coverage/report/SharpHoundCommonLib_LdapQueryParameters.html new file mode 100644 index 00000000..94f80611 --- /dev/null +++ b/coverage/report/SharpHoundCommonLib_LdapQueryParameters.html @@ -0,0 +1,147 @@ + + + + + + +SharpHoundCommonLib.LdapQueryParameters - Coverage Report + +
    +

    < Summary

    + ++++ + + + + + + + + + + + + +
    Class:SharpHoundCommonLib.LdapQueryParameters
    Assembly:SharpHoundCommonLib
    File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\LdapQueryParameters.cs
    Covered lines:0
    Uncovered lines:21
    Coverable lines:21
    Total lines:41
    Line coverage:0% (0 of 21)
    Covered branches:0
    Total branches:0
    +

    Metrics

    + + + + + +
    MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
    GetQueryInfo()100%100%
    +

    File(s)

    +

    D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\LdapQueryParameters.cs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #LineLine coverage
     1using System;
     2using System.DirectoryServices.Protocols;
     3using SharpHoundCommonLib.Enums;
     4
     5namespace SharpHoundCommonLib {
     6    public class LdapQueryParameters
     7    {
     8        private string _searchBase;
     9        private string _relativeSearchBase;
     010        public string LDAPFilter { get; set; }
     011        public SearchScope SearchScope { get; set; } = SearchScope.Subtree;
     012        public string[] Attributes { get; set; } = Array.Empty<string>();
     013        public string DomainName { get; set; }
     014        public bool GlobalCatalog { get; set; }
     015        public bool IncludeSecurityDescriptor { get; set; } = false;
     016        public bool IncludeDeleted { get; set; } = false;
     17
     18        public string SearchBase {
     019            get => _searchBase;
     020            set {
     021                _relativeSearchBase = null;
     022                _searchBase = value;
     023            }
     24        }
     25
     26        public string RelativeSearchBase {
     027            get => _relativeSearchBase;
     028            set {
     029                _relativeSearchBase = value;
     030                _searchBase = null;
     031            }
     32        }
     33
     034        public NamingContext NamingContext { get; set; } = NamingContext.Default;
     35
     36        public string GetQueryInfo()
     037        {
     038            return $"Query Information - Filter: {LDAPFilter}, Domain: {DomainName}, GlobalCatalog: {GlobalCatalog}, ADS
     039        }
     40    }
     41}
    +
    +
    + + \ No newline at end of file diff --git a/coverage/report/SharpHoundCommonLib_LDAPQueryParams.html b/coverage/report/SharpHoundCommonLib_LdapQuerySetupResult.html similarity index 69% rename from coverage/report/SharpHoundCommonLib_LDAPQueryParams.html rename to coverage/report/SharpHoundCommonLib_LdapQuerySetupResult.html index 8c424959..0d427077 100644 --- a/coverage/report/SharpHoundCommonLib_LDAPQueryParams.html +++ b/coverage/report/SharpHoundCommonLib_LdapQuerySetupResult.html @@ -4,7 +4,7 @@ -SharpHoundCommonLib.LDAPQueryParams - Coverage Report +SharpHoundCommonLib.LdapQuerySetupResult - Coverage Report

    < Summary

    @@ -14,47 +14,46 @@

    < Summary

    -Class:SharpHoundCommonLib.LDAPQueryParams +Class:SharpHoundCommonLib.LdapQuerySetupResult Assembly:SharpHoundCommonLib -File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\LDAPQueryParams.cs -Covered lines:1 -Uncovered lines:3 -Coverable lines:4 -Total lines:14 -Line coverage:25% (1 of 4) +File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\LdapQuerySetupResult.cs +Covered lines:0 +Uncovered lines:5 +Coverable lines:5 +Total lines:12 +Line coverage:0% (0 of 5) Covered branches:0 Total branches:0

    File(s)

    -

    D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\LDAPQueryParams.cs

    +

    D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\LdapQuerySetupResult.cs

    - - + + - - - - - - - - - - - + + + + + + + + +
    #LineLine coverage
     1using System.DirectoryServices.Protocols;
     2using SharpHoundCommonLib.Exceptions;
     1using System.DirectoryServices;
     2using System.DirectoryServices.Protocols;
     3
     4namespace SharpHoundCommonLib
     5{
     6    internal class LDAPQueryParams
     7    {
     08        public LdapConnection Connection { get; set; }
     09        public SearchRequest SearchRequest { get; set; }
     010        public PageResultRequestControl PageControl { get; set; }
     1711        public LDAPQueryException Exception { get; set; }
     12    }
     13}
     14
     4namespace SharpHoundCommonLib {
     5    public class LdapQuerySetupResult {
     06        public LdapConnectionWrapper ConnectionWrapper { get; set; }
     07        public SearchRequest SearchRequest { get; set; }
     08        public string Server { get; set; }
     09        public bool Success { get; set; }
     010        public string Message { get; set; }
     11    }
     12}
    -
    +
    + \ No newline at end of file diff --git a/coverage/report/SharpHoundCommonLib_Result_1.html b/coverage/report/SharpHoundCommonLib_Result_1.html new file mode 100644 index 00000000..e29e196c --- /dev/null +++ b/coverage/report/SharpHoundCommonLib_Result_1.html @@ -0,0 +1,142 @@ + + + + + + +SharpHoundCommonLib.Result<T> - Coverage Report + +
    +

    < Summary

    + ++++ + + + + + + + + + + + + +
    Class:SharpHoundCommonLib.Result<T>
    Assembly:SharpHoundCommonLib
    File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\Result.cs
    Covered lines:0
    Uncovered lines:13
    Coverable lines:13
    Total lines:41
    Line coverage:0% (0 of 13)
    Covered branches:0
    Total branches:0
    +

    Metrics

    + + + + + + + + +
    MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
    .ctor(...)100%100%
    Fail(...)100%100%
    Fail()100%100%
    Ok(...)100%100%
    +

    File(s)

    +

    D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\Result.cs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #LineLine coverage
     1namespace SharpHoundCommonLib {
     2    public class Result<T> : Result {
     03        public T Value { get; set; }
     4
     05        protected Result(T value, bool success, string error) : base(success, error) {
     06            Value = value;
     07        }
     8
     09        public new static Result<T> Fail(string message) {
     010            return new Result<T>(default, false, message);
     011        }
     12
     013        public static Result<T> Fail() {
     014            return new Result<T>(default, false, string.Empty);
     015        }
     16
     017        public static Result<T> Ok(T value) {
     018            return new Result<T>(value, true, string.Empty);
     019        }
     20    }
     21
     22    public class Result {
     23
     24        public string Error { get; set; }
     25        public bool IsSuccess => string.IsNullOrWhiteSpace(Error) && Success;
     26        private bool Success { get; set; }
     27
     28        protected Result(bool success, string error) {
     29            Success = success;
     30            Error = error;
     31        }
     32
     33        public static Result Fail(string message) {
     34            return new Result(false, message);
     35        }
     36
     37        public static Result Ok() {
     38            return new Result(true, string.Empty);
     39        }
     40    }
     41}
    +
    +
    + + \ No newline at end of file diff --git a/coverage/report/SharpHoundCommonLib_ResultingGPOChanges.html b/coverage/report/SharpHoundCommonLib_ResultingGPOChanges.html index bb195ba1..7b148590 100644 --- a/coverage/report/SharpHoundCommonLib_ResultingGPOChanges.html +++ b/coverage/report/SharpHoundCommonLib_ResultingGPOChanges.html @@ -17,11 +17,11 @@

    < Summary

    Class:SharpHoundCommonLib.OutputTypes.ResultingGPOChanges Assembly:SharpHoundCommonLib File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\OutputTypes\ResultingGPOChanges.cs -Covered lines:5 -Uncovered lines:0 +Covered lines:0 +Uncovered lines:5 Coverable lines:5 Total lines:13 -Line coverage:100% (5 of 5) +Line coverage:0% (0 of 5) Covered branches:0 Total branches:0 @@ -37,24 +37,24 @@

     4{  5    public class ResultingGPOChanges  6    { - 87        public TypedPrincipal[] LocalAdmins { get; set; } = Array.Empty<TypedPrincipal>(); - 88        public TypedPrincipal[] RemoteDesktopUsers { get; set; } = Array.Empty<TypedPrincipal>(); - 89        public TypedPrincipal[] DcomUsers { get; set; } = Array.Empty<TypedPrincipal>(); - 810        public TypedPrincipal[] PSRemoteUsers { get; set; } = Array.Empty<TypedPrincipal>(); - 1211        public TypedPrincipal[] AffectedComputers { get; set; } = Array.Empty<TypedPrincipal>(); + 07        public TypedPrincipal[] LocalAdmins { get; set; } = Array.Empty<TypedPrincipal>(); + 08        public TypedPrincipal[] RemoteDesktopUsers { get; set; } = Array.Empty<TypedPrincipal>(); + 09        public TypedPrincipal[] DcomUsers { get; set; } = Array.Empty<TypedPrincipal>(); + 010        public TypedPrincipal[] PSRemoteUsers { get; set; } = Array.Empty<TypedPrincipal>(); + 011        public TypedPrincipal[] AffectedComputers { get; set; } = Array.Empty<TypedPrincipal>();  12    }  13} - + + \ No newline at end of file diff --git a/coverage/report/SharpHoundCommonLib_SearchResultEntryWrapper.html b/coverage/report/SharpHoundCommonLib_SearchResultEntryWrapper.html index 2fd2446b..68072b25 100644 --- a/coverage/report/SharpHoundCommonLib_SearchResultEntryWrapper.html +++ b/coverage/report/SharpHoundCommonLib_SearchResultEntryWrapper.html @@ -18,38 +18,38 @@

    < Summary

    Assembly:SharpHoundCommonLib File(s):D:\a\SharpHoundCommon\SharpHoundCommon\src\CommonLib\SearchResultEntryWrapper.cs Covered lines:0 -Uncovered lines:154 -Coverable lines:154 -Total lines:281 -Line coverage:0% (0 of 154) +Uncovered lines:159 +Coverable lines:159 +Total lines:288 +Line coverage:0% (0 of 159) Covered branches:0 -Total branches:58 -Branch coverage:0% (0 of 58) +Total branches:88 +Branch coverage:0% (0 of 88)

    Metrics

    - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + +
    MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
    .ctor(...)0%400%
    ResolveBloodHoundInfo()0%5000%
    GetProperty(...)100%100%
    GetByteProperty(...)100%100%
    GetArrayProperty(...)100%100%
    GetByteArrayProperty(...)100%100%
    GetIntProperty(...)100%100%
    GetCertificateArrayProperty(...)100%100%
    GetObjectIdentifier()100%100%
    IsDeleted()100%100%
    GetLabel()100%100%
    GetSid()100%100%
    GetGuid()100%100%
    PropCount(...)100%100%
    PropertyNames()0%200%
    IsMSA()100%100%
    IsGMSA()100%100%
    HasLAPS()0%200%
    GetEntry()100%100%
    .ctor(...)0%400%
    ResolveBloodHoundInfo()0%8000%
    GetProperty(...)100%100%
    GetByteProperty(...)100%100%
    GetArrayProperty(...)100%100%
    GetByteArrayProperty(...)100%100%
    GetIntProperty(...)100%100%
    GetCertificateArrayProperty(...)100%100%
    GetObjectIdentifier()100%100%
    IsDeleted()100%100%
    GetLabel()100%100%
    GetSid()100%100%
    GetGuid()100%100%
    PropCount(...)100%100%
    PropertyNames()0%200%
    IsMSA()100%100%
    IsGMSA()100%100%
    HasLAPS()0%200%
    GetEntry()100%100%

    File(s)

    @@ -61,309 +61,316 @@

     2using System.Collections.Generic;  3using System.DirectoryServices.Protocols;  4using System.Linq;5using System.Security.Cryptography.X509Certificates;6using System.Security.Principal;7using Microsoft.Extensions.Logging;8using SharpHoundCommonLib.Enums;910namespace SharpHoundCommonLib11{12    public interface ISearchResultEntry13    {14        string DistinguishedName { get; }15        ResolvedSearchResult ResolveBloodHoundInfo();16        string GetProperty(string propertyName);17        byte[] GetByteProperty(string propertyName);18        string[] GetArrayProperty(string propertyName);19        byte[][] GetByteArrayProperty(string propertyName);20        bool GetIntProperty(string propertyName, out int value);21        X509Certificate2[] GetCertificateArrayProperty(string propertyName);22        string GetObjectIdentifier();23        bool IsDeleted();24        Label GetLabel();25        string GetSid();26        string GetGuid();27        int PropCount(string prop);28        IEnumerable<string> PropertyNames();29        bool IsMSA();30        bool IsGMSA();31        bool HasLAPS();32    }3334    public class SearchResultEntryWrapper : ISearchResultEntry35    {36        private const string GMSAClass = "msds-groupmanagedserviceaccount";37        private const string MSAClass = "msds-managedserviceaccount";38        private readonly SearchResultEntry _entry;39        private readonly ILogger _log;40        private readonly ILDAPUtils _utils;41 - 042        public SearchResultEntryWrapper(SearchResultEntry entry, ILDAPUtils utils = null, ILogger log = null) - 043        { - 044            _entry = entry; - 045            _utils = utils ?? new LDAPUtils(); - 046            _log = log ?? Logging.LogProvider.CreateLogger("SearchResultWrapper"); - 047        }48 - 049        public string DistinguishedName => _entry.DistinguishedName;5using System.Runtime.InteropServices;6using System.Security.Cryptography.X509Certificates;7using System.Security.Principal;8using System.Threading.Tasks;9using Microsoft.Extensions.Logging;10using SharpHoundCommonLib.Enums;1112namespace SharpHoundCommonLib13{14    public interface ISearchResultEntry15    {16        string DistinguishedName { get; }17        Task<ResolvedSearchResult> ResolveBloodHoundInfo();18        string GetProperty(string propertyName);19        byte[] GetByteProperty(string propertyName);20        string[] GetArrayProperty(string propertyName);21        byte[][] GetByteArrayProperty(string propertyName);22        bool GetIntProperty(string propertyName, out int value);23        X509Certificate2[] GetCertificateArrayProperty(string propertyName);24        string GetObjectIdentifier();25        bool IsDeleted();26        Label GetLabel();27        string GetSid();28        string GetGuid();29        int PropCount(string prop);30        IEnumerable<string> PropertyNames();31        bool IsMSA();32        bool IsGMSA();33        bool HasLAPS();34    }3536    public class SearchResultEntryWrapper : ISearchResultEntry37    {38        private const string GMSAClass = "msds-groupmanagedserviceaccount";39        private const string MSAClass = "msds-managedserviceaccount";40        private readonly SearchResultEntry _entry;41        private readonly ILogger _log;42        private readonly ILdapUtils _utils;43 + 044        public SearchResultEntryWrapper(SearchResultEntry entry, ILdapUtils utils = null, ILogger log = null) + 045        { + 046            _entry = entry; + 047            _utils = utils ?? new LdapUtils(); + 048            _log = log ?? Logging.LogProvider.CreateLogger("SearchResultWrapper"); + 049        }  5051        public ResolvedSearchResult ResolveBloodHoundInfo() - 052        { - 053            var res = new ResolvedSearchResult();54 - 055            var objectId = GetObjectIdentifier(); - 056            if (objectId == null) - 057            { - 058                _log.LogWarning("ObjectIdentifier is null for {DN}", DistinguishedName); - 059                return null;60            }61 - 062            var uac = _entry.GetProperty(LDAPProperties.UserAccountControl); - 063            if (int.TryParse(uac, out var flag)) - 064            { - 065                var flags = (UacFlags) flag; - 066                if (flags.HasFlag(UacFlags.ServerTrustAccount)) - 067                { - 068                    _log.LogTrace("Marked {SID} as a domain controller", objectId); - 069                    res.IsDomainController = true; - 070                    _utils.AddDomainController(objectId); - 071                } - 072            }7374            //Try to resolve the domain - 075            var distinguishedName = DistinguishedName;76            string itemDomain; - 077            if (distinguishedName == null) - 078            { - 079                if (objectId.StartsWith("S-1-")) - 080                { - 081                    itemDomain = _utils.GetDomainNameFromSid(objectId); - 082                }83                else - 084                { - 085                    _log.LogWarning("Failed to resolve domain for {ObjectID}", objectId); - 086                    return null;87                } - 088            }89            else - 090            { - 091                itemDomain = Helpers.DistinguishedNameToDomain(distinguishedName); - 092            }93 - 094            _log.LogTrace("Resolved domain for {SID} to {Domain}", objectId, itemDomain); + 051        public string DistinguishedName => _entry.DistinguishedName;5253        public async Task<ResolvedSearchResult> ResolveBloodHoundInfo() + 054        { + 055            var res = new ResolvedSearchResult();56 + 057            var objectId = GetObjectIdentifier(); + 058            if (objectId == null) + 059            { + 060                _log.LogWarning("ObjectIdentifier is null for {DN}", DistinguishedName); + 061                return null;62            }63 + 064            var uac = _entry.GetProperty(LDAPProperties.UserAccountControl); + 065            if (int.TryParse(uac, out var flag)) + 066            { + 067                var flags = (UacFlags) flag; + 068                if (flags.HasFlag(UacFlags.ServerTrustAccount)) + 069                { + 070                    _log.LogTrace("Marked {SID} as a domain controller", objectId); + 071                    res.IsDomainController = true; + 072                    _utils.AddDomainController(objectId); + 073                } + 074            }7576            //Try to resolve the domain + 077            var distinguishedName = DistinguishedName;78            string itemDomain; + 079            if (distinguishedName == null) + 080            { + 081                if (objectId.StartsWith("S-1-") && await _utils.GetDomainNameFromSid(objectId) is (true, var domain)) + 082                { + 083                    itemDomain = domain; + 084                }85                else + 086                { + 087                    _log.LogWarning("Failed to resolve domain for {ObjectID}", objectId); + 088                    return null;89                } + 090            }91            else + 092            { + 093                itemDomain = Helpers.DistinguishedNameToDomain(distinguishedName); + 094            }  95 - 096            res.ObjectId = objectId; - 097            res.Domain = itemDomain; - 098            if (IsDeleted()) - 099            { - 0100                res.Deleted = IsDeleted(); - 0101                _log.LogTrace("{SID} is tombstoned, skipping rest of resolution", objectId); - 0102                return res;103            }104 - 0105            if (WellKnownPrincipal.GetWellKnownPrincipal(objectId, out var wkPrincipal)) - 0106            { - 0107                res.DomainSid = _utils.GetSidFromDomainName(itemDomain); - 0108                res.DisplayName = $"{wkPrincipal.ObjectIdentifier}@{itemDomain}"; - 0109                res.ObjectType = wkPrincipal.ObjectType; - 0110                res.ObjectId = _utils.ConvertWellKnownPrincipal(objectId, itemDomain);111 - 0112                _log.LogTrace("Resolved {DN} to wkp {ObjectID}", DistinguishedName, res.ObjectId); - 0113                return res;114            } + 096            _log.LogTrace("Resolved domain for {SID} to {Domain}", objectId, itemDomain);97 + 098            res.ObjectId = objectId; + 099            res.Domain = itemDomain; + 0100            if (IsDeleted()) + 0101            { + 0102                res.Deleted = IsDeleted(); + 0103                _log.LogTrace("{SID} is tombstoned, skipping rest of resolution", objectId); + 0104                return res;105            }106 + 0107            if (WellKnownPrincipal.GetWellKnownPrincipal(objectId, out var wkPrincipal)) + 0108            { + 0109                if (await _utils.GetDomainSidFromDomainName(itemDomain) is (true, var sid)) + 0110                    res.DomainSid = sid; + 0111                res.DisplayName = $"{wkPrincipal.ObjectIdentifier}@{itemDomain}"; + 0112                res.ObjectType = wkPrincipal.ObjectType; + 0113                if (await _utils.GetWellKnownPrincipal(objectId, itemDomain) is (true, var principal)) + 0114                    res.ObjectId = principal.ObjectIdentifier;  115 - 0116            if (objectId.StartsWith("S-1-"))117                try - 0118                { - 0119                    res.DomainSid = new SecurityIdentifier(objectId).AccountDomainSid.Value; - 0120                } - 0121                catch + 0116                _log.LogTrace("Resolved {DN} to wkp {ObjectID}", DistinguishedName, res.ObjectId); + 0117                return res;118            }119 + 0120            if (objectId.StartsWith("S-1-"))121                try  0122                { - 0123                    res.DomainSid = _utils.GetSidFromDomainName(itemDomain); + 0123                    res.DomainSid = new SecurityIdentifier(objectId).AccountDomainSid.Value;  0124                }125            else - 0126                res.DomainSid = _utils.GetSidFromDomainName(itemDomain);127 - 0128            var samAccountName = GetProperty(LDAPProperties.SAMAccountName);129 - 0130            var itemType = GetLabel(); - 0131            res.ObjectType = itemType;132 - 0133            if (IsGMSA() || IsMSA()) - 0134            { - 0135                res.ObjectType = Label.User; - 0136                itemType = Label.User; - 0137            } + 0125                catch + 0126                { + 0127                    if (await _utils.GetDomainSidFromDomainName(itemDomain) is (true, var sid)) + 0128                        res.DomainSid = sid; + 0129                }130            else + 0131                if (await _utils.GetDomainSidFromDomainName(itemDomain) is (true, var sid)) + 0132                    res.DomainSid = sid;133 + 0134            var samAccountName = GetProperty(LDAPProperties.SAMAccountName);135 + 0136            var itemType = GetLabel(); + 0137            res.ObjectType = itemType;  138 - 0139            _log.LogTrace("Resolved type for {SID} to {Label}", objectId, itemType);140 - 0141            switch (itemType)142            {143                case Label.User:144                case Label.Group:145                case Label.Base: - 0146                    res.DisplayName = $"{samAccountName}@{itemDomain}"; - 0147                    break;148                case Label.Computer: - 0149                { - 0150                    var shortName = samAccountName?.TrimEnd('$'); - 0151                    var dns = GetProperty(LDAPProperties.DNSHostName); - 0152                    var cn = GetProperty(LDAPProperties.CanonicalName);153 - 0154                    if (dns != null) - 0155                        res.DisplayName = dns; - 0156                    else if (shortName == null && cn == null) - 0157                        res.DisplayName = $"UNKNOWN.{itemDomain}"; - 0158                    else if (shortName != null) - 0159                        res.DisplayName = $"{shortName}.{itemDomain}";160                    else - 0161                        res.DisplayName = $"{cn}.{itemDomain}";162 - 0163                    break;164                }165                case Label.GPO:166                case Label.IssuancePolicy: - 0167                { - 0168                    var cn = GetProperty(LDAPProperties.CanonicalName); - 0169                    var displayName = GetProperty(LDAPProperties.DisplayName); - 0170                    res.DisplayName = string.IsNullOrEmpty(displayName) ? $"{cn}@{itemDomain}" : $"{GetProperty(LDAPProp - 0171                    break;172                }173                case Label.Domain: - 0174                    res.DisplayName = itemDomain; - 0175                    break;176                case Label.OU:177                case Label.Container:178                case Label.Configuration:179                case Label.RootCA:180                case Label.AIACA:181                case Label.NTAuthStore:182                case Label.EnterpriseCA:183                case Label.CertTemplate: - 0184                    res.DisplayName = $"{GetProperty(LDAPProperties.Name)}@{itemDomain}"; - 0185                    break;186                default: - 0187                    throw new ArgumentOutOfRangeException();188            }189 - 0190            return res; - 0191        }192193        public string GetProperty(string propertyName) - 0194        { - 0195            return _entry.GetProperty(propertyName); - 0196        }197198        public byte[] GetByteProperty(string propertyName) - 0199        { - 0200            return _entry.GetPropertyAsBytes(propertyName); - 0201        }202203        public string[] GetArrayProperty(string propertyName) - 0204        { - 0205            return _entry.GetPropertyAsArray(propertyName); - 0206        }207208        public byte[][] GetByteArrayProperty(string propertyName) - 0209        { - 0210            return _entry.GetPropertyAsArrayOfBytes(propertyName); - 0211        }212213        public bool GetIntProperty(string propertyName, out int value) - 0214        { - 0215            return _entry.GetPropertyAsInt(propertyName, out value); - 0216        }217218        public X509Certificate2[] GetCertificateArrayProperty(string propertyName) - 0219        { - 0220            return _entry.GetPropertyAsArrayOfCertificates(propertyName); - 0221        }222223        public string GetObjectIdentifier() - 0224        { - 0225            return _entry.GetObjectIdentifier(); - 0226        }227228        public bool IsDeleted() - 0229        { - 0230            return _entry.IsDeleted(); - 0231        }232233        public Label GetLabel() - 0234        { - 0235            return _entry.GetLabel(); - 0236        }237238        public string GetSid() - 0239        { - 0240            return _entry.GetSid(); - 0241        }242243        public string GetGuid() - 0244        { - 0245            return _entry.GetGuid(); - 0246        }247248        public int PropCount(string prop) - 0249        { - 0250            var coll = _entry.Attributes[prop]; - 0251            return coll.Count; - 0252        }253254        public IEnumerable<string> PropertyNames() - 0255        { - 0256            foreach (var property in _entry.Attributes.AttributeNames) yield return property.ToString().ToLower(); - 0257        }258259        public bool IsMSA() - 0260        { - 0261            var classes = GetArrayProperty(LDAPProperties.ObjectClass); - 0262            return classes.Contains(MSAClass, StringComparer.InvariantCultureIgnoreCase); - 0263        }264265        public bool IsGMSA() - 0266        { - 0267            var classes = GetArrayProperty(LDAPProperties.ObjectClass); - 0268            return classes.Contains(GMSAClass, StringComparer.InvariantCultureIgnoreCase); - 0269        }270271        public bool HasLAPS() - 0272        { - 0273            return GetProperty(LDAPProperties.LAPSExpirationTime) != null || GetProperty(LDAPProperties.LegacyLAPSExpira - 0274        }275276        public SearchResultEntry GetEntry() - 0277        { - 0278            return _entry; - 0279        }280    }281} + 0139            if (IsGMSA() || IsMSA()) + 0140            { + 0141                res.ObjectType = Label.User; + 0142                itemType = Label.User; + 0143            }144 + 0145            _log.LogTrace("Resolved type for {SID} to {Label}", objectId, itemType);146 + 0147            switch (itemType)148            {149                case Label.User:150                case Label.Group:151                case Label.Base: + 0152                    res.DisplayName = $"{samAccountName}@{itemDomain}"; + 0153                    break;154                case Label.Computer: + 0155                { + 0156                    var shortName = samAccountName?.TrimEnd('$'); + 0157                    var dns = GetProperty(LDAPProperties.DNSHostName); + 0158                    var cn = GetProperty(LDAPProperties.CanonicalName);159 + 0160                    if (dns != null) + 0161                        res.DisplayName = dns; + 0162                    else if (shortName == null && cn == null) + 0163                        res.DisplayName = $"UNKNOWN.{itemDomain}"; + 0164                    else if (shortName != null) + 0165                        res.DisplayName = $"{shortName}.{itemDomain}";166                    else + 0167                        res.DisplayName = $"{cn}.{itemDomain}";168 + 0169                    break;170                }171                case Label.GPO:172                case Label.IssuancePolicy: + 0173                { + 0174                    var cn = GetProperty(LDAPProperties.CanonicalName); + 0175                    var displayName = GetProperty(LDAPProperties.DisplayName); + 0176                    res.DisplayName = string.IsNullOrEmpty(displayName) ? $"{cn}@{itemDomain}" : $"{GetProperty(LDAPProp + 0177                    break;178                }179                case Label.Domain: + 0180                    res.DisplayName = itemDomain; + 0181                    break;182                case Label.OU:183                case Label.Container:184                case Label.Configuration:185                case Label.RootCA:186                case Label.AIACA:187                case Label.NTAuthStore:188                case Label.EnterpriseCA:189                case Label.CertTemplate: + 0190                    res.DisplayName = $"{GetProperty(LDAPProperties.Name)}@{itemDomain}"; + 0191                    break;192                default: + 0193                    throw new ArgumentOutOfRangeException();194            }195 + 0196            return res; + 0197        }198199        public string GetProperty(string propertyName) + 0200        { + 0201            return _entry.GetProperty(propertyName); + 0202        }203204        public byte[] GetByteProperty(string propertyName) + 0205        { + 0206            return _entry.GetPropertyAsBytes(propertyName); + 0207        }208209        public string[] GetArrayProperty(string propertyName) + 0210        { + 0211            return _entry.GetPropertyAsArray(propertyName); + 0212        }213214        public byte[][] GetByteArrayProperty(string propertyName) + 0215        { + 0216            return _entry.GetPropertyAsArrayOfBytes(propertyName); + 0217        }218219        public bool GetIntProperty(string propertyName, out int value) + 0220        { + 0221            return _entry.GetPropertyAsInt(propertyName, out value); + 0222        }223224        public X509Certificate2[] GetCertificateArrayProperty(string propertyName) + 0225        { + 0226            return _entry.GetPropertyAsArrayOfCertificates(propertyName); + 0227        }228229        public string GetObjectIdentifier() + 0230        { + 0231            return _entry.GetObjectIdentifier(); + 0232        }233234        public bool IsDeleted() + 0235        { + 0236            return _entry.IsDeleted(); + 0237        }238239        public Label GetLabel() + 0240        { + 0241            _entry.GetLabel(out var label); + 0242            return label; + 0243        }244245        public string GetSid() + 0246        { + 0247            return _entry.GetSid(); + 0248        }249250        public string GetGuid() + 0251        { + 0252            return _entry.GetGuid(); + 0253        }254255        public int PropCount(string prop) + 0256        { + 0257            var coll = _entry.Attributes[prop]; + 0258            return coll.Count; + 0259        }260261        public IEnumerable<string> PropertyNames() + 0262        { + 0263            foreach (var property in _entry.Attributes.AttributeNames) yield return property.ToString().ToLower(); + 0264        }265266        public bool IsMSA() + 0267        { + 0268            var classes = GetArrayProperty(LDAPProperties.ObjectClass); + 0269            return classes.Contains(MSAClass, StringComparer.InvariantCultureIgnoreCase); + 0270        }271272        public bool IsGMSA() + 0273        { + 0274            var classes = GetArrayProperty(LDAPProperties.ObjectClass); + 0275            return classes.Contains(GMSAClass, StringComparer.InvariantCultureIgnoreCase); + 0276        }277278        public bool HasLAPS() + 0279        { + 0280            return GetProperty(LDAPProperties.LAPSExpirationTime) != null || GetProperty(LDAPProperties.LegacyLAPSExpira + 0281        }282283        public SearchResultEntry GetEntry() + 0284        { + 0285            return _entry; + 0286        }287    }288} - +