Beispiel #1
0
            public void ConsumeAndEnumerate(Object inq, Object outq, Object dsid)
            {
                EnumerationQueue <String>         inQueue  = (EnumerationQueue <String>)inq;
                EnumerationQueue <LocalAdminInfo> outQueue = (EnumerationQueue <LocalAdminInfo>)outq;
                string DomainSID = (string)dsid;

                while (true)
                {
                    try
                    {
                        String host = inQueue.get();
                        if (host == null)
                        {
                            break;
                        }

                        List <LocalAdminInfo> results = LocalGroupAPI(host, "Administrators", DomainSID);
                        if (results.Count == 0)
                        {
                            results = LocalGroupWinNT(host, "Administrators");
                        }

                        foreach (LocalAdminInfo s in results)
                        {
                            outQueue.add(s);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        continue;
                    }
                }
            }
Beispiel #2
0
            public void Write(Object outq, Object cli)
            {
                int count = 0;
                EnumerationQueue <LocalAdminInfo> outQueue = (EnumerationQueue <LocalAdminInfo>)outq;
                Options o = (Options)cli;

                if (o.URI == null)
                {
                    using (StreamWriter writer = new StreamWriter(o.GetFilePath("local_admins.csv")))
                    {
                        writer.WriteLine("ComputerName,AccountName,AccountType");
                        while (true)
                        {
                            try
                            {
                                LocalAdminInfo info = outQueue.get();
                                if (info == null)
                                {
                                    writer.Flush();
                                    break;
                                }
                                writer.WriteLine(info.ToCSV());

                                count++;
                                if (count % 1000 == 0)
                                {
                                    Console.WriteLine("Local Admins Enumerated " + count);
                                    writer.Flush();
                                }
                            }
                            catch
                            {
                                continue;
                            }
                        }
                    }
                }
            }