示例#1
0
        private void deleteTest_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (null == project)
            {
                ShowError("No project found.");
                return;
            }
            if (penTesterDataView.SelectedRows.Count > 0)
            {
                DataGridViewSelectedRowCollection collection = penTesterDataView.SelectedRows;
                foreach (DataGridViewRow gvr in collection)
                {
                    DateTime            start  = (DateTime)gvr.Cells[0].Value;
                    DateTime            end    = (DateTime)gvr.Cells[1].Value;
                    string              tester = gvr.Cells[2].Value.ToString();
                    PenetrationTestPOCO obj    = new Business.PenetrationTestPOCO();
                    obj.TesterName = tester;
                    obj.StartDate  = start;
                    obj.EndDate    = end;
                    projectHelper.ModifyPenTestAnalysis(Business.ModTypes.Remove, project.Name, obj);
                }
                BindPenTest(project);
            }
            else
            {
                ShowError("No tests were selected to remove");
            }
        }
示例#2
0
        private void addNote_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (string.IsNullOrEmpty(documentationDetail.Text))
            {
                ShowError("Unable to add documenation." + Environment.NewLine + "Please add details about the issue.");
                return;
            }
            else if (string.IsNullOrEmpty(issueType.Text))
            {
                ShowError("Unable to add documentation" + Environment.NewLine + "Please select a category.");
                return;
            }
            if (null == project)
            {
                ShowError("Unable to find selected project. Please make sure you have selected a project");
            }
            else
            {
                Documentation data = new Documentation();
                data.Category = issueType.Text;
                DateTime d = Convert.ToDateTime(issueDatePicker.Value.ToShortDateString());
                data.DateOfIssue = d;
                data.Details     = documentationDetail.Text;

                projectHelper.ModifyDocumenation(ModTypes.Add, ddlProjects.Text, data);
                BindDocumentation(project);
            }
        }
示例#3
0
        private void deleteAnalysis_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (null == project)
            {
                ShowError("No project found.");
                return;
            }
            if (staticCodeAnalysisData.SelectedRows.Count > 0)
            {
                DataGridViewSelectedRowCollection collection = staticCodeAnalysisData.SelectedRows;
                foreach (DataGridViewRow gvr in collection)
                {
                    DateTime           date = (DateTime)gvr.Cells[0].Value;
                    StaticAnalysisPOCO obj  = new StaticAnalysisPOCO();
                    obj.AnalysisDate = date;
                    projectHelper.ModifyStaticAnalysis(ModTypes.Remove, project.Name, obj);
                }
                BindStaticAnalysis(project);
            }
            else
            {
                ShowError("No scans were selected to remove");
            }
        }
示例#4
0
        private void addPenTestDate_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (string.IsNullOrEmpty(penTesterUserList.Text))
            {
                ShowError("Unable to add test." + Environment.NewLine + "Please add tester name.");
                return;
            }
            if (null == project)
            {
                ShowError("Unable to find selected project. Please make sure you have selected a project");
            }
            else
            {
                PenetrationTestPOCO data = new PenetrationTestPOCO();
                data.TesterName = penTesterUserList.Text;
                data.EndDate    = penTestTimePickerEnd.Value;
                data.StartDate  = penTestTimePickerStart.Value;
                if (data.StartDate >= data.EndDate)
                {
                    ShowError("Start Date must be less than End Date");
                    return;
                }
                else
                {
                    projectHelper.ModifyPenTestAnalysis(ModTypes.Add, ddlProjects.Text, data);
                    BindPenTest(project);
                }
            }
        }
示例#5
0
        private void deleteDocumentation_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (null == project)
            {
                ShowError("No project found.");
                return;
            }
            if (notesDataView.SelectedRows.Count > 0)
            {
                DataGridViewSelectedRowCollection collection = notesDataView.SelectedRows;
                foreach (DataGridViewRow gvr in collection)
                {
                    DateTime      date = (DateTime)gvr.Cells[1].Value;
                    Documentation obj  = new Documentation();
                    obj.DateOfIssue = date;
                    obj.Category    = gvr.Cells[2].Value.ToString();
                    obj.Details     = gvr.Cells[0].Value.ToString();
                    projectHelper.ModifyDocumenation(ModTypes.Remove, project.Name, obj);
                }
                BindDocumentation(project);
            }
            else
            {
                ShowError("No documentation was selected to remove");
            }
        }
示例#6
0
        private void nmapExecute_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (null == project)
            {
                ShowError("No project found.");
                return;
            }
            bool isInvalid = HasErrorsForNmap();

            if (isInvalid)
            {
                AlertMessages(ref errorsForNmap);
                return;
            }
            if (!string.IsNullOrEmpty(nmapCommand.Text))
            {
                NmapLog log = new NmapLog();
                log.LogDateTime = DateTime.Now;
                log.NmapCommand = nmapCommand.Text;
                log.Project     = ddlProjects.Text;
                log.PenTesterIP = nmapTestersIP.SelectedItem.ToString();
                CmdHelper.LaunchNmap(log);
                string f = CreateFileName(Logger.LoggerTypes.nmaplog.ToString(), ddlProjects.Text);
                projectHelper.SaveNmapData(f, log);
            }
            else
            {
                MessageBox.Show("Unable to Execute nmap command", "Error");
            }
        }
示例#7
0
        private void meetingCreation_Click(object sender, EventArgs e)
        {
            ProjectPOCO p = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (null == p)
            {
                ShowError("Unable to generate invites, please select a project");
            }
            else
            {
                if (null != p.PenetrationTests)
                {
                    foreach (PenetrationTestPOCO d in p.PenetrationTests.ToList())
                    {
                        MailAddressCollection mac = new MailAddressCollection();
                        mac.Add(new MailAddress(PenetrationTesters.getAccount(d.TesterName).Email));
                        MailMessage m = MeetingInvite.CreateMeetingRequest(d.StartDate,
                                                                           d.EndDate,
                                                                           "Penetration Test for " + p.Name,
                                                                           "Meeting Request For Penetration Test",
                                                                           "Remote",
                                                                           ApplicationUserData.User.Name,
                                                                           ApplicationUserData.User.Email,
                                                                           mac);
                        m.RawMessage();
                    }
                }
            }
        }
示例#8
0
 private void BindDocumentation(ProjectPOCO project)
 {
     if (null != project.DocumentationItems)
     {
         notesDataView.DataSource = project.DocumentationItems.ToList();
     }
     else
     {
         notesDataView.DataSource = new List <Documentation>();
     }
 }
示例#9
0
 private void BindStaticAnalysis(ProjectPOCO p)
 {
     SetStaticAnalysisDataviewProperties();
     if (null != p.StaticAnalysis)
     {
         staticCodeAnalysisData.DataSource = p.StaticAnalysis.ToList();
     }
     else
     {
         staticCodeAnalysisData.DataSource = new List <StaticAnalysisPOCO>();
     }
 }
示例#10
0
 private void BindPenTest(ProjectPOCO p)
 {
     SetPenTestDataviewProperties();
     if (null != p.PenetrationTests)
     {
         penTesterDataView.DataSource = p.PenetrationTests.ToList();
     }
     else
     {
         penTesterDataView.DataSource = new List <PenetrationTestPOCO>();
     }
 }
示例#11
0
 private void BindVulnerabilities(ProjectPOCO p)
 {
     if (null != p.Vulnerabilities)
     {
         dataGridView1.DataSource = p.Vulnerabilities.ToList().OrderBy(x => x.Risk).ToList();
     }
     else
     {
         dataGridView1.DataSource = new List <IVulnerability>();
     }
     dataGridView1.Columns["VulnerabilityID"].Visible = false;
 }
示例#12
0
        private void BindLanguages(ProjectPOCO p)
        {
            ClearLanguages();
            if (null != p.CodeLanguages)
            {
                foreach (string s in p.CodeLanguages)
                {
                    int index = codeLanguages.Items.IndexOf(s);

                    if (index > 0)
                    {
                        codeLanguages.SetItemChecked(index, true);
                    }
                }
            }
        }
示例#13
0
        private void addCodeAnalysisDate_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (null == project)
            {
                ShowError("Unable to find selected project. Please make sure you have selected a project");
            }
            else
            {
                StaticAnalysisPOCO data = new StaticAnalysisPOCO();
                data.AnalysisDate = staticScanCalendar.SelectionStart;
                projectHelper.ModifyStaticAnalysis(ModTypes.Add, ddlProjects.Text, data);
                BindStaticAnalysis(project);
            }
        }
示例#14
0
        async private void sshConnect_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (null == project)
            {
                ShowError("No project found.");
                return;
            }
            bool isInvalid = HasErrorsForSSH();

            if (isInvalid)
            {
                AlertMessages(ref errorsForSSH);
                return;
            }
            SSHLog log = new SSHLog();

            string f = CreateFileName(Logger.LoggerTypes.sshlog.ToString(), ddlProjects.Text);

            log.IPHostname = ipHostname.Text;
            log.Project    = ddlProjects.Text;
            log.LogDate    = DateTime.Now;
            log.Username   = sshUsername.Text;
            SecureString pw = new SecureString();

            foreach (char o in sshPassword.Text)
            {
                pw.AppendChar(o);
            }
            log.PenTesterIP = sshTestingIP.Text;
            string h = await LaunchPutty(log, pw);

            DialogResult d = MessageBox.Show("Please wait while the application starts..." + Environment.NewLine + Environment.NewLine + "Was the connection successful?", "Confirm", MessageBoxButtons.YesNo);

            if (DialogResult.Yes == d)
            {
                log.wasSuccessful = true;
                projectHelper.SaveSSHData(f, log);
            }
            else
            {
                log.wasSuccessful = false;
                projectHelper.SaveSSHData(f, log);
            }
        }
示例#15
0
 private void BindCodeScanType(ProjectPOCO p)
 {
     if (CodeScanType.Automated == p.ScanConfiguration)
     {
         scanTypeAutomated.Checked = true;
     }
     else if (CodeScanType.Hybrid == p.ScanConfiguration)
     {
         scanTypeAutoMan.Checked = true;
     }
     else if (CodeScanType.Manual == p.ScanConfiguration)
     {
         scanTypeManual.Checked = true;
     }
     else if (CodeScanType.None == p.ScanConfiguration)
     {
         scanTypeNone.Checked = true;
     }
 }
示例#16
0
        private void BindProjectData()
        {
            ProjectPOCO p = projectHelper.Data.First(x => x.Name == ddlProjects.Text);

            if (null != p)
            {
                //Clear Note
                ResetDocumentationInput();
                isso.Text              = p.ISSO;
                developmentLead.Text   = p.DevLead;
                codeScanned.Checked    = p.isCurrentlyScanned;
                repository.Text        = p.Repository;
                productionUrlText.Text = p.ProductionURL;
                BindDocumentation(p);
                BindLanguages(p);
                BindPenTest(p);
                BindStaticAnalysis(p);
                BindCodeScanType(p);
                BindVulnerabilities(p);
            }
        }
示例#17
0
        private void saveDetails_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (null == project)
            {
                ShowError("Please select a project before adding project details.");
                return;
            }
            CodeScanType codeScanType = CodeScanType.None;

            if (scanTypeAutoMan.Checked)
            {
                codeScanType = CodeScanType.Hybrid;
            }
            else if (scanTypeAutomated.Checked)
            {
                codeScanType = CodeScanType.Automated;
            }
            else if (scanTypeManual.Checked)
            {
                codeScanType = CodeScanType.Manual;
            }
            else
            {
                codeScanType = CodeScanType.None;
            }

            IList <string> selectedLanguages = new List <string>();

            foreach (var c in codeLanguages.CheckedItems)
            {
                selectedLanguages.Add(c.ToString());
            }

            projectHelper.UpdateDetails(project.Name, isso.Text, developmentLead.Text, codeScanned.Checked, codeScanType, productionUrlText.Text, selectedLanguages, repository.Text);
        }
示例#18
0
 private void bindGrid(ProjectPOCO p)
 {
     dataGridView1.DataSource = p.Vulnerabilities.OrderBy(x => x.Risk).ToList();
     dataGridView1.Update();
     dataGridView1.Columns["VulnerabilityID"].Visible = false;
 }
示例#19
0
        private void addIssueButton_Click(object sender, EventArgs e)
        {
            ProjectPOCO project = projectHelper.GetCurrentProject(ddlProjects.Text);

            if (null == project)
            {
                ShowError("No project found.");
                return;
            }
            bool     isUpdate = false;
            ModTypes t        = ModTypes.Add;

            DateTime       outCompleteDate;
            DateTime       outDiscoveredDate;
            Decimal        cvss = 0;
            IVulnerability vuln = new Vulnerability();

            vuln.Identifier = Guid.NewGuid();
            if (sender is Button)
            {
                Button localB = sender as Button;
                if (null != localB)
                {
                    isUpdate = localB.Text == "Save" ? true : false;
                    if (isUpdate)
                    {
                        t = ModTypes.Update;
                        vuln.Identifier = EditGuid;
                    }
                    else
                    {
                        t = ModTypes.Add;
                    }
                }
            }
            if (Decimal.TryParse(cvssDataText.Text, out cvss))
            {
                vuln.CVSS = cvss;
            }
            else
            {
                MessageBox.Show("Value was not a decimal.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (DateTime.TryParse(completeDateInput.Text, out outCompleteDate))
            {
                vuln.CompletedDate = outCompleteDate;
            }
            else
            {
                vuln.CompletedDate = null;
            }

            if (DateTime.TryParse(discoveredDate.Text, out outDiscoveredDate))
            {
                vuln.DiscoveredDate = outDiscoveredDate;
            }
            else
            {
                vuln.DiscoveredDate = null;
            }

            string title     = vulnTitle.Text;
            string status    = statusInput.Text;
            string risklevel = riskLevelInput.Text;
            string details   = vulnerabilityInput.Text;

            if (status != "Not An Issue" || status != "Fixed")
            {
                vuln.CompletedDate = null;
            }
            vuln.Title            = title;
            vuln.VulnTypeReported = vulnTypeItems.SelectedItem.ToString();
            vuln.Status           = status;
            vuln.Risk             = risklevel;
            vuln.Details          = details;
            vuln.Tester           = penTesterDiscover.SelectedItem.ToString();


            vuln.isWeeklyReportItem = isForUpdate.Checked;
            Vulnerabilities.AddObject(vuln);

            projectHelper.ModifyVulnerabilityAnalysis(t, ddlProjects.Text, vuln);
            if (ModTypes.Update == t)
            {
                dataGridView1.CellContentClick += dataGridView1_CellContentClick;
            }
            bindGrid(project);
            ClearVulnForm();
        }