示例#1
0
 public static void SMB(string[] computernames, string module)
 {
     foreach (string computername in computernames)
     {
         try
         {
             Console.WriteLine(String.Format("[*] Checking {0}", computername));
             if (!Misc.CheckHostPort(computername, 445))
             {
                 Console.WriteLine(String.Format("[-] Could Not Reach {0}:445", computername));
                 Console.WriteLine();
                 continue;
             }
             if (!Directory.Exists(Path.Combine("loot", computername)))
             {
                 Directory.CreateDirectory(Path.Combine("loot", computername));
             }
             Smb.CheckSMBVersion(computername);
             Smb.CheckOsVersion(computername);
             Smb.CheckLocalAdmin(computername, module);
             Console.WriteLine("");
         }
         catch (Exception e)
         {
             Console.WriteLine("[-] {0}:445 - {1}", computername, e.ToString());
         }
     }
 }
示例#2
0
 public static void StartJob <T>(string[] users, string domain, T secrets, string[] computernames, string module, string moduleargument)
 {
     string[] passwords;
     if (typeof(T) == typeof(NTHash))
     {
         passwords = (string[])secrets.GetType().GetProperties().Single(pi => pi.Name == "Nthash").GetValue(secrets, null);
         foreach (string user in users)
         {
             foreach (string password in passwords)
             {
                 Console.WriteLine("------------------");
                 Console.WriteLine(string.Format("[*] User:   {0}", user));
                 Console.WriteLine(string.Format("[*] domain: {0}", domain));
                 Console.WriteLine(string.Format("[*] secret:   {0}", password));
                 Console.WriteLine();
                 SetThreadToken(user, domain, password);
                 foreach (string computername in computernames)
                 {
                     Console.WriteLine(String.Format("[*] Checking {0}", computername));
                     if (!Misc.CheckHostPort(computername, 445))
                     {
                         Console.WriteLine(String.Format("[-] Could Not Reach {0}:445", computername));
                         Console.WriteLine();
                         continue;
                     }
                     if (!Directory.Exists(Path.Combine("loot", computername)))
                     {
                         Directory.CreateDirectory(Path.Combine("loot", computername));
                     }
                     Smb.CheckLocalAdmin(computername, module);
                     Console.WriteLine("");
                 }
             }
         }
     }
     else if (typeof(T) == typeof(ClearText))
     {
         passwords = (string[])secrets.GetType().GetProperties().Single(pi => pi.Name == "Cleartext").GetValue(secrets, null);
         foreach (string user in users)
         {
             foreach (string password in passwords)
             {
                 Console.WriteLine("------------------");
                 Console.WriteLine(string.Format("[*] User:   {0}", user));
                 Console.WriteLine(string.Format("[*] domain: {0}", domain));
                 Console.WriteLine(string.Format("[*] secret: {0}", password));
                 Console.WriteLine();
                 using (new Impersonator.Impersonation(domain, user, password))
                 {
                     foreach (string computername in computernames)
                     {
                         Console.WriteLine(String.Format("[*] Checking {0}", computername));
                         if (!Misc.CheckHostPort(computername, 445))
                         {
                             Console.WriteLine(String.Format("[-] Could Not Reach {0}:445", computername));
                             Console.WriteLine();
                             continue;
                         }
                         if (!Directory.Exists(Path.Combine("loot", computername)))
                         {
                             Directory.CreateDirectory(Path.Combine("loot", computername));
                         }
                         Smb.CheckSMBVersion(computername);
                         Smb.CheckOsVersion(computername);
                         Smb.CheckLocalAdmin(computername, module);
                         Console.WriteLine("");
                     }
                 }
             }
         }
     }
 }