Adversaries may attempt to gather information on domain trust relationships that may be used to identify lateral movement opportunities in Windows multi-domain/forest environments. Domain trusts provide a mechanism for a domain to allow access to resources based on the authentication procedures of another domain.[1] Domain trusts allow the users of the trusted domain to access resources in the trusting domain. The information discovered may help the adversary conduct SID-History Injection, Pass the Ticket, and Kerberoasting.[2][3] Domain trusts can be enumerated using the DSEnumerateDomainTrusts()
Win32 API call, .NET methods, and LDAP.[3] The Windows utility Nltest is known to be used by adversaries to enumerate domain trusts.[4]
ID | Name | Description |
---|---|---|
S0552 | AdFind |
AdFind can gather information about organizational units (OUs) and domain trusts from Active Directory.[5][6][7][8] |
G1024 | Akira |
Akira uses the built-in Nltest utility or tools such as AdFind to enumerate Active Directory trusts in victim environments.[9] |
S1081 | BADHATCH |
BADHATCH can use |
S0534 | Bazar |
Bazar can use Nltest tools to obtain information about the domain.[11][12] |
S0521 | BloodHound |
BloodHound has the ability to map domain trusts and identify misconfigurations for potential abuse.[13] |
S1063 | Brute Ratel C4 |
Brute Ratel C4 can use LDAP queries and |
C0015 | C0015 |
During C0015, the threat actors used the command |
G0114 | Chimera |
Chimera has |
S0105 | dsquery |
dsquery can be used to gather information on domain trusts with |
S1159 | DUSTTRAP |
DUSTTRAP can identify Active Directory information and related items.[18] |
G1006 | Earth Lusca |
Earth Lusca has used Nltest to obtain information about domain controllers.[19] |
S0363 | Empire | |
G0061 | FIN8 |
FIN8 has retrieved a list of trusted domains by using |
S0483 | IcedID | |
S1160 | Latrodectus |
Latrodectus can run |
G0059 | Magic Hound |
Magic Hound has used a web shell to execute |
S1146 | MgBot |
MgBot includes modules for collecting information on local domain users and permissions.[27] |
S0359 | Nltest |
Nltest may be used to enumerate trusted domains by using commands such as |
S1145 | Pikabot |
Pikabot will gather information concerning the Windows Domain the victim machine is a member of during execution.[30] |
S0378 | PoshC2 | |
S0194 | PowerSploit |
PowerSploit has modules such as |
S0650 | QakBot |
QakBot can run |
S1071 | Rubeus | |
S1124 | SocGholish |
SocGholish can profile compromised systems to identify domain trust relationships.[37][38] |
C0024 | SolarWinds Compromise |
During the SolarWinds Compromise, APT29 used the |
S0266 | TrickBot |
TrickBot can gather information about domain trusts by utilizing Nltest.[29][42] |
ID | Mitigation | Description |
---|---|---|
M1047 | Audit |
Map the trusts within existing domains/forests and keep trust relationships to a minimum. |
M1030 | Network Segmentation |
Employ network segmentation for sensitive domains.[3]. |
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0017 | Command | Command Execution |
Monitor executed commands and arguments for actions that could be taken to gather system and network information, such as nltest /domain_trusts. Remote access tools with built-in features may interact directly with the Windows API to gather information. |
DS0029 | Network Traffic | Network Traffic Content |
Monitor and analyze traffic patterns and packet inspection associated to LDAP and MSRPC that do not follow the expected protocol standards and traffic flows (e.g extraneous packets that do not belong to established flows, gratuitous or anomalous traffic patterns, anomalous syntax, or structure). |
DS0009 | Process | OS API Execution |
Monitor for API calls associated with gathering information on domain trust relationships that may be used to identify lateral movement like DSEnumerateDomainTrusts() Win32 API call to spot activity associated with Domain Trust Discovery.[3] Information may also be acquired through Windows system management tools such as PowerShell. The .NET method GetAllTrustRelationships() can be an indicator of Domain Trust Discovery.[43] |
Process Creation |
Monitor for newly executed processes that may attempt to gather information on domain trust relationships that may be used to identify lateral movement opportunities in Windows multi-domain/forest environments. |
||
DS0012 | Script | Script Execution |
Monitor for any attempts to enable scripts running on a system would be considered suspicious. If scripts are not commonly used on a system, but enabled, scripts running out of cycle from patching or other administrator functions are suspicious. Scripts should be captured from the file system when possible to determine their actions and intent. |