Пример #1
0
        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);
            }
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        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);
            //}
        }
Пример #4
0
        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;
        }
Пример #5
0
        private TrustRelationshipInformationCollection GetNetDomainTrust(Domain Domain)
        {
            TrustRelationshipInformationCollection Trusts = Domain.GetAllTrustRelationships();

            return(Trusts);
        }
Пример #6
0
        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());
                }
            }
        }