Ejemplo n.º 1
0
        static string BuildStatJson(HealthcheckData Report, ADHealthCheckingLicense license, bool shareStat)
        {
            var sb = new StringBuilder();

            sb.Append("{");
            sb.Append("\"generation\":\"");
            sb.Append(Report.GenerationDate.ToString("u"));
            sb.Append("\"");
            sb.Append(",\"version\":\"");
            sb.Append(Report.version.ToString());
            sb.Append("\"");
            sb.Append(",\"users\":");
            sb.Append(Report.UserAccountData.NumberActive);
            sb.Append(",\"computers\":");
            sb.Append(Report.ComputerAccountData.NumberActive);
            sb.Append(",\"score\":");
            sb.Append(Report.GlobalScore);
            sb.Append(",\"anomaly\":");
            sb.Append(Report.AnomalyScore);
            sb.Append(",\"staledobjects\":");
            sb.Append(Report.StaleObjectsScore);
            sb.Append(",\"trust\":");
            sb.Append(Report.TrustScore);
            sb.Append(",\"privilegedGroup\":");
            sb.Append(Report.PrivilegiedGroupScore);
            sb.Append(",\"maturityLevel\":");
            sb.Append(Report.MaturityLevel);
            sb.Append(",\"rules\":\"");
            if (Report.RiskRules != null)
            {
                bool first = true;
                foreach (var rule in Report.RiskRules)
                {
                    if (!first)
                    {
                        sb.Append(",");
                    }
                    sb.Append(rule.RiskId);
                    first = false;
                }
            }
            sb.Append("\"");

            if (string.IsNullOrEmpty(license.Edition) || string.Equals(license.Edition, "Basic", StringComparison.OrdinalIgnoreCase) || shareStat)
            {
                sb.Append(",\"id\":\"");
                using (SHA256 hashstring = SHA256.Create())
                {
                    sb.Append(Convert.ToBase64String(hashstring.ComputeHash(Encoding.UTF8.GetBytes(Report.DomainFQDN.ToLowerInvariant() + Report.DomainSid.ToUpperInvariant()))));
                }
                sb.Append("\"");
            }
            sb.Append("}");
            return(sb.ToString());
        }
Ejemplo n.º 2
0
 public string GenerateRawContent(HealthcheckData[] reports, ADHealthCheckingLicense aDHealthCheckingLicense)
 {
     _license = aDHealthCheckingLicense;
     Reports  = reports;
     reports[0].InitializeReportingData();
     reports[1].InitializeReportingData();
     Report    = Reports[0];
     sb.Length = 0;
     GenerateContent();
     return(sb.ToString());
 }
Ejemplo n.º 3
0
        public static Dictionary <string, string> GetData(HealthcheckData report, ADHealthCheckingLicense license, bool shareStat = false)
        {
            var json = BuildStatJson(report, license, true);

            return(new Dictionary <string, string>()
            {
                { "license", license.LicenseKey },
                { "json", json },
                { "signature", SignatureStatJson(license, json) },
            });
        }
 public HealthCheckReportCompromiseGraph(CompromiseGraphData compromiseGraphData, ADHealthCheckingLicense license)
 {
     this.CompromiseGraphData = compromiseGraphData;
     _license = license;
     CompromiseGraphData.Data.Sort(
         (SingleCompromiseGraphData a, SingleCompromiseGraphData b)
         =>
     {
         return(String.Compare(a.Description, b.Description));
     });
 }
Ejemplo n.º 5
0
        static string SignatureStatJson(ADHealthCheckingLicense license, string json)
        {
            byte[] key;
            using (SHA256 hashstring = SHA256.Create())
            {
                key = hashstring.ComputeHash(Encoding.UTF8.GetBytes(license.LicenseKey));
            }
            var hmac = new HMACSHA256(key);
            var hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(json));

            return(Convert.ToBase64String(hash));
        }
Ejemplo n.º 6
0
 public string GenerateReportFile(PingCastleReportCollection <HealthcheckData> report, ADHealthCheckingLicense license, string filename)
 {
     Report = report;
     Brand(license);
     return(GenerateReportFile(filename));
 }
Ejemplo n.º 7
0
 public string GenerateReportFile(PingCastleReportCollection <HealthcheckData> report, ADHealthCheckingLicense license, string filename)
 {
     data = NetworkMapData.BuildFromConsolidation(report);
     return(GenerateReportFile(filename));
 }
Ejemplo n.º 8
0
 public ReportHealthCheckMapBuilder(PingCastleReportCollection <HealthcheckData> consolidation, ADHealthCheckingLicense license) : this(consolidation, (OwnerInformationReferences)null)
 {
     Brand(license);
 }
Ejemplo n.º 9
0
 public string GenerateReportFile(PingCastleReportCollection <CompromiseGraphData> report, ADHealthCheckingLicense license, string filename)
 {
     Report = report;
     return(GenerateReportFile(filename));
 }