/* * Yeni bir Scan Yaratma * */ public void CreateScan(ArachniManager manager) { ScanSummaryPL scanSummary = new ScanSummaryPL(); if (!Scan.ServiceControl(manager)) { Console.WriteLine("Servis Çalışmıyor."); return; } do { Console.Write("URL Giriniz (http://test.sparker.com şeklinde): "); string url = Console.ReadLine(); if (ControlURL(url)) { string checks = ""; do { checks = ListAndSelectCheck(); } while (checks == ""); ScanCreateDL scanCreate = new ScanCreateDL(url, checks); string newScanID = Scan.CreateScan(manager, scanCreate); Console.WriteLine(newScanID); //Rapor scanSummary.GetScanSummary(manager, newScanID); break; } else { Console.WriteLine("URL hatalı. Kontrol edin ve Tekrar giriniz."); } } while (true); }
/* * Yeni bir Scan Oluşturur. * */ public string CreateScan(ArachniManager manager, ScanCreateDL scan) { string json = JsonConvert.SerializeObject(scan); string id = manager.POSTScanCreate(json); return(id); }
/* * Tüm taramaları listeleme * */ private static string ListScan(ArachniManager manager) { List <string> listScanIDs = Scan.ScanID(manager); if (listScanIDs != null && listScanIDs.Count > 0) { int i = 0; foreach (var item in listScanIDs) { Console.WriteLine((i + 1) + " - " + item); i += 1; } string id = SelectScan(listScanIDs); return(id); } else if (listScanIDs == null) { return(null); } else if (listScanIDs.Count == 0) { Console.WriteLine("Tarama bulunamadı..."); return(null); } else { Console.WriteLine("Unauthorized"); return(null); } }
/* * İlgili Taramayı monitor eder / izler. * */ public void GetScanMonitor(ArachniManager manager, string scanID) { ScanMonitorDL scanResponse = Monitor.ScanMonitor(manager, scanID); Console.WriteLine("\nStatus: " + scanResponse.Status + "\nBusy: " + scanResponse.Busy); }
/* * İlgili Taramanın Özetini getirir. * */ public void GetScanSummary(ArachniManager manager, string scanID) { //Tuş basma olayı... ConsoleKeyInfo cki; //Summary ScanSummaryDL scanSummaryDL; Console.WriteLine("Taramanın Son durumunu görmek için herhangi bir tuşa, Çıkmak için ESC tuşuna basınız."); do { //Summary scanSummaryDL = Summary.ScanSummary(manager, scanID); Console.WriteLine("\nStatus: " + scanSummaryDL.Status + "\nBusy: " + scanSummaryDL.Busy + "\nRuntime: " + scanSummaryDL.Statistics.Runtime); Thread.Sleep(3000); cki = Console.ReadKey(true); if (scanSummaryDL.Status == "done" && scanSummaryDL.Busy == false) { Console.WriteLine("Tarama bitti. Tarama raporunu ekranda gösterildi ve masaüstüne indirildi."); ScanReportPL.GetScanReport(manager, scanID); break; } } while (cki.Key != ConsoleKey.Escape); }
/* * Gelen Scan ID'leri JSON'dan ayırarak ListScan'a ekler. * */ public List <string> ScanID(ArachniManager manager) { try { string responseBody = manager.GetScans(); if (responseBody == "Unauthorized" || responseBody == null) { return(null); } else { JObject jObject = JObject.Parse(responseBody); this.ListScan = new List <string>(); foreach (JProperty property in jObject.Properties()) { setListScan(property.Name); } return(getListScan()); } } catch (Exception ex) { Console.WriteLine("ScanBL::GETScanID\n" + ex.Message); return(null); } }
/* * Tarama Silme * */ private static void AbortScan(ArachniManager manager) { ScanPL scanPL = new ScanPL(); string id = ListScan(manager); scanPL.AbortScan(manager, id); }
/*-------------------------------------------------------------------------------------------------------------*/ /* * Taramada yapılabilecek işlemler. * */ private static void GetScanID(ArachniManager manager) { string id = ListScan(manager); if (id == null) { return; } Console.Write("A - Taramayı İzle (Monitor)\n" + "B - Tarama Özeti\n" + "C - Tarama Raporu\n"); Console.Write("İstediğiniz Rapor Tipini Giriniz: "); string selectedProcess = Console.ReadLine(); switch (selectedProcess) { case "A": GetScanMonitor(manager, id); break; case "B": GetScanSummary(manager, id); break; case "C": GetScanReport(manager, id); break; default: break; } }
/* * Scan Başlatma * */ public void ResumeScan(ArachniManager manager, string id) { if (manager.PUTPauseScan(id) == "true") { Console.WriteLine("Tarama Başlatıldı."); } else { Console.WriteLine("Tarama Başlatılamadı."); } }
/* * Scan Duraklatma * */ public void PauseScan(ArachniManager manager, string id) { if (manager.PUTPauseScan(id) == "true") { Console.WriteLine("Tarama durduruldu."); } else { Console.WriteLine("Tarama durdurulamadı."); } }
/* * İlgili Taramanın Raporunu getirir. * */ public void GetScanReport(ArachniManager manager, string scanID) { ScanReportDL scanReportDL = Report.ScanReport(manager, scanID); Console.WriteLine("Start Date Time: " + scanReportDL.StartDatetime + "\nFinish Date Time: " + scanReportDL.FinishDatetime); foreach (var item in scanReportDL.Issues) { Console.WriteLine("\nIssue: " + item.Name + " - Severity: " + item.Severity); } }
/* * Scan Silme * */ public void AbortScan(ArachniManager manager, string id) { if (manager.DELETEAbortScan(id) == "true") { Console.WriteLine("Tarama Silindi."); } else { Console.WriteLine("Tarama Silinemedi."); } }
/* * Scan duraklat * */ public string PauseScan(ArachniManager manager, string id) { try { return(manager.PUTPauseScan(id)); } catch (Exception ex) { throw ex; } }
/*------------------------------------------------------------------------------------------------*/ /* * Servisin çalışıp çalışmadığını kontrol eder. * */ private static void ServiceControl(ArachniManager manager) { if (Scan.ServiceControl(manager)) { Console.WriteLine("Servis çalışıyor."); } else { Console.WriteLine("Servis çalışmıyor."); } }
/* * Tarama raporunu kayıt eder (xml formatında masaüstüne) ve ScanReportDL nesnesini döndürür. * Retrieve a scan report */ public ScanReportDL ScanReport(ArachniManager manager, string id) { id = Scan.GetID(id); string report = manager.GetScanReport(id, "xml"); SaveReport(report); report = manager.GetScanReport(id, "json"); ScanReportDL scanReportDL = JsonConvert.DeserializeObject <ScanReportDL>(report); //SaveReport(report); return(scanReportDL); }
/* * Monitor scan progress * */ public ScanMonitorDL ScanMonitor(ArachniManager manager, string id) { id = ScanBL.GetID(id); string ScanMonitorJson = manager.GetScanMonitor(id); ScanMonitorDL scanDL; if (ScanMonitorJson != null) { scanDL = JsonConvert.DeserializeObject <ScanMonitorDL>(ScanMonitorJson); } else { return(null); } return(scanDL); }
/* * * Returns the same data as "Monitor scan progress" but without issues, errors and sitemap */ public ScanSummaryDL ScanSummary(ArachniManager manager, string id) { try { id = Scan.GetID(id); ScanSummaryDL scanDL = JsonConvert.DeserializeObject <ScanSummaryDL>(manager.GetScanSummary(id)); return(scanDL); } catch (ArgumentNullException argumentNullException) { Console.WriteLine("Arguman Null değer içermektedir:" + argumentNullException.Message); } catch (Exception ex) { throw ex; } return(null); }
/* * Servisin çalışıp çalışmadığını kontrol eder. * */ public bool ServiceControl(ArachniManager manager) { return(manager.GetServiceControl()); }
static void Main(string[] args) { try { SetIPAndPort(); using (ArachniSession session = new ArachniSession(Username, Password, IP, Port)) { using (ArachniManager manager = new ArachniManager(session)) { if (!manager.GetServiceControl()) { Console.Read(); return; } while (manager.GetServiceControl()) { Console.Write("A - Raporları Göster\n" + "B - Tarama Oluştur\n" + "C - Servisi Kontrol Et\n" + "P - Taramayı Durdur\n" + "R - Taramayı Tekrar Başlat\n" + "D - Taramayı Sil\n" + "Lütfen yapmak istediğiniz işlemi seçiniz: "); string selectedProcess = Console.ReadLine(); if (selectedProcess.ToUpper() == "A") { GetScanID(manager); } else if (selectedProcess.ToUpper() == "B") { CreateScan(manager); } else if (selectedProcess.ToUpper() == "C") { ServiceControl(manager); } else if (selectedProcess.ToUpper() == "P") { PauseScan(manager); } else if (selectedProcess.ToUpper() == "R") { ResumeScan(manager); } else if (selectedProcess.ToUpper() == "D") { AbortScan(manager); } Console.WriteLine("\n"); } } } } catch (Exception ex) { throw ex; } }
/* * Tarama İzle * */ private static void GetScanMonitor(ArachniManager manager, string id) { ScanMonitorPL scanMonitorPL = new ScanMonitorPL(); scanMonitorPL.GetScanMonitor(manager, id); }
/* * Tarama Özeti Getir * */ private static void GetScanSummary(ArachniManager manager, string id) { ScanSummaryPL scanSummaryPL = new ScanSummaryPL(); scanSummaryPL.GetScanSummary(manager, id); }
/* * Tarama Raporu Getir * */ private static void GetScanReport(ArachniManager manager, string id) { ScanReportPL scanReportPL = new ScanReportPL(); scanReportPL.GetScanReport(manager, id); }
/*------------------------------------------------------------------------------------------------------------------------------*/ /* * Tarama Oluşturma * */ private static void CreateScan(ArachniManager manager) { ScanPL scanPL = new ScanPL(); scanPL.CreateScan(manager); }