public static bool DetectDC(DomainInfo domain, Server dc, DetectLogger logWriter)
        {
            logWriter.AddLog(DetectLogLevel.Warning, string.Format("===== Detect DC in Domain {0} =====", domain.Name));
            DirectoryContext context = new DirectoryContext(DirectoryContextType.Domain, domain.Name, domain.Admin, domain.AdminPassword);

            string hostName  = DomainController.FindOne(context).Name;
            var    hostEntry = Dns.GetHostEntry(hostName);

            try
            {
                string computerName = hostEntry.HostName;
                computerName    = computerName.Split('.')[0];
                dc.ComputerName = computerName;
                dc.FQDN         = ServerHelper.GetDCAttribute(computerName, "dNSHostName", domain.Name, domain.Admin, domain.AdminPassword);
                dc.IsWindows    = ServerHelper.FetchPlatformInfo(computerName, logWriter);
            }
            catch
            {
                logWriter.AddLog(DetectLogLevel.Warning, "Failed", false, LogStyle.StepFailed);
                logWriter.AddLineToLog(DetectLogLevel.Information);
                return(false);
            }

            if (dc.FQDN == null)
            {
                logWriter.AddLog(DetectLogLevel.Warning, "Failed", false, LogStyle.StepFailed);
                logWriter.AddLineToLog(DetectLogLevel.Information);
                return(false);
            }

            try
            {
                dc.NetBIOS            = ServerHelper.GetDCAttribute(dc.ComputerName, "sAMAccountName", domain.Name, domain.Admin, domain.AdminPassword);//DC01$: NetBIOS name
                dc.DefaultServiceName = "krbtgt/" + domain.Name.ToUpper();
                dc.ServiceSalt        = domain.Name.ToUpper() + "host" + dc.FQDN.ToLower();
            }
            catch
            {
                logWriter.AddLog(DetectLogLevel.Warning, "Failed", false, LogStyle.StepFailed);
                logWriter.AddLineToLog(DetectLogLevel.Information);
                return(false);
            }
            try
            {
                domain.FunctionalLevel = ServerHelper.GetDomainFunctionalLevel(domain.Name, domain.Admin, domain.AdminPassword);
            }
            catch
            {
                logWriter.AddLog(DetectLogLevel.Warning, "Failed", false, LogStyle.StepFailed);
                logWriter.AddLineToLog(DetectLogLevel.Information);
                return(false);
            }

            logWriter.AddLog(DetectLogLevel.Warning, "Success", false, LogStyle.StepPassed);
            logWriter.AddLineToLog(DetectLogLevel.Information);
            return(true);
        }
Ejemplo n.º 2
0
        public RDPDetector(DetectionInfo detectInfo, DetectLogger logger)
        {
            this.detectInfo = detectInfo;
            this.logWriter  = logger;

            string rdpClientRoute = Path.Combine("..", "etc", "RDP-Client");

            SUTControlScriptLocation = Path.Combine(rdpClientRoute, "SUTControlAdapter");

            SUTShellControlScriptLocation = Path.Combine(rdpClientRoute, "ShellSUTControlAdapter");
        }
        public FSDetector
            (DetectLogger logger,
            string targetSUT,
            AccountCredential accountCredential,
            SecurityPackageType securityPackageType)
        {
            sutName             = targetSUT;
            Credential          = accountCredential;
            SecurityPackageType = securityPackageType;

            logWriter = logger;
            logWriter.AddLog(DetectLogLevel.Information, string.Format("SutName: {0}", sutName));
            logWriter.AddLog(DetectLogLevel.Information, string.Format("DomainName: {0}", Credential.DomainName));
            logWriter.AddLog(DetectLogLevel.Information, string.Format("UserName: {0}", Credential.AccountName));
            logWriter.AddLog(DetectLogLevel.Information, string.Format("UserPassword: {0}", Credential.Password));
            logWriter.AddLog(DetectLogLevel.Information, string.Format("SecurityPackageType: {0}", SecurityPackageType.ToString()));
            logWriter.AddLineToLog(DetectLogLevel.Information);
        }
        public static bool FetchPlatformInfo(string computerName, DetectLogger logWriter)
        {
            bool isWindows = true;

            try
            {
                ManagementObjectCollection resultCollection = QueryWmiObject(computerName, "SELECT * FROM Win32_OperatingSystem");
                foreach (ManagementObject result in resultCollection)
                {
                    isWindows = (ConvertPlatform(result["Caption"].ToString()) != Platform.NonWindows);
                    logWriter.AddLog(DetectLogLevel.Information, "Platform: " + ConvertPlatform(result["Caption"].ToString()));
                    break;
                }
            }
            catch
            {
            }
            return(isWindows);
        }
        public static bool DetectClient(DomainInfo domain, ComputerInfo client, DetectLogger logWriter)
        {
            logWriter.AddLog(DetectLogLevel.Warning, string.Format("===== Detect Client/Driver in Domain {0} =====", domain.Name));
            string ip = client.IPv4 != null ? client.IPv4 : client.IPv6;

            try
            {
                string computerName = Dns.GetHostEntry(ip).HostName;
                computerName = computerName.Split('.')[0];
            }
            catch
            {
                logWriter.AddLog(DetectLogLevel.Error, "Failed", false, LogStyle.StepFailed);
                logWriter.AddLineToLog(DetectLogLevel.Information);
                return(false);
            }

            logWriter.AddLog(DetectLogLevel.Warning, "Success", false, LogStyle.StepPassed);
            logWriter.AddLineToLog(DetectLogLevel.Information);
            return(true);
        }
Ejemplo n.º 6
0
 public RDPDetector(DetectionInfo detectInfo, DetectLogger logger)
 {
     this.detectInfo = detectInfo;
     this.logWriter  = logger;
 }