private void FillDomainList() { comboBoxDomain.Items.Clear(); try { //get the current domain Domain dom = Domain.GetCurrentDomain(); string currentDomain; currentDomain = dom.Name; if (!string.IsNullOrEmpty(currentDomain)) { //add trusted domains TrustRelationshipInformationCollection colTrusts = dom.GetAllTrustRelationships(); foreach (TrustRelationshipInformation trustInfo in colTrusts) { comboBoxDomain.Items.Add(trustInfo.TargetName); } //add current domain comboBoxDomain.Items.Add(currentDomain); comboBoxDomain.SelectedItem = currentDomain; } FillSites(); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public void EnumerateDomainTrusts() { var domain = System.DirectoryServices.ActiveDirectory.Domain.GetComputerDomain(); TrustRelationshipInformationCollection trusts = domain.GetAllTrustRelationships(); foreach (TrustRelationshipInformation t in trusts) { Logger.WriteLine(String.Format("Source: {0} Target: {1} TrustDirection: {2} TrustType: {3}", t.SourceName, t.TargetName, t.TrustDirection, t.TrustType)); } }
private void TrustThread() { ForestBase.Trusts.Clear(); try { Domain userdomain = Domain.GetCurrentDomain(); TrustRelationshipInformationCollection trustlist = userdomain.Forest.GetAllTrustRelationships(); if (trustlist != null) { foreach (ForestTrustRelationshipInformation trust in trustlist) { ForestBase.Trusts.AddSafe(trust.TargetName, trust); } } trustlist = userdomain.GetAllTrustRelationships(); if (trustlist != null) { foreach (TrustRelationshipInformation trust in trustlist) { ForestBase.Trusts.AddSafe(trust.TargetName, trust); } } } catch { } //foreach (TrustRelationshipInformation trust in Forest.GetForest(new DirectoryContext(DirectoryContextType.Forest, ForestBase.ForestName)).GetAllTrustRelationships()) //{ // ForestBase.Trusts.AddSafe(trust.TargetName, trust.TrustDirection); //} //foreach (TrustRelationshipInformation trust in Domain.GetDomain(new DirectoryContext(DirectoryContextType.Domain, ForestBase.CurrentDomain)).GetAllTrustRelationships()) //{ // ForestBase.Trusts.AddSafe(trust.TargetName, trust.TrustDirection); //} }
public void GetTrustedDomainsAndForests() { List <TrustRelationshipInformation> result = new List <TrustRelationshipInformation>(); try { //Getting Forest trusts TrustRelationshipInformationCollection forestTrusts = Forest.GetCurrentForest().GetAllTrustRelationships(); //Getting Domain trusts TrustRelationshipInformationCollection domainTrusts = System.DirectoryServices.ActiveDirectory.Domain.GetCurrentDomain().GetAllTrustRelationships(); foreach (TrustRelationshipInformation trust in forestTrusts) { result.Add(trust); } foreach (TrustRelationshipInformation trust in domainTrusts) { result.Add(trust); } #if DEBUG foreach (TrustRelationshipInformation trust in result) { Console.WriteLine("From: {0} to {1}. Direction: {2}", trust.SourceName, trust.TargetName, trust.TrustDirection); } #endif } catch (Exception ex) { Console.WriteLine(ex.Message); throw; } _trustedDomainsForest = result; }
private TrustRelationshipInformationCollection GetNetDomainTrust(Domain Domain) { TrustRelationshipInformationCollection Trusts = Domain.GetAllTrustRelationships(); return(Trusts); }
public void GetDomainTrusts() { Console.WriteLine("Starting Domain Trust Enumeration"); Domain CurrentDomain; CurrentDomain = Helpers.GetDomain(); if (CurrentDomain == null) { Console.WriteLine("Bad Domain for GetDomainTrusts"); return; } Tracker.Push(Helpers.GetDomain()); while (Tracker.Count > 0) { CurrentDomain = Tracker.Pop(); if (SeenDomains.Contains(CurrentDomain.Name)) { continue; } if (CurrentDomain == null) { continue; } options.WriteVerbose("Enumerating trusts for " + CurrentDomain.Name); SeenDomains.Add(CurrentDomain.Name); TrustRelationshipInformationCollection Trusts = GetNetDomainTrust(CurrentDomain); foreach (TrustRelationshipInformation Trust in Trusts) { DomainTrust dt = new DomainTrust(); dt.SourceDomain = Trust.SourceName; dt.TargetDomain = Trust.TargetName; dt.TrustType = Trust.TrustType; dt.TrustDirection = Trust.TrustDirection; EnumeratedTrusts.Add(dt); try { Domain Tar = Helpers.GetDomain(Trust.TargetName); if (Tar != null) { Tracker.Push(Tar); } } catch { options.WriteVerbose("Unable to contact " + Trust.TargetName + " to enumerate trusts."); } } } using (StreamWriter writer = new StreamWriter(options.GetFilePath("trusts.csv"))) { writer.WriteLine("SourceDomain,TargetDomain,TrustDirection,TrustType,Transitive"); foreach (DomainTrust d in EnumeratedTrusts) { writer.WriteLine(d.ToCSV()); } } }